前端(Vite + React)、API/worker(Fastify + BullMQ)、api-contracts 契约包、 迁移脚本、测试与自托管 docker-compose 示例。 开源准备:运维脚本与机器信息已拆到私有仓库;公司名、备案号、隐私邮箱改读 publicCompliance.local.json(仓库只保留占位模板);站点地址与客服二维码改为 VITE_ 环境变量;fixtures 中的真实用户标识已匿名化;三个 package.json 标注 Apache-2.0。 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
36 lines
6.1 KiB
HTML
36 lines
6.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>__LINDYSON_PAGE_TITLE__</title>
|
|
<meta name="description" content="__LINDYSON_PAGE_DESCRIPTION__" />
|
|
<meta name="robots" content="index, follow" />
|
|
<link rel="canonical" href="__LINDYSON_CANONICAL_URL__" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:locale" content="zh_CN" />
|
|
<meta property="og:site_name" content="Lindyson AI" />
|
|
<meta property="og:title" content="__LINDYSON_PAGE_TITLE__" />
|
|
<meta property="og:description" content="__LINDYSON_PAGE_DESCRIPTION__" />
|
|
<meta property="og:url" content="__LINDYSON_CANONICAL_URL__" />
|
|
<meta property="og:image" content="__LINDYSON_SOCIAL_IMAGE_URL__" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:alt" content="Lindyson AI 电影感商品创作演示" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="__LINDYSON_PAGE_TITLE__" />
|
|
<meta name="twitter:description" content="__LINDYSON_PAGE_DESCRIPTION__" />
|
|
<meta name="twitter:image" content="__LINDYSON_SOCIAL_IMAGE_URL__" />
|
|
<script type="application/ld+json">__LINDYSON_STRUCTURED_DATA__</script>
|
|
<link rel="preload" as="image" href="/landing/fashion-campaign.avif" type="image/avif" fetchpriority="high" />
|
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='16' fill='%237c3aed'/%3E%3Cpath d='M34 12 24 31h10l-4 21 15-27H34l5-13z' fill='white'/%3E%3C/svg%3E" />
|
|
<style>
|
|
html,body{min-height:100%;margin:0;background:#050507;color:#f6f3ee;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}#root{min-height:100vh}.landing-static{max-width:1440px;margin:0 auto;padding:0 40px;line-height:1.7}.landing-static header{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.landing-static header a,.landing-static header nav{display:flex;gap:22px;align-items:center;color:#fff;text-decoration:none}.landing-static header span{color:rgba(255,255,255,.42);font-size:11px}.landing-static header nav a{font-size:12px;color:rgba(255,255,255,.62)}.landing-static header nav .landing-static-header-cta{height:40px;min-width:116px;justify-content:center;padding:0 18px;border-radius:12px;background:linear-gradient(90deg,#db2777,#7c3aed);color:#fff;font-size:14px;font-weight:700;box-shadow:0 8px 24px rgba(192,38,211,.22)}.landing-static section{padding:104px 0}.landing-static small{color:#c4b5fd;font-size:10px;font-weight:700;letter-spacing:.3em}.landing-static h1,.landing-static h2,.landing-static h3{letter-spacing:-.04em}.landing-static h1{max-width:760px;margin:18px 0 0;font-size:clamp(54px,7vw,108px);line-height:.93}.landing-static-headline{white-space:nowrap}.landing-static h2{max-width:840px;margin:16px 0 0;font-size:clamp(34px,5vw,64px);line-height:1.04}.landing-static h3{font-size:20px}.landing-static p{max-width:680px;color:rgba(255,255,255,.52)}.landing-static-hero{min-height:calc(100vh - 72px);display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:64px}.landing-static-hero>div>p{font-size:18px}.landing-static-hero picture{display:block;height:min(72vh,720px);overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:28px;box-shadow:0 40px 100px rgba(0,0,0,.5)}.landing-static-hero img{width:100%;height:100%;object-fit:cover}.landing-static-cta{display:inline-flex;margin-top:24px;padding:13px 22px;border-radius:14px;background:linear-gradient(90deg,#ec4899,#7c3aed);color:#fff;text-decoration:none;font-weight:700}.landing-static-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:44px}.landing-static-grid article{padding:24px;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.035)}.landing-static-grid article span{color:#f0abfc;font-size:11px;font-weight:700}.landing-static-capabilities{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-static-center{text-align:center}.landing-static-center h2,.landing-static-center p{margin-left:auto;margin-right:auto}.landing-static-faq details{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.1)}.landing-static-faq summary{cursor:pointer;font-weight:700}.landing-static-final{margin-bottom:88px;padding:72px 32px!important;border:1px solid rgba(255,255,255,.1);border-radius:30px;background:radial-gradient(circle at 50% 0,rgba(217,70,239,.16),transparent 52%),#0d0d13;text-align:center}.landing-static-final h2,.landing-static-final p{margin-left:auto;margin-right:auto}.landing-static footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding:32px 0;border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.38);font-size:12px}.landing-static-footer-links{display:flex;gap:18px}.landing-static-compliance{display:block;text-align:left}.landing-static-compliance p{margin:0}.landing-static footer a{color:rgba(255,255,255,.58)}@media(min-width:768px){.landing-static #landing-capabilities h2{max-width:none;white-space:nowrap}}@media(max-width:900px){.landing-static{padding:0 24px}.landing-static-hero{grid-template-columns:1fr;padding-top:54px}.landing-static-hero picture{height:58vh}.landing-static-grid{grid-template-columns:1fr 1fr}.landing-static-capabilities{grid-template-columns:1fr}}@media(max-width:639px){.landing-static header nav .landing-static-header-cta{height:36px;min-width:100px;padding:0 12px;font-size:13px}}@media(max-width:560px){.landing-static{padding:0 18px}.landing-static header span,.landing-static header nav a:not(:last-child){display:none}.landing-static section{padding:72px 0}.landing-static h1{font-size:50px}.landing-static-hero picture{height:52vh}.landing-static-grid{grid-template-columns:1fr}}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="root">__LINDYSON_LANDING_SNAPSHOT__</div>
|
|
<script type="module" src="/src/landing.tsx"></script>
|
|
</body>
|
|
</html>
|