```json
{
    "title": "Laskar – 00 Home EN",
    "url": "https://kardinal.ai/laskar-route-optimization-app/",
    "datePublished": "2025-09-08",
    "dateModified": "2026-08-20",
    "language": "en-GB",
    "description": "Laskar is a free route optimization app for delivery drivers. Plan, optimize and navigate your stops — no setup needed. 10,000+ downloads.",
    "author": "Kardinal",
    "publisher": "Kardinal"
}
```

# Laskar – 00 Home EN

Laskar - Route optimization

 :root{
 --bg:#FBFAF6;
 --bg-dark:#141218;
 --card:#F5EFE4;
 --card-dark:#1B1823;
 --border:#E4DFD3;
 --border-dark:#2E2838;
 --title:#1B1813;
 --muted:#6B6558;
 --muted-dark:#9A94A5;
 --blue:#4D6AFF;
 --violet:#6E4FE6;
 --violet-soft:#EAEDFB;
 --green:#1F8A5B;
 --btn:#1B1813;
 }
 *{box-sizing:border-box}
 .lk{ background:var(--bg); color:var(--title); margin:0;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
 .lk-wrap{ max-width:1400px; margin:0 auto; padding:0 40px; }
 .lk-mono{ font-family:"JetBrains Mono",monospace; }
 .lk-appicon{ width:62px; height:62px; border-radius:16px !important; display:block; margin:0 0 22px;
 border:1px solid rgba(255,255,255,.28) !important; box-shadow:0 14px 30px -14px rgba(27,24,19,.5); }
 .lk-eyebrow{
 display:inline-flex; align-items:center; gap:9px;
 font:600 12px/1 Inter; letter-spacing:.13em; text-transform:uppercase;
 color:var(--blue); margin:0 0 20px;
 }
 .lk-eyebrow::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--blue); }
 /* ============ HERO ============ */
 .hero{ padding:76px 0 84px; }
 .hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
 .hero h1{
 font-size:60px; line-height:1.02; font-weight:700; letter-spacing:-.03em;
 margin:0 0 22px; color:var(--title);
 }
 .hero h1 b{ color:var(--blue); font-weight:700; }
 .hero p{ font-size:19px; line-height:1.55; color:var(--muted); margin:0 0 30px; max-width:460px; }
 /* héros sombre */
 .hero{ background:var(--bg-dark); }
 .hero h1{ color:#fff; }
 .hero p{ color:#B7B2C6; }
 .hero .rating{ color:#9A94A5; }
 .lk-appicon{ box-shadow:0 14px 34px -14px rgba(0,0,0,.7); }
 .store-link{ display:inline-block; line-height:0; }
 /* Le badge Google Play paraît plus gros que le badge Apple à hauteur égale
 (son bouton est plus "plein"). On lui donne donc une hauteur un peu inférieure
 pour que les deux semblent de la même taille.
 Pour ajuster : modifie les deux hauteurs ci-dessous. */
 .store-badge{ width:auto !important; max-width:none !important; display:block; }
 .store-badge--apple{ height:48px !important; }
 .store-badge--gplay{ height:62px !important; width:auto !important; }
 .hero-cta{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:20px; }
 .btn{ display:inline-flex; align-items:center; gap:9px; text-decoration:none;
 font:600 15px Inter; border-radius:12px; padding:14px 20px; transition:.15s ease; cursor:pointer; }
 .btn-dark{ background:var(--btn); color:#fff; border:1px solid var(--btn); }
 .btn-dark:hover{ background:#2c281f; }
 .btn-ghost{ background:transparent; color:var(--title); border:1px solid var(--border); }
 .btn-ghost:hover{ border-color:#c9c1af; }
 .btn svg{ width:18px; height:18px; }
 .rating{ display:flex; align-items:center; gap:9px; color:var(--muted); font-size:14px; }
 .stars{ color:#F2A93B; letter-spacing:2px; font-size:15px; }
 /* ---- phone ---- */
 .phone{ width:300px; aspect-ratio:300/610; margin:0 auto; background:#1B1813;
 border-radius:38px; padding:9px; box-shadow:0 40px 80px -40px rgba(27,24,19,.55); position:relative; }
 .phone::after{ content:""; position:absolute; top:20px; left:50%; transform:translateX(-50%);
 width:80px; height:6px; border-radius:6px; background:#000; opacity:.6; }
 .screen{ width:100%; height:100%; background:#EDF0F3; border-radius:30px; overflow:hidden;
 display:flex; flex-direction:column; }
 .phone-halo{ position:absolute; inset:-40px; z-index:-1;
 background:radial-gradient(circle at 60% 30%, rgba(109,79,230,.20), transparent 60%); }
 .hero-visual{ position:relative; }
 /* screen: map */
 .scr-map{ position:relative; flex:1; background:#EDF0F3; }
 .scr-map svg{ display:block; width:100%; height:100% }
 .scr-topbar{ position:absolute; top:12px; left:12px; right:12px; display:flex; gap:8px; }
 .chip{ font:600 10px "JetBrains Mono"; background:#fff; color:#1B1813; border-radius:8px;
 padding:5px 9px; box-shadow:0 4px 12px -6px rgba(27,24,19,.4); }
 .chip.blue{ background:var(--blue); color:#fff; }
 .scr-card{ position:absolute; left:12px; right:12px; bottom:12px; background:#fff; border-radius:14px;
 padding:12px 14px; box-shadow:0 12px 24px -14px rgba(27,24,19,.4); }
 .scr-card .t{ font:700 14px Inter; color:#1B1813; }
 .scr-card .s{ font:400 11px Inter; color:#9A9384; margin-top:2px; }
 .scr-card .go{ margin-top:10px; background:var(--blue); color:#fff; text-align:center;
 border-radius:9px; padding:9px 0; font:600 12px Inter; }
 /* ============ FEATURES ============ */
 .features{ padding:20px 0 20px; }
 .feat{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; padding:56px 0; }
 .feat.rev .feat-txt{ order:2; }
 .feat-num{ font:600 14px "JetBrains Mono"; color:var(--blue); letter-spacing:.05em; margin-bottom:14px; }
 .feat h2{ font-size:34px; line-height:1.1; font-weight:700; letter-spacing:-.02em; margin:0 0 14px; }
 .feat p{ font-size:17px; line-height:1.6; color:var(--muted); margin:0 0 18px; max-width:420px; }
 .feat ul{ list-style:none; margin:0; padding:0; }
 .feat li{ display:flex; align-items:center; gap:10px; padding:5px 0; color:#3F3A31; font-size:15.5px; }
 .feat li svg{ width:18px; height:18px; flex:none; stroke:var(--blue); fill:none; stroke-width:2.4; }
 /* small phone screens for features */
 .scr-list{ flex:1; background:#F7F5F1; display:flex; flex-direction:column; }
 .scr-list .hd{ background:#fff; padding:14px 14px 12px; border-bottom:1px solid #EDE6D8; }
 .scr-list .hd .t{ font:700 13px Inter; color:#1B1813; }
 .scr-list .hd .s{ font:400 10px Inter; color:#9A9384; margin-top:2px; }
 .row{ display:flex; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid #EFE9DC; }
 .row .dot{ width:9px; height:9px; border-radius:50%; flex:none; }
 .row .txt{ flex:1; min-width:0; }
 .row .txt .a{ font:600 11.5px Inter; color:#1B1813; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
 .row .txt .b{ font:400 9.5px Inter; color:#9A9384; }
 .row .tag{ font:600 9.5px "JetBrains Mono"; color:#5C564A; }
 .scr-foot{ margin-top:auto; padding:12px 14px; background:#fff; border-top:1px solid #EDE6D8; }
 .scr-foot .go{ background:var(--blue); color:#fff; text-align:center; border-radius:9px; padding:10px 0; font:600 12px Inter; }
 .scr-opt{ flex:1; position:relative; background:#EDF0F3; display:flex; flex-direction:column;
 align-items:center; justify-content:center; text-align:center; padding:0 18px; }
 .scr-opt .big{ font:700 40px "JetBrains Mono"; color:var(--blue); line-height:1; }
 .scr-opt .lbl{ font:500 12px Inter; color:#5C564A; margin-top:6px; }
 .scr-opt .pill{ margin-top:16px; background:#E7F3EC; color:var(--green); font:600 11px Inter;
 border-radius:999px; padding:6px 12px; }
 .scr-nav{ flex:1; display:flex; flex-direction:column; }
 .scr-nav .nhd{ background:var(--green); color:#fff; padding:12px 14px; display:flex; align-items:center; gap:10px; }
 .scr-nav .nhd .a{ font:700 15px Inter; }
 .scr-nav .nhd .b{ font:400 9px Inter; opacity:.85; }
 .scr-nav .nhd .m{ margin-left:auto; font:700 15px "JetBrains Mono"; }
 .scr-nav .nmap{ flex:1; position:relative; background:#DCE6EC; }
 .scr-nav .nmap svg{ display:block; width:100%; height:100% }
 .scr-nav .ncard{ position:absolute; left:10px; right:10px; bottom:10px; background:#fff; border-radius:12px;
 padding:9px 12px; box-shadow:0 10px 22px -12px rgba(27,24,19,.4); display:flex; gap:16px; justify-content:center; }
 .scr-nav .ncard .k{ text-align:center; }
 .scr-nav .ncard .k .v{ font:700 13px "JetBrains Mono"; color:#1B1813; }
 .scr-nav .ncard .k .u{ font:400 8px Inter; color:#9A9384; }
 /* ============ ENCART IA (ultra shiny) ============ */
 .ai-band{ padding:8px 0 40px; }
 .ai{ position:relative; padding:1.6px; border-radius:26px; overflow:hidden;
 box-shadow:0 40px 90px -50px rgba(77,106,255,.75), 0 0 0 1px rgba(124,92,255,.10); }
 .ai::before{ content:""; position:absolute; inset:-150%;
 background:conic-gradient(#4D6AFF, #9B8CFF, #C9B8FF, #4D6AFF, #4D6AFF);
 animation:aiSpin 6s linear infinite; }
 @keyframes aiSpin{ to{ transform:rotate(360deg); } }
 .ai-inner{ position:relative; overflow:hidden; border-radius:24px; padding:36px 40px;
 background:
 radial-gradient(120% 150% at 88% 8%, rgba(124,92,255,.32), transparent 55%),
 radial-gradient(100% 130% at 6% 96%, rgba(77,106,255,.24), transparent 55%),
 #15131C;
 display:grid; grid-template-columns:1.35fr .85fr; gap:36px; align-items:center; }
 .ai-inner::after{ content:""; position:absolute; top:0; left:-70%; width:45%; height:100%;
 background:linear-gradient(100deg, transparent, rgba(255,255,255,.12), transparent);
 transform:skewX(-18deg); animation:aiSheen 5s ease-in-out infinite; pointer-events:none; }
 @keyframes aiSheen{ 0%,55%{ left:-70%; } 100%{ left:140%; } }
 .ai-badge{ display:inline-flex; align-items:center; gap:7px; font:600 11.5px Inter;
 letter-spacing:.10em; text-transform:uppercase; color:#D6CBFF;
 background:rgba(124,92,255,.16); border:1px solid rgba(124,92,255,.34);
 border-radius:999px; padding:7px 13px; }
 .ai-badge svg{ width:14px; height:14px; fill:#C9B8FF; }
 .ai-title{ font:700 30px Inter; letter-spacing:-.02em; margin:18px 0 12px; color:#fff; line-height:1.1; }
 .ai-title b{ color:#4D6AFF; }
 .ai-text{ font:400 16px/1.62 Inter; color:#C3BED0; margin:0 0 20px; max-width:540px; }
 .ai-chips{ display:flex; flex-wrap:wrap; gap:8px; }
 .ai-chips span{ font:500 12.5px Inter; color:#EAE7F4; background:rgba(255,255,255,.06);
 border:1px solid rgba(255,255,255,.13); border-radius:9px; padding:6px 11px; }
 .ai-chips span.more{ color:#B49CFF; border-color:rgba(124,92,255,.4); background:rgba(124,92,255,.10); }
 .ai-vis{ display:flex; flex-direction:column; align-items:center; gap:12px; }
 .ai-shot{ position:relative; width:100%; max-width:240px; background:#1E1B27;
 border:1px solid rgba(255,255,255,.10); border-radius:14px; padding:16px 16px 18px; }
 .ai-shot-badge{ position:absolute; top:-11px; right:12px; display:inline-flex; align-items:center; gap:5px;
 font:700 10px Inter; letter-spacing:.06em; color:#fff; background:linear-gradient(90deg,#4D6AFF,#7C5CFF);
 border-radius:999px; padding:4px 9px; box-shadow:0 8px 20px -8px rgba(124,92,255,.9); }
 .ai-shot-badge svg{ width:11px; height:11px; fill:#fff; }
 .ai-shot .cap{ font:600 11px Inter; color:#8E88A0; margin-bottom:12px; }
 .ai-shot .ln{ height:8px; border-radius:5px; background:rgba(255,255,255,.10); margin:8px 0; }
 .ai-shot .ln.s{ width:60%; }
 .ai-arrow{ width:22px; height:22px; stroke:#8E7BE6; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
 .ai-result{ display:inline-flex; align-items:center; gap:8px; font:600 13px Inter; color:#fff;
 background:rgba(31,138,91,.16); border:1px solid rgba(31,138,91,.4); border-radius:10px; padding:9px 14px; }
 .ai-result svg{ width:16px; height:16px; stroke:#3FBE86; fill:none; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
 @media (prefers-reduced-motion:reduce){ .ai::before,.ai-inner::after{ animation:none; } }
 @media (max-width:760px){ .ai-inner{ grid-template-columns:1fr; gap:24px; } .ai-title{ font-size:26px; } }
 /* écran suivi (feature 4) */
 .scr-track{ flex:1; display:flex; flex-direction:column; background:#EDF0F3; }
 .tk-notif{ display:flex; align-items:center; gap:10px; background:#1B1813; color:#fff; padding:12px 14px; }
 .tk-notif svg{ width:18px; height:18px; stroke:#B7A6FF; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
 .tk-notif .a{ font:700 11.5px Inter; } .tk-notif .b{ font:400 9px Inter; opacity:.8; margin-top:1px; }
 .tk-map{ flex:1; position:relative; }
 .tk-map svg{ display:block; width:100%; height:100% }
 .tk-eta{ position:absolute; top:10px; right:10px; background:#4D6AFF; color:#fff;
 font:700 10px "JetBrains Mono"; border-radius:8px; padding:5px 9px; box-shadow:0 6px 14px -6px rgba(77,106,255,.8); }
 .tk-foot{ background:#fff; border-top:1px solid #EDE6D8; padding:12px 14px; display:flex; flex-direction:column; gap:9px; }
 .tk-line{ display:flex; align-items:center; gap:9px; font:500 10.5px Inter; color:#3F3A31; }
 .tk-line svg{ width:16px; height:16px; flex:none; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
 /* écrans en images (à remplacer par tes captures) */
 .scr-img{ width:100%; height:100%; object-fit:cover; display:block; background:#EDF0F3; }
 /* ===== Emplacement image (aucun mock-up) =====
 Pour afficher une image : remplace src="" par le lien, dans la balise .
 Tant que src est vide, un emplacement neutre est affiché (rien n'apparaît sur le site
 une fois l'image ajoutée). */
 /* Taille des images d'écran mobile : baisse ce max-width pour les réduire (240px = 80% de 300px). */
 .img-slot{ width:100%; max-width:240px; margin:0 auto; }
 .img-slot img{ width:100% !important; height:auto !important; display:block;
 border-radius:0 !important; box-shadow:none !important; background:transparent !important;
 /* ombre qui épouse la forme réelle de l'image (pas de halo dans les zones transparentes) */
 filter: drop-shadow(0 12px 18px rgba(20,20,30,.16)) drop-shadow(0 34px 46px rgba(20,20,30,.20)) !important;
 transition: transform .35s ease, filter .35s ease; }
 .img-slot img:hover{ transform: translateY(-8px);
 filter: drop-shadow(0 18px 24px rgba(20,20,30,.20)) drop-shadow(0 48px 64px rgba(20,20,30,.26)) !important; }
 /* état vide : on réserve proprement l'emplacement */
 .img-slot:has(img[src=""]), .img-slot:has(img:not([src])){
 position:relative; aspect-ratio:9/19; border-radius:20px; overflow:hidden;
 background:#EFEDE8; border:1px dashed #D5CFC1; box-shadow:none; }
 .img-slot:has(img[src=""])::after, .img-slot:has(img:not([src]))::after{
 content:"Emplacement image"; position:absolute; inset:0; display:flex;
 align-items:center; justify-content:center; font:500 13px Inter; color:#B4AC9A; }
 .img-slot img[src=""], .img-slot img:not([src]){ visibility:hidden; }
 /* ============ ANIMATION IA ============ */
 .ai-anim{ width:100%; max-width:300px; margin:0 auto; }
 .ai-card{ position:relative; width:100%; aspect-ratio:300/364; background:#0C0A12;
 border-radius:16px; overflow:hidden; border:1px solid rgba(255,255,255,.09);
 box-shadow:0 34px 70px -34px rgba(0,0,0,.85); }
 .ai-scr{ position:relative; width:100%; height:100%; border-radius:16px; overflow:hidden; background:#14121C; }
 .aiA,.aiT,.aiB{ position:absolute; inset:0; }
 /* Phase A */
 .aiA{ background:#171522; animation:aiaF 9s ease-in-out infinite; }
 @keyframes aiaF{ 0%,38%{opacity:1} 44%,100%{opacity:0} }
 .aiA-top{ display:flex; align-items:center; gap:8px; padding:16px 12px 10px; }
 .aiA-logo{ width:20px; height:20px; border-radius:6px; background:linear-gradient(135deg,#FF9F1C,#FF5C00); flex:none; }
 .aiA-name{ font:700 11px Inter; color:#EAECF3; }
 .aiA-rec{ margin-left:auto; display:inline-flex; align-items:center; gap:5px; font:700 9px "JetBrains Mono"; color:#fff;
 background:#E4574C; border-radius:999px; padding:3px 8px; }
 .aiA-rec i{ width:6px; height:6px; border-radius:50%; background:#fff; animation:aiBlink 1s steps(1) infinite; }
 @keyframes aiBlink{ 50%{opacity:.25} }
 .aiA-list{ position:relative; height:calc(100% - 46px); overflow:hidden;
 -webkit-mask:linear-gradient(#000 88%, transparent); mask:linear-gradient(#000 88%, transparent); }
 .aiA-scroll{ animation:aiScroll 9s cubic-bezier(.35,0,.2,1) infinite; }
 @keyframes aiScroll{ 0%{transform:translateY(0)} 40%{transform:translateY(-42%)} 40.01%,100%{transform:translateY(0)} }
 .lrow{ display:flex; align-items:center; gap:10px; padding:9px 13px; border-bottom:1px solid rgba(255,255,255,.05); }
 .lpin{ width:9px; height:9px; border-radius:50%; background:#4D6AFF; flex:none; box-shadow:0 0 0 3px rgba(77,106,255,.18); }
 .ltx b{ display:block; font:600 10.5px Inter; color:#E7E9F1; }
 .ltx i{ display:block; font:400 8.5px Inter; color:#8A87A0; font-style:normal; margin-top:1px; }
 .aiA-scan{ position:absolute; left:0; right:0; top:0; height:2px; background:#8E7BFF;
 box-shadow:0 0 14px 3px rgba(124,92,255,.75); animation:aiScan 2.1s ease-in-out infinite; }
 @keyframes aiScan{ 0%{transform:translateY(6px);opacity:0} 12%{opacity:1} 88%{opacity:1} 100%{transform:translateY(300px);opacity:0} }
 /* Transition */
 .aiT{ opacity:0; display:flex; align-items:center; justify-content:center;
 background:radial-gradient(120% 100% at 50% 45%, #201C2E, #14121C 78%);
 animation:aiTF 9s ease-in-out infinite; }
 @keyframes aiTF{ 0%,38%{opacity:0} 43%,57%{opacity:1} 63%,100%{opacity:0} }
 .aiT-pill{ display:inline-flex; align-items:center; gap:8px; font:700 11.5px Inter; color:#fff;
 background:linear-gradient(90deg,#4D6AFF,#7C5CFF); border-radius:999px; padding:9px 15px;
 box-shadow:0 12px 30px -10px rgba(124,92,255,.9); }
 /* Phase B */
 .aiB{ opacity:0; background:#15121F; animation:aibF 9s ease-in-out infinite; }
 @keyframes aibF{ 0%,58%{opacity:0} 65%,100%{opacity:1} }
 .aiB-top{ position:absolute; top:0; left:0; right:0; z-index:3; display:flex; align-items:center; gap:7px;
 padding:11px 13px 9px; font:700 12px Inter; color:#F3F1F8; background:rgba(18,15,26,.86); border-bottom:1px solid rgba(255,255,255,.08); }
 .aiB-live{ margin-left:auto; display:inline-flex; align-items:center; gap:5px; font:600 9px Inter; color:#4FCF92; }
 .aiB-live::before{ content:""; width:6px; height:6px; border-radius:50%; background:#4FCF92; }
 .aiB-map{ display:block; width:100%; height:100%; }
 .mpin{ opacity:0; transform-box:fill-box; transform-origin:center bottom;
 animation:aiDrop 9s cubic-bezier(.2,.9,.3,1.4) infinite; animation-delay:var(--d); }
 @keyframes aiDrop{ 0%,61%{opacity:0; transform:translateY(-12px) scale(.4)}
 66%{opacity:1; transform:translateY(1px) scale(1.1)} 70%,100%{opacity:1; transform:translateY(0) scale(1)} }
 .aiB-toast{ position:absolute; left:12px; right:12px; bottom:12px; z-index:3;
 display:flex; align-items:center; justify-content:center; gap:8px;
 font:700 12px Inter; color:#F3F1F8; background:rgba(28,24,42,.94); border:1px solid rgba(255,255,255,.12); border-radius:11px; padding:11px 8px;
 box-shadow:0 12px 26px -14px rgba(27,24,19,.5); opacity:0; animation:aiToast 9s ease infinite; }
 .aiB-toast svg{ width:15px; height:15px; }
 @keyframes aiToast{ 0%,84%{opacity:0; transform:translateY(8px)} 92%,100%{opacity:1; transform:translateY(0)} }
 @media (prefers-reduced-motion:reduce){
 .aiA,.aiT{ opacity:0 !important } .aiB{ opacity:1 !important }
 .mpin{ opacity:1 !important; transform:none !important; animation:none !important }
 .aiA-scroll,.aiA-scan,.aiA-rec i,.aiB-toast{ animation:none !important }
 .aiB-toast{ opacity:1 !important }
 }
 /* ============ ADVANTAGES (dark) ============ */
 .adv{ background:var(--bg-dark); color:#F5F4F7; padding:88px 0; margin-top:40px; }
 .adv h2{ font-size:40px; line-height:1.1; font-weight:700; letter-spacing:-.02em; margin:0 0 12px; color:#fff; max-width:640px; }
 .adv .sub{ font-size:17px; color:var(--muted-dark); margin:0 0 46px; max-width:520px; }
 .adv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
 .acard{ background:var(--card-dark); border:1px solid var(--border-dark); border-radius:18px; padding:28px 26px; }
 .aicon{ width:46px; height:46px; border-radius:12px; background:rgba(124,92,255,.14);
 border:1px solid rgba(124,92,255,.30); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
 .aicon svg{ width:22px; height:22px; stroke:#B7A6FF; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
 .acard h3{ font-size:20px; font-weight:700; margin:0 0 10px; color:#F5F4F7; letter-spacing:-.01em; }
 .acard p{ font-size:15px; line-height:1.6; color:var(--muted-dark); margin:0; }
 /* ============ CTA ============ */
 .cta{ padding:90px 0; }
 .cta-card{ position:relative; overflow:hidden; background:var(--bg-dark); border-radius:28px;
 padding:64px 40px; text-align:center; }
 .cta-card::before{ content:""; position:absolute; top:-120px; right:-80px; width:360px; height:360px; border-radius:50%;
 background:radial-gradient(circle at center, rgba(77,106,255,.28), transparent 88%); }
 .cta-card h2{ position:relative; z-index:1; font-size:44px; line-height:1.06; font-weight:700; letter-spacing:-.02em;
 color:#fff; margin:0 0 32px; }
 .cta-card h2 b{ color:var(--blue); }
 .cta-card p{ position:relative; z-index:1; font-size:18px; color:var(--muted-dark); margin:0 auto 30px; max-width:480px; }
 .cta-card .btn-blue{ position:relative; z-index:1; background:var(--blue); color:#fff; border:0; }
 .cta-card .btn-blue:hover{ background:#3a56e6; }
 .cta-stores{ position:relative; z-index:1; display:flex; justify-content:center; align-items:center; gap:14px; flex-wrap:wrap; }
 .cta-stores .store-badge--apple{ height:46px !important; }
 .cta-stores .store-badge--gplay{ height:60px !important; }
 /* ============ responsive ============ */
 @media (max-width:900px){
 .hero-grid, .feat, .feat.rev .feat-txt{ grid-template-columns:1fr; }
 .feat.rev .feat-txt{ order:0; }
 .hero-visual{ order:-1; }
 .feat-vis{ display:flex; justify-content:center; }
 .adv-grid{ grid-template-columns:1fr; }
 .hero h1{ font-size:44px; } .cta-card h2{ font-size:32px; } .adv h2{ font-size:30px; }
 }

Laskar by Kardinal
 Cheaper.
**Not cheap.**
 Laskar, the only route optimization app on the market that pairs a rock-bottom price with premium features.

 [https://play.google.com/store/apps/details?id=ai.kardinal.laskar](https://play.google.com/store/apps/details?id=ai.kardinal.laskar)

 [https://apps.apple.com/fr/app/laskar-optimiseur-de-tourn%C3%A9es/id6748139132](https://apps.apple.com/fr/app/laskar-optimiseur-de-tourn%C3%A9es/id6748139132)

 01 · Import
 Add your addresses and set your parameters in the blink of an eye
 Import all your addresses at once, however suits you best:

 Dictate your addresses by voice
 Type them in
 Scan your parcel labels
 Copy and paste them straight into the app
 Set stop durations, time windows and start / end points

 New · AI detection
 Add addresses **with AI**
 Send us a screenshot or a video of your address list from your delivery app (Amazon, DPD, Chronopost, Gofo…) and our AI reads every address, then imports them into Laskar automatically. Zero typing, zero copy-pasting.

 AmazonDPDChronopostGofo+ all apps

 Your delivery app**0:07
 **12 Rue Victor Hugo***Parcel 2380 · 09:30***8 Av. de la Gare***Parcel 1147 · 09:45***24 Rue des Lilas***Parcel 6621 · 10:10***5 Place Bellecour***Parcel 3095 · 10:30***17 Bd Voltaire***Parcel 8842 · 11:00***3 Rue Pasteur***Parcel 4410 · 11:20***40 Av. Jean Jaurès***Parcel 2073 · 11:50***9 Rue du Moulin***Parcel 5568 · 12:15***12 Rue Victor Hugo***Parcel 2380 · 09:30***8 Av. de la Gare***Parcel 1147 · 09:45***24 Rue des Lilas***Parcel 6621 · 10:10***5 Place Bellecour***Parcel 3095 · 10:30*

 Importing into Laskar…

 Laskarlive

 120 addresses imported into Laskar

 02 · Optimize
 Optimize in 20 seconds max and fine-tune your route
 Laskar computes your optimal route, factoring in traffic and customer time windows. But you stay in control: adjust the route, change the times or reorder your stops at any moment to stay flexible and efficient.

 Zone by hand by drawing on the map
 Reorder addresses by hand
 Reverse the route
 Adjust times and breaks

 03 · Navigate
 Navigate to your destination
 The route is ready: all that's left is to drive.

 Direct navigation with Google Maps, Waze or your favorite GPS
 Follow your optimized route
 Keep to your delivery schedule
 Reach your customers faster, with total peace of mind

 04 · Notify
 Notify your customers on approach
 Keep the end customer and the back office informed in real time. Laskar automatically alerts your recipients when the driver is approaching, and shares the route with your team.

 SMS or call to the customer on approach
 Tracking link sent to the end customer
 Route shared with the manager for all-day tracking

 Why pay more for the same thing?

 An unbeatable price
 The cheapest app on the market for advanced features.

 Free trial, no commitment
 Try it free for 7 days and only pay if you love it!

 Kardinal quality
 Ultra-high-performance optimization powered by Kardinal's optimization engine, the specialist in the field.

 Want to try Laskar
**for free?**

 [https://play.google.com/store/apps/details?id=ai.kardinal.laskar](https://play.google.com/store/apps/details?id=ai.kardinal.laskar)

 [https://apps.apple.com/fr/app/laskar-optimiseur-de-tourn%C3%A9es/id6748139132](https://apps.apple.com/fr/app/laskar-optimiseur-de-tourn%C3%A9es/id6748139132)
