From 50cd8977193c4b99793ef53a12f83e81d6219cb0 Mon Sep 17 00:00:00 2001 From: "LocalAI [bot]" <139863280+localai-bot@users.noreply.github.com> Date: Sat, 11 Jul 2026 09:33:41 +0200 Subject: [PATCH] docs: refresh LocalAI homepage (#10780) * docs: refresh LocalAI homepage Reframe the homepage around LocalAI's modular multimodal runtime, native inference engines, deployment range, and built-in platform capabilities. Remove the outdated video in favor of current product visuals and clearer paths into the documentation. Assisted-by: Codex:gpt-5 * docs: give homepage a full-width canvas Let the product homepage opt out of Relearn's persistent sidebar and duplicate title while preserving the documentation shell on interior pages. Tighten the responsive bounds for narrow screens. Assisted-by: Codex:gpt-5 * docs: fit homepage to the Relearn content flow Remove the full-width shell exception and use a single-column homepage inside the standard documentation layout. This avoids competing scroll containers and the compressed split hero. Assisted-by: Codex:gpt-5 * docs: hide homepage scroll rail Preserve Relearn's content scrolling while removing the visible scrollbar beside the landing-page hero. Assisted-by: Codex:gpt-5 * docs: contain homepage sections within docs column Prevent landing-page headings, figures, and section grids from widening Relearn's content pane or exposing overflow rails. Assisted-by: Codex:gpt-5 * docs: remove nested homepage scrollbars Wrap the quick-start command within its column and suppress component-level scrollbar tracks across the landing page. Assisted-by: Codex:gpt-5 * docs: remove outdated gallery screenshot Drop the stale Model Gallery image from the homepage until a current product visual is available. Assisted-by: Codex:gpt-5 * docs: fix homepage architecture link Point the homepage CTA at the generated reference/architecture route. Assisted-by: Codex:gpt-5 --------- Co-authored-by: Ettore Di Giacinto --- docs/content/_index.md | 127 ++++++++++++++++++------------- docs/data/landing.yaml | 57 ++++++-------- docs/static/css/custom.css | 100 ++++++++++++++++++++++++ docs/static/css/localai-home.css | 4 + 4 files changed, 204 insertions(+), 84 deletions(-) create mode 100644 docs/static/css/custom.css create mode 100644 docs/static/css/localai-home.css diff --git a/docs/content/_index.md b/docs/content/_index.md index d6410ffe1..fd3f37e97 100644 --- a/docs/content/_index.md +++ b/docs/content/_index.md @@ -1,63 +1,86 @@ +++ title = "LocalAI" -description = "The free, OpenAI and Anthropic alternative. A small, composable AI stack: run any model locally and install only what you use." +description = "The open, modular AI runtime. Run text, vision, voice, image, video, agents, and more on hardware you control." type = "home" +++ -**The free, OpenAI and Anthropic alternative. A small, composable AI stack.** - Run powerful language models, autonomous agents, and document intelligence **locally** on your hardware. A lean core that pulls model backends on demand, so you install only what you use. +
+
+
+

Open source · MIT licensed

+

One runtime.
Every kind of AI.
Your hardware.

+

LocalAI runs text, vision, speech, sound, images, video, embeddings, reranking, and autonomous agents behind one modular stack—from a CPU laptop to a distributed GPU cluster.

+ +
60+ backendsCPU to clusterOpenAI · Anthropic · Ollama · ElevenLabs APIs
+
+
-**No cloud, no limits, no compromise.** +
+

The runtime, not just the endpoint.

Bring the model. Choose the engine. Keep control.

+ +
-{{% notice tip %}} -**[⭐ Star us on GitHub](https://github.com/mudler/LocalAI)** - 40k+ stars and growing! +
+
+

A small core, not a giant bundle.

+

Backends arrive when the model needs them.

+

LocalAI keeps the core lean. Each backend wraps a best-in-class engine—llama.cpp, vLLM, SGLang, MLX, whisper.cpp, diffusion engines, and many more—as an isolated service pulled on demand.

+
  • Install, update, or remove engines independently.
  • Mix CPU, NVIDIA, AMD, Intel, Apple Silicon, Vulkan, and Jetson.
  • Build your own backend in any language through an open gRPC contract.
+ Explore the architecture → +
+
LocalAI's small core connected to independent on-demand model backends
+
-**Drop-in replacement for OpenAI API** - modular suite of tools that work seamlessly together or independently. +
+
+

We integrate the best engines. We build new ones, too.

+

Inference work that moves the open ecosystem forward.

+

The LocalAI team develops native C, C++, Rust, and GGML engines when the available stack is too heavy, too closed, or simply does not exist yet.

+ See the engines we maintain ↗ +
+
+
Speechparakeet.cppStreaming multilingual ASR
+
Voicevibevoice.cppLong-form TTS and ASR
+
Identityvoice-detect.cppSpeaker recognition and analysis
+
Visionface-detect.cppRecognition and anti-spoofing
+
Perceptionlocate-anything.cppOpen-vocabulary detection
+
Privacyprivacy-filter.cppNative PII detection
+
3Dfree-splatter.cppPose-free reconstruction
+
Quantizationapex-quantMoE-aware GGUF recipes
+
+
-Start with **[LocalAI](https://localai.io)**'s OpenAI-compatible API, extend with **[LocalAGI](https://github.com/mudler/LocalAGI)**'s autonomous agents, and enhance with **[LocalRecall](https://github.com/mudler/LocalRecall)**'s semantic search - all running locally on your hardware. +
+

Start on one machine. Keep going.

The same runtime from workstation to private AI fabric.

+
+
01Laptop

Run useful models locally, including CPU-only setups.

+
02Team server

Add authentication, API keys, roles, quotas, and usage visibility.

+
03Distributed cluster

Route across workers, fit models across devices, and scale with demand.

+
+
-**Open Source** MIT Licensed. -{{% /notice %}} +
+

More than inference

A complete local AI control plane.

+
+
Agents built in

Create agents with MCP tools, skills, memory, RAG, citations, and streamed execution from the UI or API.

+
Realtime by design

Build interruptible voice experiences with WebRTC, streaming STT, LLM output, and TTS.

+
Privacy you can enforce

Keep data on your infrastructure and add PII analysis, redaction, policy middleware, and audit visibility.

+
Models under your control

Discover capabilities, import models, fine-tune, quantize, route, and monitor them in one place.

+
+
-
- -## Why Choose LocalAI? - -**OpenAI API Compatible** - Run AI models locally with our modular ecosystem. From language models to autonomous agents and semantic search, build your complete AI stack without the cloud. - -### Key Features - -- **LLM Inferencing**: LocalAI is a free, **Open Source** OpenAI alternative. Run **LLMs**, generate **images**, **audio** and more **locally** with consumer grade hardware. -- **Agentic-first**: Extend LocalAI with LocalAGI, an autonomous AI agent platform that runs locally, no coding required. Build and deploy autonomous agents with ease. -- **Memory and Knowledge base**: Extend LocalAI with LocalRecall, A local rest api for semantic search and memory management. Perfect for AI applications. -- **OpenAI Compatible**: Drop-in replacement for OpenAI API. Compatible with existing applications and libraries. -- **No GPU Required**: Run on consumer grade hardware. No need for expensive GPUs or cloud services. -- **Multiple Models**: Support for various model families including LLMs, image generation, and audio models. Supports multiple backends for inferencing. -- **Privacy Focused**: Keep your data local. No data leaves your machine, ensuring complete privacy. -- **Easy Setup**: Simple installation and configuration. Get started in minutes with Binaries installation, Docker, Podman, Kubernetes or local installation. -- **Community Driven**: Active community support and regular updates. Contribute and help shape the future of LocalAI. - -## Quick Start - -**Docker is the recommended installation method** for most users: - -```bash -docker run -p 8080:8080 --name local-ai -ti localai/localai:latest -``` - -For complete installation instructions, see the [Installation guide](/installation/). - -## Get Started - -1. **[Install LocalAI](/installation/)** - Choose your installation method (Docker recommended) -2. **[Quickstart Guide](/getting-started/quickstart/)** - Get started quickly after installation -3. **[Install and Run Models](/getting-started/models/)** - Learn how to work with AI models -4. **[Try It Out](/getting-started/try-it-out/)** - Explore examples and use cases - -## Learn More - -- [Explore available models](https://models.localai.io) -- [Model compatibility](/model-compatibility/) -- [Try out examples](https://github.com/mudler/LocalAI-examples) -- [Join the community](https://discord.gg/uJAeKSAGDy) -- [Check the LocalAI Github repository](https://github.com/mudler/LocalAI) -- [Check the LocalAGI Github repository](https://github.com/mudler/LocalAGI) +
+

One command to begin

Run your first local AI stack.

+
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest
+ +
+
diff --git a/docs/data/landing.yaml b/docs/data/landing.yaml index fd5150d2f..d8f55f378 100644 --- a/docs/data/landing.yaml +++ b/docs/data/landing.yaml @@ -13,7 +13,7 @@ hero: mobile: "gradient-mobile.webp" badge: - text: "⭐ 33.3k+ stars on GitHub!" + text: "Open source · MIT licensed" color: primary pill: false soft: true @@ -26,9 +26,9 @@ hero: title: "" subtitle: | - **The free, OpenAI, Anthropic alternative. Your All-in-One Complete AI Stack** - Run powerful language models, autonomous agents, and document intelligence **locally** on your hardware. - - **No cloud, no limits, no compromise.** + **One runtime. Every kind of AI. Your hardware.** + + Run text, vision, speech, sound, images, video, embeddings, reranking, and autonomous agents behind one modular stack—from a CPU laptop to a distributed GPU cluster. image: path: "images" @@ -47,11 +47,7 @@ hero: url: "https://github.com/mudler/LocalAI" info: | - **Drop-in replacement for OpenAI API** - modular suite of tools that work seamlessly together or independently. - - Start with **[LocalAI](https://localai.io)**'s OpenAI-compatible API, extend with **[LocalAGI](https://github.com/mudler/LocalAGI)**'s autonomous agents, and enhance with **[LocalRecall](https://github.com/mudler/LocalRecall)**'s semantic search - all running locally on your hardware. - - **Open Source** MIT Licensed. + A small core pulls isolated model backends on demand, so you install only what you use. Build with OpenAI, Anthropic, Ollama, ElevenLabs, and Open Responses compatible APIs—or work directly through LocalAI's UI, agents, MCP tools, and distributed runtime. # Feature Grid featureGrid: @@ -59,75 +55,72 @@ featureGrid: weight: 20 template: feature grid - title: Why choose LocalAI? + title: One runtime, across the whole AI stack subtitle: | - **OpenAI API Compatible** - Run AI models locally with our modular ecosystem. From language models to autonomous agents and semantic search, build your complete AI stack without the cloud. + API compatibility is the easy entry point. LocalAI also gives you multimodal inference, agents, privacy controls, model operations, and distributed execution on infrastructure you control. items: - - title: LLM Inferencing + - title: Any model, any modality icon: memory_alt - description: LocalAI is a free, **Open Source** OpenAI alternative. Run **LLMs**, generate **images**, **audio** and more **locally** with consumer grade hardware. + description: Run language, vision, speech, sound, image, video, embedding, reranking, detection, and biometric models through one runtime. ctaLink: text: learn more url: /basics/getting_started/ - - title: Agentic-first + - title: Agents and MCP built in icon: smart_toy description: | - Extend LocalAI with LocalAGI, an autonomous AI agent platform that runs locally, no coding required. - Build and deploy autonomous agents with ease. Interact with REST APIs or use the WebUI. + Create autonomous agents with tools, skills, RAG, memory, citations, MCP servers, and interactive MCP Apps from the UI or API. ctaLink: text: learn more url: https://github.com/mudler/LocalAGI - - title: Memory and Knowledge base + - title: Realtime voice and audio icon: psychology description: - Extend LocalAI with LocalRecall, A local rest api for semantic search and memory management. Perfect for AI applications. + Build interruptible WebRTC experiences with streaming transcription, language-model output, speech, diarization, and tool calling. ctaLink: text: learn more url: https://github.com/mudler/LocalRecall - - title: OpenAI Compatible + - title: Drop-in compatible APIs icon: api - description: Drop-in replacement for OpenAI API. Compatible with existing applications and libraries. + description: Use OpenAI, Anthropic, Ollama, ElevenLabs, and Open Responses clients across the modular backend ecosystem. ctaLink: text: learn more url: /basics/getting_started/ - - title: No GPU Required + - title: Laptop to distributed cluster icon: memory - description: Run on consumer grade hardware. No need for expensive GPUs or cloud services. + description: Start CPU-only, accelerate on common GPUs, or scale across workers with smart routing, sharding, and federation. ctaLink: text: learn more url: /basics/getting_started/ - - title: Multiple Models + - title: Modular backend gallery icon: hub description: | - Support for various model families including LLMs, image generation, and audio models. - Supports multiple backends for inferencing, including vLLM, llama.cpp, and more. - You can switch between them as needed and install them from the Web interface or the CLI. + Pull isolated OCI backends only when a model needs them. Install, upgrade, remove, or build your own engine without rebuilding the core. ctaLink: text: learn more url: /model-compatibility - - title: Privacy Focused + - title: Privacy you can enforce icon: security - description: Keep your data local. No data leaves your machine, ensuring complete privacy. + description: Keep data on your infrastructure and add PII analysis, redaction, policy middleware, authentication, roles, quotas, and audit visibility. ctaLink: text: learn more url: /basics/container/ - - title: Easy Setup + - title: Model operations included icon: settings - description: Simple installation and configuration. Get started in minutes with Binaries installation, Docker, Podman, Kubernetes or local installation. + description: Discover capabilities, import and route models, fine-tune, quantize, monitor usage, and manage the runtime through the UI or CLI. ctaLink: text: learn more url: /basics/getting_started/ - - title: Community Driven + - title: Engines built by LocalAI icon: groups - description: Active community support and regular updates. Contribute and help shape the future of LocalAI. + description: The project also develops native inference engines for speech, vision, biometrics, privacy, 3D reconstruction, and quantization. ctaLink: text: learn more url: https://github.com/mudler/LocalAI diff --git a/docs/static/css/custom.css b/docs/static/css/custom.css new file mode 100644 index 000000000..e2b3a4cfb --- /dev/null +++ b/docs/static/css/custom.css @@ -0,0 +1,100 @@ +@import url("./localai-home.css"); + +/* The homepage deliberately fits Relearn's documentation content column. */ +#R-body-inner.home article.home > h1#localai { + display: none; +} + +#R-body-inner.home > .flex-block-wrapper { + max-width: 960px; +} + +/* Relearn scrolls the content pane; keep that behavior without a rail beside the hero. */ +#R-body-inner.home { + overflow-x: clip; + scrollbar-width: none; +} + +#R-body-inner.home::-webkit-scrollbar { + display: none; +} + +.lai-home, +.lai-home > section, +.lai-home header, +.lai-home figure, +.lai-home [class*="__copy"] { + box-sizing: border-box; + min-width: 0; + max-width: 100%; +} + +.lai-home h1, +.lai-home h2, +.lai-home h3, +.lai-home p { + overflow-wrap: anywhere; +} + +.lai-home img { + max-width: 100%; +} + +.lai-home * { + scrollbar-width: none; +} + +.lai-home *::-webkit-scrollbar { + display: none; +} + +.lai-start pre { + overflow: visible !important; + white-space: pre-wrap; + overflow-wrap: anywhere; + word-break: break-word; +} + +.lai-hero { + grid-template-columns: minmax(0, 1fr) !important; + min-height: auto; + padding-block: clamp(3rem, 6vw, 5rem); +} + +.lai-hero__copy { + max-width: 48rem; +} + +.lai-hero h1 { + max-width: 12ch; + font-size: clamp(3rem, 5.5vw, 4.65rem); + text-align: left; +} + +.lai-hero__lede { + max-width: 43rem; +} + +.lai-product-shot { + width: 100%; + max-width: 54rem; + transform: none; +} + +@media (max-width: 47.99rem) { + .lai-home, + .lai-home > section, + .lai-hero, + .lai-hero__copy, + .lai-product-shot { + box-sizing: border-box; + width: 100%; + min-width: 0; + max-width: 100%; + } + + .lai-hero h1 { + max-width: 10ch; + font-size: clamp(2.4rem, 11vw, 3.5rem); + } +} diff --git a/docs/static/css/localai-home.css b/docs/static/css/localai-home.css new file mode 100644 index 000000000..83b41c787 --- /dev/null +++ b/docs/static/css/localai-home.css @@ -0,0 +1,4 @@ +.lai-home{--lai-bg:#0d1117;--lai-surface:#131a23;--lai-surface-2:#192330;--lai-line:#29384a;--lai-ink:#edf4fc;--lai-muted:#9aabc0;--lai-blue:#4f8cff;--lai-green:#56d6a4;--lai-amber:#f1b95d;max-width:1180px;margin:0 auto;color:var(--lai-ink)}.lai-home *{box-sizing:border-box}.lai-home h1,.lai-home h2{color:var(--lai-ink);letter-spacing:-.04em;line-height:.96;text-wrap:balance}.lai-home h2{font-size:clamp(2.2rem,5vw,4.4rem)}.lai-home p{color:var(--lai-muted);text-wrap:pretty}.lai-home a{text-decoration:none}.lai-hero{display:grid;min-height:78vh;align-items:center;gap:clamp(2rem,6vw,5.5rem);padding:clamp(4rem,10vw,8rem) 0}.lai-signal{display:flex;align-items:center;gap:.5rem;margin:0 0 1.1rem!important;font-size:.73rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.lai-signal span{width:.5rem;height:.5rem;border-radius:50%;background:var(--lai-green);box-shadow:0 0 0 .25rem color-mix(in srgb,var(--lai-green) 15%,transparent)}.lai-hero h1{margin:0 0 1.4rem;font-size:clamp(3.2rem,7vw,5.8rem)}.lai-hero h1 strong{color:var(--lai-blue);font-weight:760}.lai-hero__lede{max-width:42rem;margin:0!important;font-size:clamp(1.03rem,1.5vw,1.25rem);line-height:1.65}.lai-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.8rem}.lai-button{display:inline-flex;min-height:3.1rem;align-items:center;gap:.75rem;padding:.7rem 1rem;border:1px solid var(--lai-blue);border-radius:7px;background:var(--lai-blue);color:white!important;font-weight:800;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s ease}.lai-button:hover{background:#70a2ff;transform:translateY(-2px)}.lai-link{color:var(--lai-ink)!important;font-weight:750;text-decoration:underline!important;text-underline-offset:.25rem}.lai-proof{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin-top:1.6rem}.lai-proof span{display:flex;align-items:center;gap:.35rem;color:var(--lai-muted);font-size:.68rem;font-weight:750}.lai-proof span::before{width:.32rem;height:.32rem;border-radius:50%;background:var(--lai-green);content:""}.lai-product-shot{overflow:hidden;margin:0;border:1px solid var(--lai-line);border-radius:12px;background:var(--lai-surface);transform:rotate(1deg)}.lai-product-shot img{display:block;width:100%;height:auto}.lai-product-shot figcaption{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.75rem .9rem;border-top:1px solid var(--lai-line);color:var(--lai-muted);font-size:.64rem}.lai-product-shot figcaption span{display:flex;align-items:center;gap:.35rem}.lai-product-shot figcaption i{width:.42rem;height:.42rem;border-radius:50%;background:var(--lai-green)} +.lai-breadth,.lai-scale,.lai-platform,.lai-start{padding:clamp(5rem,10vw,8rem) 0;border-top:1px solid var(--lai-line)}.lai-breadth header,.lai-scale header{display:grid;gap:.7rem;margin-bottom:2.5rem}.lai-breadth header p,.lai-scale header p,.lai-architecture__copy>p:first-child,.lai-engines__intro>p:first-child,.lai-platform>div:first-child>p,.lai-start>div>p{margin:0!important;color:var(--lai-green);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.lai-breadth h2,.lai-scale h2,.lai-platform h2,.lai-start h2{max-width:16ch;margin:0}.lai-lanes{display:grid;border-top:1px solid var(--lai-line)}.lai-lanes a{display:grid;grid-template-columns:minmax(6rem,.45fr) minmax(0,1.55fr) auto;align-items:center;gap:1rem;padding:1.1rem .2rem;border-bottom:1px solid var(--lai-line);color:var(--lai-ink)!important;transition:padding .18s ease,background .18s ease}.lai-lanes a:hover{padding-inline:.8rem;background:var(--lai-surface)}.lai-lanes span{color:var(--lai-blue);font-size:.73rem;font-weight:800;text-transform:uppercase}.lai-lanes b{font-size:clamp(.9rem,1.6vw,1.15rem)}.lai-lanes em{color:var(--lai-muted);font-size:.66rem;font-style:normal}.lai-architecture{display:grid;gap:clamp(2.5rem,7vw,6rem);align-items:center;padding:clamp(5rem,11vw,9rem) 0;border-top:1px solid var(--lai-line)}.lai-architecture__copy h2,.lai-engines__intro h2{max-width:14ch;margin:.7rem 0 1.2rem;font-size:clamp(2.2rem,5vw,4.4rem)}.lai-architecture__copy>p:not(:first-child),.lai-engines__intro>p:not(:first-child){max-width:43rem;line-height:1.65}.lai-architecture ul{display:grid;gap:.55rem;margin:1.4rem 0;padding:0;list-style:none}.lai-architecture li{display:flex;gap:.5rem;color:var(--lai-muted)}.lai-architecture li::before{color:var(--lai-green);content:"✓"}.lai-architecture__copy>a,.lai-engines__intro>a{color:var(--lai-blue)!important;font-weight:800}.lai-architecture figure{margin:0;padding:1rem;border:1px solid var(--lai-line);border-radius:10px;background:var(--lai-surface)}.lai-architecture figure img{display:block;width:100%} +.lai-engines{display:grid;gap:clamp(2.5rem,7vw,6rem);padding:clamp(5rem,11vw,9rem) 0;border-top:1px solid var(--lai-line);background:linear-gradient(90deg,transparent,var(--lai-surface),transparent)}.lai-engine-reel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--lai-line);background:var(--lai-line)}.lai-engine-reel>div{display:grid;min-height:7.3rem;align-content:center;gap:.15rem;padding:1rem;background:var(--lai-bg)}.lai-engine-reel span{color:var(--lai-green);font-size:.62rem;font-weight:800;text-transform:uppercase}.lai-engine-reel b{font-family:monospace;font-size:.88rem}.lai-engine-reel small{color:var(--lai-muted);font-size:.65rem}.lai-scale__path{display:grid;gap:1px;border:1px solid var(--lai-line);background:var(--lai-line)}.lai-scale__path>div{min-height:12rem;padding:1.25rem;background:var(--lai-surface)}.lai-scale__path span{display:block;margin-bottom:2.4rem;color:var(--lai-blue);font-family:monospace;font-size:.7rem}.lai-scale__path b{font-size:1.2rem}.lai-scale__path p{margin:.45rem 0 0!important;font-size:.84rem}.lai-platform{display:grid;gap:3rem}.lai-platform__list{border-top:1px solid var(--lai-line)}.lai-platform article{display:grid;grid-template-columns:minmax(9rem,.6fr) minmax(0,1.4fr);gap:1rem;padding:1.15rem 0;border-bottom:1px solid var(--lai-line)}.lai-platform article b{color:var(--lai-ink);font-size:1rem}.lai-platform article p{margin:0!important}.lai-start{display:grid;gap:2rem}.lai-start pre{overflow:auto;margin:0!important;padding:1.2rem!important;border:1px solid var(--lai-line);border-radius:8px;background:#080b0f!important}.lai-start code{color:var(--lai-green)!important}.lai-start__links{display:flex;flex-wrap:wrap;gap:.6rem}.lai-start__links a{padding:.5rem .65rem;border:1px solid var(--lai-line);border-radius:5px;color:var(--lai-ink)!important;font-size:.72rem;font-weight:750}.lai-start__links a:hover{border-color:var(--lai-blue)} +@media(min-width:48rem){.lai-hero{grid-template-columns:minmax(22rem,.9fr) minmax(24rem,1.1fr)}.lai-breadth header,.lai-scale header{grid-template-columns:1fr 1.3fr;align-items:end}.lai-architecture{grid-template-columns:minmax(22rem,.9fr) minmax(24rem,1.1fr)}.lai-engines{grid-template-columns:minmax(22rem,.9fr) minmax(25rem,1.1fr)}.lai-engine-reel{grid-template-columns:repeat(2,minmax(0,1fr))}.lai-scale__path{grid-template-columns:repeat(3,1fr)}.lai-platform{grid-template-columns:.75fr 1.25fr}.lai-start{grid-template-columns:.75fr 1.25fr}.lai-start__links{grid-column:2}}@media(max-width:47.99rem){.lai-home{padding-inline:.2rem}.lai-lanes a{grid-template-columns:1fr auto}.lai-lanes b{grid-column:1/3}.lai-product-shot{transform:none}.lai-platform article{grid-template-columns:1fr}.lai-start__links{gap:.4rem}}@media(prefers-reduced-motion:reduce){.lai-home *{scroll-behavior:auto!important;transition-duration:.01ms!important}.lai-product-shot{transform:none}}