(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 i}});let a=e.r(32061);function i({reason:e,children:t}){if("u"{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return a}})},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return d}});let a=e.r(43476),i=e.r(74080),r=e.r(63599),o=e.r(9885),s=e.r(43369);function d({moduleIds:e}){if("u">typeof window)return null;let t=r.workAsyncStorage.getStore();if(void 0===t)return null;let n=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;n.push(...e)}}if(0===n.length)return null;let l=(0,s.getAssetTokenQuery)();return(0,a.jsx)(a.Fragment,{children:n.map(e=>{let n=`${t.assetPrefix}/_next/${(0,o.encodeURIPath)(e)}${l}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:n,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,i.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 l}});let a=e.r(43476),i=e.r(71645),r=e.r(67585),o=e.r(52157);function s(e){return{default:e&&"default"in e?e.default:e}}let d={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},l=function(e){let t={...d,...e},n=(0,i.lazy)(()=>t.loader().then(s)),l=t.loading;function c(e){let s=l?(0,a.jsx)(l,{isLoading:!0,pastDelay:!0,error:null}):null,d=!t.ssr||!!t.loading,c=d?i.Suspense:i.Fragment,p=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return i}});let a=e.r(55682)._(e.r(69093));function i(e,t){let n={};"function"==typeof e&&(n.loader=e);let i={...n,...t};return(0,a.default)({...i,modules:i.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)},14224,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(89970),i=e.i(83495);a.default.registerPlugin(i.ScrollTrigger);let r=[{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#f59e0b",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"})}),title:"Battery-Aware Routing",desc:"Battery level, health, and degradation are first-class inputs to route optimization — not afterthoughts."},{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#94a3b8",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M18 10h-1.28A6 6 0 0 0 12 5V3M12 5V3M6 10h1.28A6 6 0 0 0 12 5M12 18v2M12 18v2M8 10v6a4 4 0 0 0 8 0v-6"})}),title:"Charging Integration",desc:"Seamlessly integrate charging stops without compromising delivery windows or SLA commitments."},{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#ef4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"m8 3 4 8 5-5 5 15H2L8 3z"})}),title:"Energy-Optimized Paths",desc:"Factor in elevation, speed limits, payload weight, and live weather for maximum range efficiency."},{icon:(0,t.jsx)("svg",{className:"evnd-icon",viewBox:"0 0 24 24",fill:"none",stroke:"#ef4444",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})}),title:"Predictable Operations",desc:"EVs become predictable assets, not operational risks. Full visibility from depot to doorstep."}],o=[{value:"100%",label:"ELECTRIC FLEET"},{value:"-40%",label:"COST / MILE"}],s=[{value:99.9,decimals:1,suffix:"%",label:"SLA Compliance"},{value:42,suffix:"%",label:"Distance Saved"},{value:37,suffix:"%",label:"Fewer Vehicles"},{value:45,suffix:"ms",label:"Dispatch Latency"}];function d({value:e,decimals:a=0,suffix:i="",duration:r=1700,className:o}){let[s,l]=(0,n.useState)(0),c=(0,n.useRef)(null),p=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{let t=c.current;if(!t)return;if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return void requestAnimationFrame(()=>l(e));let n=new IntersectionObserver(t=>{for(let a of t)if(a.isIntersecting&&!p.current){p.current=!0;let t=performance.now(),a=e=>1-Math.pow(1-e,3),i=n=>{let o=Math.min(1,(n-t)/r);l(e*a(o)),o<1?requestAnimationFrame(i):l(e)};requestAnimationFrame(i),n.disconnect()}},{threshold:.2});return n.observe(t),()=>n.disconnect()},[e,r]),(0,t.jsxs)("b",{ref:c,className:o,children:[s.toFixed(a),i]})}function l({value:e,decimals:a=0,suffix:i="",active:r}){let[o,s]=(0,n.useState)(e),d=(0,n.useRef)(0);return(0,n.useEffect)(()=>{if(!r)return;if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return d.current=requestAnimationFrame(()=>s(e)),()=>cancelAnimationFrame(d.current);let t=performance.now(),n=a=>{let i=Math.min(1,Math.max(0,(a-t)/850));s(e*(1-Math.pow(1-i,3))),i<1?d.current=requestAnimationFrame(n):s(e)};return d.current=requestAnimationFrame(n),()=>cancelAnimationFrame(d.current)},[r,e]),(0,t.jsxs)("span",{className:"evnd__card-metric",children:[o.toFixed(a),(0,t.jsx)("i",{children:i})]})}let c=[[40,90],[150,150],[120,280],[250,330],[360,250],[60,420],[300,120],[330,430]],p=["M40 90 L150 150 L120 280 L250 330 L360 250","M60 420 L150 150 L300 120 L360 250","M120 280 L60 420 L250 330 L330 430"],m=[[14,22,0,13],[78,16,-3,16],[33,64,-7,14],[62,48,-1,18],[88,70,-5,15],[22,86,-9,17],[50,30,-4,19],[70,90,-2,14]];function g(){let e=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=e.current;if(!t||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches||window.matchMedia?.("(max-width: 767px)").matches)return;a.default.registerPlugin(i.ScrollTrigger);let n=Array.from(t.querySelectorAll("[data-depth]")),r=i.ScrollTrigger.create({trigger:t,start:"top bottom",end:"bottom top",scrub:!0,onUpdate:e=>{let t=e.progress-.5;for(let e of n){let n=parseFloat(e.dataset.depth||"0");a.default.set(e,{yPercent:t*n})}}});return()=>r.kill()},[]),(0,t.jsxs)("div",{ref:e,className:"evnd__bg","aria-hidden":"true",children:[(0,t.jsx)("div",{className:"evnd__bg-grid","data-depth":"4"}),(0,t.jsxs)("svg",{className:"evnd__bg-net","data-depth":"8",viewBox:"0 0 400 520",preserveAspectRatio:"xMidYMid slice",children:[(0,t.jsx)("g",{className:"evnd__bg-mesh",stroke:"currentColor",strokeWidth:"0.8",fill:"none",children:p.map((e,n)=>(0,t.jsx)("path",{d:e},n))}),(0,t.jsx)("g",{className:"evnd__bg-nodes",fill:"currentColor",children:c.map(([e,n],a)=>(0,t.jsx)("circle",{cx:e,cy:n,r:a%3==0?3:2,style:{animationDelay:`${-(.7*a)}s`}},a))}),(0,t.jsx)("path",{className:"evnd__bg-flow",d:p[0],fill:"none",stroke:"currentColor",strokeWidth:"1.4"}),(0,t.jsx)("path",{className:"evnd__bg-flow evnd__bg-flow--2",d:p[1],fill:"none",stroke:"currentColor",strokeWidth:"1.4"})]}),(0,t.jsx)("div",{className:"evnd__bg-glow evnd__bg-glow--a","data-depth":"11"}),(0,t.jsx)("div",{className:"evnd__bg-glow evnd__bg-glow--b","data-depth":"15"}),(0,t.jsx)("div",{className:"evnd__bg-particles","data-depth":"18",children:m.map(([e,n,a,i],r)=>(0,t.jsx)("span",{style:{left:`${e}%`,top:`${n}%`,animationDelay:`${a}s`,animationDuration:`${i}s`}},r))})]})}function h({slides:e,heading:a,theme:i}){let[r,o]=(0,n.useState)(0),[s,d]=(0,n.useState)(!1),[c,p]=(0,n.useState)(!1),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=m.current;if(!e)return;let t=new IntersectionObserver(([e])=>p(e.isIntersecting),{threshold:.35});return t.observe(e),()=>t.disconnect()},[]),(0,n.useEffect)(()=>{if(!c||s||e.length<2)return;let t=setTimeout(()=>{o(t=>(t+1)%e.length)},4e3);return()=>clearTimeout(t)},[r,c,s,e.length]);let u=i?{"--ca":i.accent,"--ca2":i.accent2,"--cg":i.glow}:void 0;return(0,t.jsxs)("div",{ref:m,className:"evnd__cards",style:u,onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[(0,t.jsx)(g,{}),a&&(0,t.jsxs)("div",{className:"evnd__cards-head",children:[(0,t.jsxs)("span",{className:"evnd__cards-live",children:[(0,t.jsx)("span",{className:"evnd__cards-livedot"}),a]}),(0,t.jsx)("span",{className:"evnd__cards-sys",children:"AI ENGINE"})]}),(0,t.jsx)("div",{className:"evnd__cards-stage",children:e.map((e,n)=>(0,t.jsxs)("div",{className:`evnd__card ${n===r?"is-active":""}`,"aria-hidden":n!==r||void 0,children:[(0,t.jsxs)("span",{className:"evnd__card-status",children:[(0,t.jsx)("span",{className:"evnd__card-statusdot"}),e.status]}),(0,t.jsxs)("div",{className:"evnd__card-hero",children:[(0,t.jsx)(l,{value:e.value,decimals:e.decimals,suffix:e.suffix,active:n===r}),(0,t.jsx)("span",{className:"evnd__card-metriclabel",children:e.metricLabel})]}),(0,t.jsx)("h3",{className:"evnd__card-title",children:e.title}),(0,t.jsx)("ul",{className:"evnd__card-kpis",children:e.kpis.map(e=>(0,t.jsxs)("li",{children:[(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,t.jsx)("polyline",{points:"20 6 9 17 4 12"})}),e]},e))}),(0,t.jsx)("p",{className:"evnd__card-desc",children:e.desc})]},e.title))}),(0,t.jsxs)("div",{className:"evnd__cards-nav",children:[(0,t.jsxs)("span",{className:"evnd__cards-counter",children:[String(r+1).padStart(2,"0"),"/",String(e.length).padStart(2,"0")]}),(0,t.jsx)("div",{className:"evnd__cards-bars",children:e.map((e,n)=>(0,t.jsx)("button",{type:"button","aria-label":`Go to ${e.title}`,className:`evnd__cards-bar ${n===r?"is-active":""}`,onClick:()=>o(n)},e.title))})]})]})}e.s(["default",0,function({bannerImage:e="/images/bg-header-5.png",cardNumber:l="",cardTitle:c="EV Logistics",cardSubtitle:p="Cleaner miles, lower costs",eyebrow:m="/ EV-Native Design /",titleLead:g="BUILT FOR ELECTRIC. ",titleAccent:u="NOT ADAPTED.",features:f=r,image:x="/images/premium-ev-van.png",imageAlt:v="DoorMile electric delivery van",badges:b=o,stats:_=s,gapTop:w=!1,gapBottom:y=!1,ariaLabel:j,mediaSlot:k,slides:N,cardsHeading:z,cardsTheme:L}){let S=(0,n.useRef)(null),E=!!N&&N.length>0;return(0,n.useEffect)(()=>{let e=S.current;if(!e)return;let t=i.ScrollTrigger.create({trigger:e,start:"top bottom",end:"bottom top",scrub:!0,onUpdate:()=>{if(window.innerWidth>=1021){let t=window.scrollY,n=e.getBoundingClientRect().top+t;a.default.set(e,{backgroundPosition:`center ${.3*(t-n)}px`})}else a.default.set(e,{backgroundPosition:""})}});return()=>t?.kill()},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:` /* ============================================================ EV-Native Design — redesigned section bg #080808 \xb7 red #ef4444 \xb7 Manrope ============================================================ */ .evnd, .evnd * { font-family: "Manrope", Sans-serif !important; } /* External gap helpers — keep stacked workflow sections on one rhythm (Desktop 40 \xb7 Tablet 32 \xb7 Mobile 24). Single-sided per boundary. */ .evnd-gap-top { margin-top: 40px !important; } .evnd-gap-bottom { margin-bottom: 40px !important; } .evnd { position: relative; isolation: isolate; overflow: hidden; background: #080808; /* flat top so it connects seamlessly to the banner above; rounded bottom only, and no top margin so there is no white gap */ border-radius: 0 0 clamp(16px, 2vw, 28px) clamp(16px, 2vw, 28px); margin: 0 0 clamp(28px, 5vw, 64px); padding: 64px 48px clamp(48px, 6vw, 80px); } /* subtle diagonal light band for depth (matches reference) */ .evnd::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(120deg, transparent 28%, rgba(255,255,255,0.015) 50%, transparent 72%); } .evnd__inner { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; } /* ---- MAIN GRID ---- */ .evnd__grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 4vw, 56px); align-items: center; } /* Split-screen workflow layout: ~60/40 so the live dashboard column carries enough weight to balance the Three.js scene. align-items: stretch lets the cards panel match the scene height. */ .evnd__grid--cards { grid-template-columns: 1.5fr 1fr; align-items: stretch; } .evnd__grid--cards .evnd__left { justify-content: center; } .evnd__grid--cards .evnd__left, .evnd__grid--cards .evnd__media { width: 100%; } /* ---- Desktop height alignment: scene and insight panel share one row height. A min-height floor on the scene column sets the baseline row height (≥620px so the tallest slide's status → metric → title → KPIs → description fits with the footer fully clear). Both columns stretch to the row via grid align-items: stretch. The panel uses min-height:100% (not a hard height) and its card stage is flex: 1 0 auto — it grows to fill the row but, crucially, NEVER shrinks below its own content. So a long description can only push the panel taller, never overlap the nav footer; the grid row grows with it and the scene (height:100%) stretches to match. Result: the card height always equals the scene height AND the 01/04 counter + pagination stay pinned to the bottom with dedicated, un-overlappable space. */ @media (min-width: 992px) { .evnd__grid--cards .evnd__left { min-height: clamp(620px, 44vw, 680px); } .evnd__grid--cards .evnd__media, .evnd__grid--cards .evnd__imgwrap--media, .evnd__grid--cards .wf-scene { height: 100%; } .evnd__grid--cards .wf-scene { aspect-ratio: auto; } .evnd__grid--cards .evnd__cards { min-height: 100%; } /* grow to fill the row, but hold content height as a hard floor so the footer can never ride up over the description */ .evnd__grid--cards .evnd__cards-stage { flex: 1 0 auto; min-height: 0; } /* centre the slide content in the taller stage for a balanced panel */ .evnd__grid--cards .evnd__card { justify-content: center; } } .evnd__left { display: flex; flex-direction: column; align-items: flex-start; } .evnd__right { display: flex; flex-direction: column; } .evnd__eyebrow { display: inline-flex; align-items: center; gap: 12px; color: #ef4444 !important; font-weight: 800; text-transform: uppercase; letter-spacing: 0.16em; font-size: 13px; margin-bottom: 20px; } .evnd__eyebrow::before { content: ''; width: 16px; height: 2px; background: #ef4444; } .evnd__title { color: #fff !important; font-weight: 800 !important; font-size: clamp(32px, 3.8vw, 48px) !important; line-height: 1.15 !important; letter-spacing: -0.01em; margin: 0 0 36px 0; } @media (min-width: 768px) { .evnd__title { white-space: nowrap; } } .evnd__title .accent { color: #ef4444 !important; } .evnd__media { position: relative; width: 100%; } .evnd__glow { position: absolute; left: 50%; bottom: -4%; width: 80%; height: 80px; transform: translateX(-50%); background: radial-gradient(50% 50% at 50% 50%, rgba(239,68,68,0.3), transparent 72%); filter: blur(35px); z-index: 0; animation: evndGlow 4s ease-in-out infinite; } .evnd__imgwrap { position: relative; z-index: 1; overflow: hidden; border-radius: 16px; border: 1px solid rgba(255,255,255,0.06); box-shadow: 0 30px 60px -25px rgba(0,0,0,0.85); } .evnd__img { display: block; width: 100%; height: auto; object-fit: cover; transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1); } .evnd__imgwrap:hover .evnd__img { transform: scale(1.03); } /* Badge overlay styling */ .evnd__badge { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; background: rgba(13,13,13,0.72); border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .evnd__badge b { color: #ef4444 !important; font-weight: 800; font-size: 24px; line-height: 1; } .evnd__badge span { color: rgba(255,255,255,0.7) !important; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .evnd__badge--tl { top: 20px; left: 20px; } .evnd__badge--br { bottom: 20px; right: 20px; } /* ---- Feature cards ---- */ .evnd__features { display: flex; flex-direction: column; gap: 16px; height: 100%; justify-content: space-between; } .evnd-feature { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 20px; align-items: start; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); border-radius: 16px; padding: 24px; overflow: hidden; transition: background-color 0.4s ease, border-color 0.4s ease, transform 0.4s cubic-bezier(.25,1,.5,1); } .evnd-feature__body { min-width: 0; } .evnd-feature::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #ef4444; transform: scaleY(0); transform-origin: bottom; transition: transform 0.4s ease; } .evnd-feature:hover { background: rgba(239,68,68,0.03); border-color: rgba(239,68,68,0.2); transform: translateY(-2px); } .evnd-feature:hover::before { transform: scaleY(1); } .evnd-feature__icon-container { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; transition: background-color 0.3s ease, border-color 0.3s ease; } .evnd-feature:hover .evnd-feature__icon-container { background: rgba(239,68,68,0.08); border-color: rgba(239,68,68,0.25); } .evnd-icon { width: 22px; height: 22px; display: block; } .evnd-feature__title { color: #fff !important; font-weight: 700; font-size: 15px !important; text-transform: uppercase; letter-spacing: 0.05em; margin: 4px 0 8px; transition: color 0.3s ease; } .evnd-feature:hover .evnd-feature__title { color: #ef4444 !important; } .evnd-feature__desc { color: rgba(255,255,255,0.65) !important; font-weight: 400 !important; font-size: 14px !important; line-height: 1.6 !important; margin: 0; } .evnd-feature__arrow { color: rgba(255,255,255,0.25); font-size: 16px; align-self: flex-start; margin-top: 4px; transition: color 0.3s ease, transform 0.3s ease; } .evnd-feature:hover .evnd-feature__arrow { color: #ef4444; transform: translate(3px, -3px); } /* When the left media is a live 3D scene, let it define its own height (via aspect-ratio) — drop the image-only hover zoom container quirks. */ .evnd__imgwrap--media { box-shadow: 0 30px 60px -25px rgba(0,0,0,0.85); } /* ============================================================ Rotating "live AI insight" cards (split-screen right column). Themed per-workflow via CSS vars (--ca accent \xb7 --ca2 secondary \xb7 --cg glow). Falls back to the section red when no theme is passed. ============================================================ */ .evnd__cards { --ca: #ef4444; --ca2: #f59e0b; --cg: rgba(239,68,68,0.22); position: relative; display: flex; flex-direction: column; gap: 22px; width: 100%; /* panel surface so the column reads as a real dashboard, not empty space */ background: radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--ca) 9%, transparent) 0%, transparent 55%), linear-gradient(180deg, rgba(255,255,255,0.025) 0%, rgba(255,255,255,0.01) 100%); border: 1px solid rgba(255,255,255,0.07); border-radius: 20px; padding: 26px 26px 22px; overflow: hidden; isolation: isolate; } /* ============================================================ Layered "AI intelligence" backdrop (behind the card content). Overscanned by 12% on every side so the scroll-parallax never exposes a panel edge. Whole stack is colour = accent, individual layers stay inside a 5–12% opacity budget. z-index 0; content is z 1. ============================================================ */ .evnd__bg { position: absolute; /* generous overscan so scroll-parallax never exposes a panel edge */ inset: -20%; z-index: 0; color: var(--ca); pointer-events: none; overflow: hidden; } .evnd__bg > * { position: absolute; inset: 0; } /* Layer B — technical grid (large spacing, softer than the 3D floor) */ .evnd__bg-grid { background-image: linear-gradient(to right, currentColor 1px, transparent 1px), linear-gradient(to bottom, currentColor 1px, transparent 1px); background-size: 64px 64px; opacity: 0.05; -webkit-mask-image: radial-gradient(120% 100% at 80% 0%, #000 30%, transparent 85%); mask-image: radial-gradient(120% 100% at 80% 0%, #000 30%, transparent 85%); } /* Layer A — routing network graph */ .evnd__bg-net { width: 100%; height: 100%; opacity: 0.11; } .evnd__bg-mesh { opacity: 0.55; } .evnd__bg-nodes circle { transform-box: fill-box; transform-origin: center; animation: evndNode 3.6s ease-in-out infinite; } @keyframes evndNode { 0%,100% { opacity: 0.45; } 50% { opacity: 1; } } .evnd__bg-flow { opacity: 0.85; stroke-dasharray: 14 320; animation: evndFlow 7s linear infinite; } .evnd__bg-flow--2 { animation-duration: 9s; animation-delay: -3s; } @keyframes evndFlow { to { stroke-dashoffset: -334; } } /* Layer C — ambient glow field (slow breathing, 9–11s) */ .evnd__bg-glow { inset: auto; border-radius: 50%; filter: blur(46px); } .evnd__bg-glow--a { top: -6%; right: -6%; width: 58%; height: 50%; background: radial-gradient(50% 50% at 50% 50%, var(--cg), transparent 72%); animation: evndBreathe 9.5s ease-in-out infinite; } .evnd__bg-glow--b { bottom: -8%; left: -10%; width: 52%; height: 46%; background: radial-gradient(50% 50% at 50% 50%, color-mix(in srgb, var(--ca2) 55%, var(--cg)), transparent 72%); opacity: 0.6; animation: evndBreathe 11.5s ease-in-out infinite; animation-delay: -4s; } @keyframes evndBreathe { 0%,100% { opacity: 0.4; transform: scale(0.96); } 50% { opacity: 0.85; transform: scale(1.06); } } /* Layer D — data particles (sparse, slow drift) */ .evnd__bg-particles span { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: 0; box-shadow: 0 0 6px currentColor; animation-name: evndParticle; animation-timing-function: ease-in-out; animation-iteration-count: infinite; } @keyframes evndParticle { 0% { opacity: 0; transform: translateY(8px); } 20% { opacity: 0.5; } 80% { opacity: 0.5; } 100% { opacity: 0; transform: translateY(-22px); } } .evnd__cards-head, .evnd__cards-stage, .evnd__cards-nav { position: relative; z-index: 1; } /* dashboard header row */ .evnd__cards-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 4px; } .evnd__cards-live { display: inline-flex; align-items: center; gap: 9px; color: var(--ca) !important; font-weight: 800; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; } .evnd__cards-livedot { width: 8px; height: 8px; border-radius: 50%; background: var(--ca); box-shadow: 0 0 0 0 var(--cg); animation: evndPulse 1.8s ease-out infinite; } @keyframes evndPulse { 0% { box-shadow: 0 0 0 0 var(--cg); opacity: 1; } 70% { box-shadow: 0 0 0 8px transparent; opacity: 0.7; } 100% { box-shadow: 0 0 0 0 transparent; opacity: 1; } } .evnd__cards-sys { color: rgba(255,255,255,0.4) !important; font-weight: 700; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; } .evnd__cards-stage { display: grid; } .evnd__card { grid-area: 1 / 1; position: relative; display: flex; flex-direction: column; opacity: 0; transform: translateY(14px); transition: opacity 0.6s ease, transform 0.6s cubic-bezier(.25,1,.5,1); pointer-events: none; } .evnd__card.is-active { opacity: 1; transform: translateY(0); pointer-events: auto; } /* status pill */ .evnd__card-status { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; color: rgba(255,255,255,0.82) !important; font-weight: 700; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding: 7px 13px; background: color-mix(in srgb, var(--ca) 12%, rgba(255,255,255,0.02)); border: 1px solid color-mix(in srgb, var(--ca) 35%, transparent); border-radius: 999px; margin-bottom: 20px; } .evnd__card-statusdot { width: 7px; height: 7px; border-radius: 50%; background: var(--ca); box-shadow: 0 0 8px var(--ca); animation: evndPulse 1.8s ease-out infinite; } /* hero metric */ .evnd__card-hero { display: flex; flex-direction: column; gap: 4px; margin-bottom: 22px; } .evnd__card-metric { display: inline-flex; align-items: baseline; color: #fff !important; font-weight: 800; font-size: clamp(48px, 6vw, 68px); line-height: 0.95; letter-spacing: -0.02em; background: linear-gradient(120deg, #fff 0%, var(--ca) 120%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .evnd__card-metric i { font-style: normal; font-size: 0.5em; font-weight: 800; margin-left: 4px; -webkit-text-fill-color: var(--ca); color: var(--ca); } .evnd__card-metriclabel { color: rgba(255,255,255,0.6) !important; font-weight: 600; font-size: 14px; letter-spacing: 0.02em; } .evnd__card-title { color: #fff !important; font-weight: 800 !important; font-size: clamp(17px, 1.7vw, 20px) !important; line-height: 1.2 !important; letter-spacing: 0.02em; text-transform: uppercase; margin: 0 0 16px 0 !important; } /* outcome indicators */ .evnd__card-kpis { list-style: none; margin: 0 0 18px 0; padding: 0; display: grid; gap: 11px; } .evnd__cards .evnd__card-kpis li { display: flex; align-items: center; gap: 11px; /* override the global ".logico-front-end ul li" padding + ::before glyph */ padding: 0; color: rgba(255,255,255,0.82) !important; font-weight: 600; font-size: 14px; letter-spacing: 0.01em; } .evnd__cards .evnd__card-kpis li::before { content: none !important; display: none !important; } .evnd__card-kpis svg { flex: none; width: 18px; height: 18px; padding: 3px; color: var(--ca); background: color-mix(in srgb, var(--ca) 14%, transparent); border: 1px solid color-mix(in srgb, var(--ca) 34%, transparent); border-radius: 6px; } .evnd__card-desc { color: rgba(255,255,255,0.58) !important; font-weight: 400 !important; font-size: 15.5px !important; line-height: 1.7 !important; margin: 0 !important; } .evnd__cards-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 6px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.06); } .evnd__cards-counter { color: rgba(255,255,255,0.5) !important; font-weight: 700; font-size: 13px; letter-spacing: 0.08em; } .evnd__cards-bars { display: flex; gap: 8px; } .evnd__cards-bar { width: 40px; height: 3px; border: none; padding: 0; background: rgba(255,255,255,0.15); border-radius: 999px; cursor: pointer; transition: background-color 0.3s ease, width 0.3s ease; } .evnd__cards-bar.is-active { width: 56px; background: var(--ca); } .evnd__cards-bar:hover { background: rgba(255,255,255,0.35); } .evnd__cards-bar.is-active:hover { background: var(--ca); } @media (prefers-reduced-motion: reduce) { .evnd__bg-flow, .evnd__bg-nodes circle, .evnd__bg-glow, .evnd__bg-particles span, .evnd__cards-livedot, .evnd__card-statusdot { animation: none !important; } .evnd__bg-particles span { opacity: 0.4; } } /* ---- BOTTOM BAR ---- */ .evnd__bar { display: grid; grid-template-columns: repeat(4, 1fr); background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.06); border-radius: 16px; overflow: hidden; margin-top: 60px; padding: 38px 0; } .evnd__bar-item { position: relative; display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; text-align: center; padding: 12px 24px; } .evnd__bar-item:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 15%; height: 70%; width: 1px; background: rgba(255, 255, 255, 0.08); } .evnd__bar-val { color: #ef4444 !important; font-weight: 800; font-size: clamp(32px, 4vw, 56px); line-height: 1; } .evnd__bar-label { color: #fff !important; font-size: 14px; font-weight: 600; letter-spacing: 0.02em; text-transform: none; opacity: 0.9; } @keyframes evndGlow { 0%,100% { opacity: 0.75; } 50% { opacity: 1; } } /* ---- Responsive ---- */ @media (max-width: 1024px) { .evnd-gap-top { margin-top: 32px !important; } .evnd-gap-bottom { margin-bottom: 32px !important; } } @media (max-width: 991px) { .evnd { padding: 48px 32px 56px; } .evnd__grid { grid-template-columns: 1fr; gap: 40px; } .evnd__title { margin-bottom: 28px; } .evnd__features { gap: 14px; } } @media (max-width: 767px) { .evnd-gap-top { margin-top: 24px !important; } .evnd-gap-bottom { margin-bottom: 24px !important; } /* Pull the KPI bar up close to the card (was a 60px desktop gap) so there's no large vertical dead zone before the KPIs on mobile. */ .evnd__bar { grid-template-columns: repeat(2, 1fr); gap: 24px 0; padding: 24px 0; margin-top: 24px; } .evnd__bar-item:nth-child(even)::after { display: none; } .evnd__bar-item:nth-child(2)::after { display: none; } .evnd__bar-item { padding: 12px 16px; } /* ---- Scene overlay cleanup (mobile) ---- Keep only the primary top-left KPI badge; the second (bottom-right) badge duplicates info in the insight card and covers the route visualization, so it is removed. The remaining badge is scaled down (~0.72) so it never dominates the now-shorter scene. */ .evnd__badge--br { display: none !important; } .evnd__badge--tl { transform: scale(0.72); transform-origin: top left; } /* ---- Horizontal alignment (WF1 / WF2 only) ---- The stacked scene column is a grid 1fr track whose auto-minimum equals the Three.js canvas min-content (~244px). At 320px that floor is wider than the available column, forcing the whole section ~18px past its container (left-aligned) → unequal left/right gaps. minmax(0,1fr) + min-width:0 let the scene/card columns shrink to the container so the scene, card and KPI bar share one symmetric width and centre perfectly. Scoped to .evnd__grid--cards (WF1/WF2), so the homepage EV section is untouched. */ .evnd__grid--cards { grid-template-columns: minmax(0, 1fr); } .evnd__grid--cards .evnd__left, .evnd__grid--cards .evnd__right, .evnd__grid--cards .evnd__media, .evnd__grid--cards .evnd__cards { min-width: 0; } } @media (max-width: 480px) { .evnd { padding: 40px 16px 48px; } /* keep the stat bar a compact 2\xd72 on phones (inherits the centre divider from the ≤767 rules) instead of a tall single column */ .evnd__bar { grid-template-columns: repeat(2, 1fr); gap: 18px 0; padding: 22px 0; } .evnd__bar-item { padding: 10px 12px; gap: 8px; } .evnd__bar-val { font-size: clamp(26px, 9vw, 34px); } .evnd__bar-label { font-size: 12.5px; } /* badge already scaled to 0.72 via the ≤767 rule — keep desktop internals so the scale (not double-reduction) controls its size */ /* feature cards: tighter, no overflow, more room for text */ .evnd-feature { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 18px 16px; } .evnd-feature__icon-container { width: 40px; height: 40px; border-radius: 10px; } .evnd-icon { width: 20px; height: 20px; } .evnd-feature__title { font-size: 14px !important; letter-spacing: 0.03em; margin: 2px 0 6px; padding-right: 22px; } .evnd-feature__desc { font-size: 13px !important; line-height: 1.55 !important; } /* arrow occupies its own slot to the right of the icon, no extra column */ .evnd-feature__arrow { position: absolute; top: 16px; right: 16px; margin: 0; } /* ---- Compact mobile insight card (standard mobile, 390–480px). Tighter spacing, smaller typography and a 2-line-clamped description so the card stays ~380–480px tall and the KPI bar is reached with far less scrolling. ---- */ .evnd__cards { padding: 20px 18px 16px; gap: 14px; } .evnd__cards-sys { display: none; } .evnd__cards-head { padding-bottom: 0; } .evnd__cards-live { font-size: 11px; } .evnd__card-status { margin-bottom: 14px; padding: 6px 12px; font-size: 10.5px; } .evnd__card-hero { margin-bottom: 12px; gap: 2px; } .evnd__card-metric { font-size: clamp(38px, 12vw, 50px); } .evnd__card-metriclabel { font-size: 13px; } .evnd__card-title { font-size: 15px !important; margin: 0 0 12px 0 !important; } .evnd__card-kpis { margin: 0; gap: 9px; } .evnd__card-kpis li { font-size: 14px; } .evnd__card-kpis svg { width: 17px; height: 17px; } /* Drop the paragraph on mobile — the status, metric, title and bullets carry the meaning; this is the single biggest height saving and matches the compact mobile structure. */ .evnd__card-desc { display: none; } .evnd__cards-nav { margin-top: 14px; padding-top: 14px; } .evnd__cards-bar { width: 30px; } .evnd__cards-bar.is-active { width: 44px; } } /* ---- Medium mobile (≤389px, e.g. 360/375): a notch tighter ---- */ @media (max-width: 389px) { .evnd__cards { padding: 18px 16px 14px; gap: 12px; } .evnd__card-status { margin-bottom: 12px; } .evnd__card-hero { margin-bottom: 10px; } .evnd__card-metric { font-size: clamp(36px, 11.5vw, 46px); } .evnd__card-title { font-size: 14.5px !important; margin-bottom: 10px !important; } .evnd__card-kpis { gap: 8px; } .evnd__card-kpis li { font-size: 13.5px; } .evnd__cards-nav { margin-top: 12px; padding-top: 12px; } } /* ---- Compact mobile (≤340px, e.g. 320): tightest. Drop the paragraph entirely — the bullets carry the meaning — so nothing overflows. ---- */ @media (max-width: 340px) { .evnd__cards { padding: 16px 14px 12px; gap: 10px; } .evnd__card-status { margin-bottom: 10px; padding: 5px 10px; font-size: 10px; letter-spacing: 0.1em; } .evnd__card-hero { margin-bottom: 8px; } .evnd__card-metric { font-size: 34px; } .evnd__card-metriclabel { font-size: 12px; } .evnd__card-title { font-size: 13.5px !important; margin-bottom: 8px !important; } .evnd__card-kpis { gap: 7px; } .evnd__card-kpis li { font-size: 13px; gap: 9px; } .evnd__card-kpis svg { width: 16px; height: 16px; } .evnd__cards-nav { margin-top: 10px; padding-top: 10px; } } `}}),(0,t.jsxs)("div",{className:"elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent"+(w?" evnd-gap-top":"")+(y?" evnd-gap-bottom":""),"data-id":"bbc6760","data-element_type":"container","data-e-type":"container","aria-label":j,style:{backgroundColor:"#0d0d0d",width:"calc(100% - 40px)",marginLeft:"20px",marginRight:"20px",borderRadius:"25px",overflow:"hidden"},children:[(0,t.jsx)("div",{ref:S,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","data-settings":'{"background_background":"classic"}',style:{backgroundPosition:"center 0px",backgroundImage:`url(${e})`,backgroundSize:"cover",backgroundRepeat:"no-repeat",position:"relative",zIndex:2,borderRadius:"25px 25px 0 0",overflow:"hidden"}}),(0,t.jsx)("div",{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:(0,t.jsxs)("div",{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:[(0,t.jsxs)("div",{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:[l&&(0,t.jsx)("div",{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:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:l})})}),(0,t.jsx)("div",{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:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("h5",{className:"logico-title",children:c})})}),(0,t.jsx)("div",{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:(0,t.jsx)("div",{className:"elementor-widget-container",children:(0,t.jsx)("p",{children:p})})})]}),(0,t.jsx)("div",{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"}'})]})}),(0,t.jsx)("section",{className:"evnd","aria-label":j??"EV-Native Design",children:(0,t.jsxs)("div",{className:"evnd__inner",children:[(0,t.jsx)("span",{className:"evnd__eyebrow",children:m}),(0,t.jsxs)("h2",{className:"evnd__title",children:[g,(0,t.jsx)("span",{className:"accent",children:u})]}),(0,t.jsxs)("div",{className:`evnd__grid${E?" evnd__grid--cards":""}`,children:[(0,t.jsx)("div",{className:"evnd__left",children:(0,t.jsxs)("div",{className:"evnd__media",children:[(0,t.jsx)("div",{className:"evnd__glow"}),(0,t.jsxs)("div",{className:`evnd__imgwrap${k?" evnd__imgwrap--media":""}`,children:[k||(0,t.jsx)("img",{className:"evnd__img",src:x,alt:v,decoding:"async"}),b[0]&&(0,t.jsxs)("div",{className:"evnd__badge evnd__badge--tl",children:[(0,t.jsx)("b",{children:b[0].value}),(0,t.jsx)("span",{children:b[0].label})]}),b[1]&&(0,t.jsxs)("div",{className:"evnd__badge evnd__badge--br",children:[(0,t.jsx)("b",{children:b[1].value}),(0,t.jsx)("span",{children:b[1].label})]})]})]})}),(0,t.jsx)("div",{className:"evnd__right",children:E?(0,t.jsx)(h,{slides:N,heading:z,theme:L}):(0,t.jsx)("div",{className:"evnd__features",children:f.map(e=>(0,t.jsxs)("div",{className:"evnd-feature",children:[(0,t.jsx)("div",{className:"evnd-feature__icon-container","aria-hidden":"true",children:e.icon}),(0,t.jsxs)("div",{className:"evnd-feature__body",children:[(0,t.jsx)("div",{className:"evnd-feature__title",children:e.title}),(0,t.jsx)("p",{className:"evnd-feature__desc",children:e.desc})]}),(0,t.jsx)("span",{className:"evnd-feature__arrow","aria-hidden":"true",children:"↗"})]},e.title))})})]}),(0,t.jsx)("div",{className:"evnd__bar",children:_.map(e=>(0,t.jsxs)("div",{className:"evnd__bar-item",children:[(0,t.jsx)("span",{className:"evnd__bar-label",children:e.label}),(0,t.jsx)(d,{value:e.value,decimals:e.decimals,suffix:e.suffix,className:"evnd__bar-val"})]},e.label))})]})})]})]})}])},58829,e=>{"use strict";var t=e.i(43476),n=e.i(71645);function a({from:e,to:i,duration:r=2e3,decimals:o=0,suffix:s=""}){let[d,l]=(0,n.useState)(e);return(0,n.useEffect)(()=>{let t=null,n=a=>{t||(t=a);let o=Math.min((a-t)/r,1);l(o*(i-e)+e),o<1&&window.requestAnimationFrame(n)};window.requestAnimationFrame(n)},[e,i,r]),(0,t.jsxs)(t.Fragment,{children:[d.toFixed(o),s]})}e.s(["default",0,function(){let[e,i]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{requestAnimationFrame(()=>i(!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.png') !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 40px; } .miletruth-hero-container::before { display: none !important; } .miletruth-content { position: relative; z-index: 2; width: 100%; padding: 0 40px !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 40px !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-container { min-height: 600px; padding: 120px 0; } .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: 100px 0; } .miletruth-hero .elementor-element-86f3204 { padding: 0 12px; } /* 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 14px !important; } .miletruth-hero .slide-content { padding: 0 !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; } .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)(a,{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)(a,{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)(a,{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)(a,{from:1,to:45,decimals:0,suffix:""}):"45"}),(0,t.jsx)("span",{className:"elementor-counter-number-suffix",children:"ms"})]})]})})})]})})})]})})]})}])},16971,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(70703);let i=(0,a.default)(()=>e.A(49712),{loadableGenerated:{modules:[29539]},ssr:!1}),r=(0,a.default)(()=>e.A(40999),{loadableGenerated:{modules:[39184]},ssr:!1}),o={optimization:"#020617",logistics:"#08080c"},s={optimization:{center:.78,amp:.14,speed:.5,still:.85},logistics:{center:.5,amp:.13,speed:.4,still:.52}};e.s(["default",0,function({variant:e,ariaLabel:a}){let d=(0,n.useRef)(null),l=(0,n.useRef)(s[e].still),[c,p]=(0,n.useState)(!1),[m,g]=(0,n.useState)(!1),[h,u]=(0,n.useState)(!1),[f,x]=(0,n.useState)(!1),[v,b]=(0,n.useState)(!1);return(0,n.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)"),a=()=>{u(e.matches),x(t.matches),b(n.matches)};return a(),e.addEventListener("change",a),t.addEventListener("change",a),n.addEventListener("change",a),()=>{e.removeEventListener("change",a),t.removeEventListener("change",a),n.removeEventListener("change",a)}},[]),(0,n.useEffect)(()=>{let e=d.current;if(!e)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(p(!0),g(!0),t.disconnect())},{rootMargin:"60% 0px"}),n=new IntersectionObserver(e=>g(e.some(e=>e.isIntersecting)),{rootMargin:"10% 0px"});return t.observe(e),n.observe(e),()=>{t.disconnect(),n.disconnect()}},[]),(0,n.useEffect)(()=>{let t=s[e];if(v){l.current=t.still;return}if(!m)return;let n=0,a=()=>{let e=performance.now()/1e3;l.current=t.center+Math.sin(e*t.speed)*t.amp,n=requestAnimationFrame(a)};return n=requestAnimationFrame(a),()=>cancelAnimationFrame(n)},[e,v,m]),(0,t.jsxs)("div",{ref:d,className:"wf-scene",role:"img","aria-label":a??"DoorMile 3D logistics scene",style:{background:o[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:c&&("optimization"===e?(0,t.jsx)(i,{progress:l,reduced:v,isMobile:h,isTablet:f,active:m}):(0,t.jsx)(r,{progress:l,reduced:v,isMobile:h,active:m}))})]})}])},76756,e=>{"use strict";var t=e.i(43476),n=e.i(14224),a=e.i(16971);let i={accent:"#00E5FF",accent2:"#3B82F6",glow:"rgba(0,229,255,0.22)"},r=[{status:"Optimization Running",title:"Route Optimization",value:42,suffix:"%",metricLabel:"Distance Saved",kpis:["Route optimization active","37% fewer vehicles required","SLA compliance 99.9%"],desc:"AI selects the most efficient delivery paths across every zone, cutting unnecessary travel and fuel and battery consumption."},{status:"Fleet Balancing",title:"Distance Reduction",value:37,suffix:"%",metricLabel:"Fewer Vehicles",kpis:["Load balancing engaged","Same volume, leaner fleet","Lower maintenance & staffing"],desc:"Intelligent load balancing fulfils the same order volume with a leaner, better-utilised fleet — fewer miles, fewer vehicles."},{status:"Dispatch Active",title:"Fleet Efficiency",value:31,suffix:"%",metricLabel:"Lower Operating Cost",kpis:["Higher fleet utilisation","Predictable operations","Reduced fuel & overhead"],desc:"Smart grouping and dispatch keep operations smooth and predictable while reducing maintenance and staffing cost."},{status:"SLA Safe",title:"SLA Performance",value:99.9,decimals:1,suffix:"%",metricLabel:"On-Time Delivery",kpis:["Real-time route correction","Consistent delivery windows","100% order fulfilment"],desc:"Real-time routing keeps deliveries on time across all zones, sustaining high customer satisfaction and SLA performance."}],o=[{value:"-42%",label:"DISTANCE SAVED"},{value:"-37%",label:"FEWER VEHICLES"}],s=[{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"}];e.s(["default",0,function(){return(0,t.jsx)(n.default,{ariaLabel:"Workflow 1 — Performance",gapTop:!0,gapBottom:!0,bannerImage:"/images/home3-slide-1.jpg",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)(a.default,{variant:"optimization",ariaLabel:"Live route optimization engine"}),slides:r,cardsHeading:"Performance Insight",cardsTheme:i,badges:o,stats:s})}])},38730,e=>{"use strict";var t=e.i(43476),n=e.i(14224),a=e.i(16971);let i={accent:"#E2354A",accent2:"#F59E0B",glow:"rgba(226,53,74,0.24)"},r=[{status:"Generating Routes",title:"Generate Routes",value:6,suffix:" plans",metricLabel:"Route Plans Generated",kpis:["Parallel strategies explored","59 orders in scope","Real-time combinations"],desc:"The Parallel Universe Engine evaluates many routing strategies at once for every dispatch window, exploring route combinations in real time."},{status:"Constraints Passed",title:"Check Constraints",value:5,metricLabel:"Constraints Evaluated",kpis:["Battery aware","Capacity & distance checked","Powered by Google OR-Tools"],desc:"Battery, distance, capacity and time are first-class inputs — battery-aware simulation solves the EV routing challenge."},{status:"Scoring Routes",title:"Score & Compare",value:12,suffix:"+",metricLabel:"Strategies Compared",kpis:["Ranked by total cost","SLA protected","Real-time ETA validation"],desc:"Every plan is benchmarked in parallel and ranked by total cost, with sub-45ms inference at production scale."},{status:"Delivery Ready",title:"Select Best Plan",value:45,suffix:"ms",metricLabel:"Decision Latency",kpis:["Late plans rejected","Best plan locked in","Dispatched to the fleet"],desc:"Late plans are rejected automatically and the highest-performing, SLA-first plan is locked in and dispatched."}],o=[{value:"45ms",label:"INFERENCE"},{value:"100%",label:"SLA-FIRST"}],s=[{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"}];e.s(["default",0,function(){return(0,t.jsx)(n.default,{ariaLabel:"Workflow 2 — Innovation",gapBottom:!0,bannerImage:"/images/mid-mile-approach.jpg",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.",mediaSlot:(0,t.jsx)(a.default,{variant:"logistics",ariaLabel:"Live multi-route logistics brain"}),slides:r,cardsHeading:"AI Decision Engine",cardsTheme:i,badges:o,stats:s})}])},33016,e=>{"use strict";var t=e.i(43476),n=e.i(71645);let a=(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),[i,r]=(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)&&(r(!0),n.disconnect())},{rootMargin:"150% 0px"});return n.observe(t),()=>n.disconnect()},[]),i)?(0,t.jsx)("div",{ref:e,style:{display:"contents"},children:(0,t.jsx)(a,{})}):(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/0z6t9sni_7re~.js"].map(t=>e.l(t))).then(()=>t(29539)))},40999,e=>{e.v(t=>Promise.all(["static/chunks/04dzth4udk0lf.js","static/chunks/0z6t9sni_7re~.js","static/chunks/0-kxqnmnjtk7l.js"].map(t=>e.l(t))).then(()=>t(39184)))},15756,e=>{e.v(t=>Promise.all(["static/chunks/0-u0mnwn1ei4e.js","static/chunks/0w2vl4s.138yn.js"].map(t=>e.l(t))).then(()=>t(55819)))}]);