(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5074,e=>{"use strict";var t=e.i(43476),a=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]]],i=[[.115,.3],[.265,.255],[.285,.66],[.475,.185],[.605,.345],[.655,.4],[.745,.5],[.815,.275],[.865,.715]],r=[[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 o=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let[t,a,d]=function(e){let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return[239,68,68];let a=parseInt(t[1],16);return[a>>16&255,a>>8&255,255&a]}(e),s=e=>`rgba(${t},${a},${d},${e})`,l=`rgb(${t},${a},${d})`,p=o.current,c=p?.parentElement;if(!p||!c)return;let m=p.getContext("2d");if(!m)return;let h=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,g=0,x=0,v=[],f=0,b=0,_=()=>{let e=c.getBoundingClientRect();g=Math.max(1,e.width),x=Math.max(1,e.height);let t=Math.min(window.devicePixelRatio||1,2);p.width=Math.round(g*t),p.height=Math.round(x*t),p.style.width=g+"px",p.style.height=x+"px",m.setTransform(t,0,0,t,0,0),(()=>{v=[];let e=Math.max(11,Math.min(17,g/70));for(let t=e/2;tt!=l>t&&e<(s-o)*(t-d)/(l-d)+o&&(n=!n)}return n}(e,i,r)){v.push({x:t,y:a});break}}})()},u=(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)}),w=(e,t,a,n)=>{let i=1-n;return{x:i*i*e.x+2*i*n*t.x+n*n*a.x,y:i*i*e.y+2*i*n*t.y+n*n*a.y}},y=e=>{for(let e of(m.clearRect(0,0,g,x),m.fillStyle="rgba(120,122,130,0.55)",v))m.beginPath(),m.arc(e.x,e.y,1.15,0,2*Math.PI),m.fill();let t=i.map(([e,t])=>({x:e*g,y:t*x}));for(let[e,a]of(m.save(),m.setLineDash([4,7]),m.lineWidth=1,m.strokeStyle=s(.13),r)){let n=u(t[e],t[a]);m.beginPath(),m.moveTo(t[e].x,t[e].y),m.quadraticCurveTo(n.x,n.y,t[a].x,t[a].y),m.stroke()}m.restore(),m.save();for(let a=0;a{b||(b=e),y((e-b)/1e3),f=requestAnimationFrame(k)};_(),h?y(0):f=requestAnimationFrame(k);let j=new ResizeObserver(()=>{_(),h&&y(0)});return j.observe(c),()=>{cancelAnimationFrame(f),j.disconnect()}},[e]),(0,t.jsx)("canvas",{ref:o,className:"ind__map","aria-hidden":"true"})}])},14224,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(89970),i=e.i(83495),r=e.i(5074);n.default.registerPlugin(i.ScrollTrigger);let o=[{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 arrival 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."}],d=[{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 l({value:e,decimals:n=0,suffix:i="",duration:r=1700,className:o}){let[d,s]=(0,a.useState)(0),p=(0,a.useRef)(null),c=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{let t=p.current;if(!t)return;if(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches)return void requestAnimationFrame(()=>s(e));let a=new IntersectionObserver(t=>{for(let n of t)if(n.isIntersecting&&!c.current){c.current=!0;let t=performance.now(),n=e=>1-Math.pow(1-e,3),i=a=>{let o=Math.min(1,(a-t)/r);s(e*n(o)),o<1?requestAnimationFrame(i):s(e)};requestAnimationFrame(i),a.disconnect()}},{threshold:.2});return a.observe(t),()=>a.disconnect()},[e,r]),(0,t.jsxs)("b",{ref:p,className:o,children:[d.toFixed(n),i]})}function p({accent:e}){return(0,t.jsx)("div",{className:"evnd__map","aria-hidden":"true",children:(0,t.jsx)(r.default,{accent:e})})}function c({metrics:e,features:a,heading:n,theme:i,sysLabel:r="AI ENGINE"}){let o=i?{"--ca":i.accent,"--ca2":i.accent2,"--cg":i.glow}:void 0;return(0,t.jsxs)("div",{className:"evnd__dash",style:o,children:[n&&(0,t.jsxs)("div",{className:"evnd__dash-head",children:[(0,t.jsxs)("span",{className:"evnd__dash-live",children:[(0,t.jsx)("span",{className:"evnd__dash-livedot"}),n]}),(0,t.jsx)("span",{className:"evnd__dash-sys",children:r})]}),(0,t.jsx)("div",{className:"evnd__dash-kpis",children:e.map(e=>(0,t.jsxs)("div",{className:"evnd__kpi",children:[e.text?(0,t.jsx)("b",{className:"evnd__kpi-val evnd__kpi-val--text",children:e.text}):(0,t.jsx)(l,{value:e.value,decimals:e.decimals,suffix:e.suffix,className:"evnd__kpi-val"}),(0,t.jsx)("span",{className:"evnd__kpi-label",children:e.label})]},e.label))}),(0,t.jsx)("div",{className:"evnd__dash-feats",children:a.map(e=>(0,t.jsxs)("div",{className:"evnd__dfeat",children:[(0,t.jsx)("span",{className:"evnd__dfeat-ico","aria-hidden":"true",children:e.icon}),(0,t.jsxs)("div",{className:"evnd__dfeat-body",children:[(0,t.jsx)("span",{className:"evnd__dfeat-title",children:e.title}),(0,t.jsx)("p",{className:"evnd__dfeat-desc",children:e.desc})]})]},e.title))})]})}function m({src:e,ariaLabel:n}){let i=(0,a.useRef)(null),[r,o]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{let e=i.current;if(!e||r)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(o(!0),t.disconnect())},{rootMargin:"1200px 0px"});return t.observe(e),()=>t.disconnect()},[r]),(0,a.useEffect)(()=>{r&&i.current?.load()},[r]),(0,t.jsx)("video",{ref:i,className:"evnd__video",autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"none","aria-label":n,src:r?e:void 0})}e.s(["default",0,function({bannerImage:e="/images/ev.webp",cardNumber:r="",cardTitle:h="EV Logistics",cardSubtitle:g="Cleaner miles, lower costs",eyebrow:x="/ EV-Native Design /",titleLead:v="BUILT FOR ELECTRIC. ",titleAccent:f="NOT ADAPTED.",features:b=o,image:_="/images/ev.webp",imageAlt:u="DoorMile electric fleet van",badges:w=d,stats:y=s,gapTop:k=!1,gapBottom:j=!1,ariaLabel:N,mediaSlot:z,metrics:T,barStats:I,cardsHeading:M,cardsTheme:P,sysLabel:S,mediaClassName:E}){let L=(0,a.useRef)(null),F=!!T&&T.length>0,C=F?I:y,R=_.endsWith(".mp4"),W=F&&P?{"--ca":P.accent,"--ca2":P.accent2,"--cg":P.glow}:void 0;(0,a.useEffect)(()=>{let e=L.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,a=e.getBoundingClientRect().top+t;n.default.set(e,{backgroundPosition:`center ${.3*(t-a)}px`})}else n.default.set(e,{backgroundPosition:""})}});return()=>t?.kill()},[]);let A="elementor-element elementor-element-bbc6760 e-con-full e-flex cut-corner-no sticky-container-off e-con e-parent"+(F?" evnd-workflow-shell":"")+(k?" evnd-gap-top":"")+(j?" evnd-gap-bottom":"");return(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); } /* ---- Tighten the space below the KPI bar (WF1/WF2 only) ---- The base section reserves a tall padding-bottom (up to 80px) plus a margin-bottom (up to 64px) that renders as a #0d0d0d band inside the rounded container — together ~144px of empty space after the KPI bar. The workflows end at the bar, so trim both: the bar now sits close to the section's bottom edge, and the outer .evnd-gap-bottom (40px) still provides clean separation to the next section. Scoped to .evnd--cards (specificity beats the base + responsive .evnd rules at every breakpoint) so the homepage EV section keeps its original spacing. */ .evnd.evnd--cards { padding-bottom: clamp(28px, 3vw, 40px); margin-bottom: clamp(8px, 1vw, 14px); } /* ---- Tighten the banner → black-section transition (≥768px) ---- From 768px up the floating title card overlaps with a FIXED budget (margin-top:-298px into the banner, -70px into this section). The workflow cards carry longer subtitles than the homepage card, so they run taller than that budget and the overflow shows as a dark #0d0d0d spacer between the hero image and this black section. Pull the section up under the banner to swallow that strip — the card (z-index 2) stays on top, so the overlapping card design is preserved. The flat top tucks cleanly behind the banner. Not applied ≤767px, where the card sits inline (no overlap) and no spacer exists — so mobile is unchanged. */ @media (min-width: 768px) { .evnd { margin-top: -60px; } } /* ---- Floating card sizing: content-driven, not container-driven ---- The exported Elementor card reserves a lot of vertical space that the short title + subtitle don't fill: the red text block (3b61435) carried 64px/73px top/bottom padding and the empty white footer strip (5aea22e) a 70px min-height. Trim both so the card height tracks the text, while keeping the two-tone red/white design, the 25px corner radius, and the typography untouched. These rules live in the (body) inline