/** * Life and Lineage — lineage subdomain landing page (task 08). * * Migrates the legacy `src/routes/marketing/life-and-lineage.tsx` page to the * `lineage.freno.me` root (vercel.json rewrites `lineage.freno.me/*` → * `/lineage/*`), and enriches it with feature highlights + a game-art strip. * * Site-awareness: * - `` reads `useSite()` → the lineage `titleSuffix` * (` | Life and Lineage`) + canonical `https://lineage.freno.me/` are * derived automatically (task 02); we pass only the base title here. * - The Google Play badge links to the **public browser path** `/downloads` * (subdomain-relative), which vercel rewrites to `/lineage/downloads` * (task 11). The App Store link is an absolute external URL, unchanged. * - `SimpleParallax` reuses the existing Cave parallax background — a * fitting "dark fantasy" ambience — and continues to work under the * subdomain because assets are served from the shared `/public` root. * * Auth: this page performs NO auth — Lineage's mobile JWT (`LINEAGE_JWT_SECRET`) * is for the mobile app's API calls, not the web landing page. */ import { A } from "@solidjs/router"; import { PageHead } from "~/components/PageHead"; import SimpleParallax from "~/components/SimpleParallax"; import DownloadOnAppStoreDark from "~/components/icons/DownloadOnAppStoreDark"; import { For } from "solid-js"; import { APP_STORE_URL, DOWNLOADS_HREF, APP_ICON_SRC, GOOGLE_PLAY_BADGE_SRC, SCREENSHOT_ASSETS, PAGE_META, FEATURES } from "~/routes/lineage/landing-content"; export default function LineageLandingPage() { return ( <>
{/* Hero */} Life and Lineage App Icon

Life and Lineage

A dark fantasy adventure

{/* Store badges — App Store (external) + Google Play → /downloads */} {/* Feature highlights */}

Why players return

{(feature) => (

{feature.title}

{feature.description}

)}
{/* Game art / screenshots strip */}

glimpses of the world

Life and Lineage home Life and Lineage shops
{/* Secondary CTA → per-subdomain downloads page */}

Prefer a direct download?{" "} Visit the downloads page .

); }