custom.css 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413
  1. :root {
  2. --vp-c-brand-1: #1d6fd6;
  3. --vp-c-brand-2: #195cb3;
  4. --vp-c-brand-3: #16498f;
  5. --vp-c-brand-soft: rgba(29, 111, 214, 0.12);
  6. --vp-font-family-base: "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;
  7. --vp-font-family-mono: "JetBrains Mono", "SFMono-Regular", monospace;
  8. --doc-ink: #172033;
  9. --doc-muted: #5e6b7d;
  10. --doc-border: rgba(23, 32, 51, 0.12);
  11. --doc-surface: rgba(255, 255, 255, 0.94);
  12. --doc-soft: #f4f7fb;
  13. --doc-accent: #0f8a7a;
  14. --doc-warm: #b77722;
  15. --doc-success: #19785c;
  16. --doc-shadow: 0 20px 54px rgba(23, 32, 51, 0.1);
  17. --doc-hero-image: url("/_images/home-hero-premium.jpg");
  18. }
  19. @supports (background-image: image-set(url("/_images/home-hero-premium.webp") type("image/webp"))) {
  20. :root {
  21. --doc-hero-image: image-set(
  22. url("/_images/home-hero-premium.webp") type("image/webp"),
  23. url("/_images/home-hero-premium.jpg") type("image/jpeg")
  24. );
  25. }
  26. }
  27. .dark {
  28. --doc-ink: #f7fafc;
  29. --doc-muted: #aab6c6;
  30. --doc-border: rgba(226, 232, 240, 0.14);
  31. --doc-surface: rgba(18, 26, 42, 0.9);
  32. --doc-soft: #111827;
  33. --doc-shadow: 0 22px 58px rgba(0, 0, 0, 0.28);
  34. }
  35. body {
  36. background: #f4f7fb;
  37. }
  38. .dark body {
  39. background: #0b1120;
  40. }
  41. .VPApp {
  42. background:
  43. linear-gradient(180deg, rgba(244, 247, 251, 0.98) 0%, rgba(255, 255, 255, 0.98) 44%, #ffffff 100%);
  44. }
  45. .dark .VPApp {
  46. background:
  47. linear-gradient(180deg, rgba(11, 17, 32, 0.98) 0%, rgba(15, 23, 42, 0.98) 44%, #0b1120 100%);
  48. }
  49. .VPNav {
  50. border-bottom: 1px solid var(--doc-border);
  51. box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
  52. }
  53. .VPNavBar .content-body,
  54. .VPNavBar.has-sidebar .content-body {
  55. background: rgba(255, 255, 255, 0.82);
  56. backdrop-filter: saturate(150%) blur(14px);
  57. }
  58. .dark .VPNavBar .content-body,
  59. .dark .VPNavBar.has-sidebar .content-body {
  60. background: rgba(11, 17, 32, 0.78);
  61. }
  62. .VPNavBar .title {
  63. font-weight: 760;
  64. letter-spacing: 0;
  65. }
  66. .VPNavBarMenuLink,
  67. .VPFlyout .button {
  68. border-radius: 8px;
  69. }
  70. .VPNavBarMenuLink:hover,
  71. .VPFlyout .button:hover {
  72. background: var(--vp-c-brand-soft);
  73. }
  74. .VPButton,
  75. .DocSearch-Button {
  76. border-radius: 8px !important;
  77. }
  78. .VPContent {
  79. min-height: calc(100vh - 64px);
  80. }
  81. .VPLocalNav.empty {
  82. display: none;
  83. }
  84. .doc-home {
  85. overflow: hidden;
  86. color: var(--doc-ink);
  87. }
  88. .doc-home a {
  89. text-decoration: none;
  90. }
  91. .doc-home-hero {
  92. position: relative;
  93. display: flex;
  94. align-items: flex-end;
  95. width: calc(100vw - 48px);
  96. max-width: 1360px;
  97. min-height: 620px;
  98. margin: 24px auto 0;
  99. padding: 72px;
  100. border: 1px solid rgba(255, 255, 255, 0.48);
  101. border-radius: 8px;
  102. overflow: hidden;
  103. background-image:
  104. linear-gradient(90deg, rgba(4, 9, 18, 0.95) 0%, rgba(7, 15, 30, 0.84) 42%, rgba(7, 15, 30, 0.32) 74%, rgba(7, 15, 30, 0.08) 100%),
  105. var(--doc-hero-image);
  106. background-size: cover;
  107. background-position: center center;
  108. box-shadow: var(--doc-shadow);
  109. }
  110. .doc-home-hero-inner {
  111. position: relative;
  112. z-index: 1;
  113. max-width: 760px;
  114. }
  115. .doc-home-hero h1 {
  116. margin: 10px 0 18px;
  117. color: #ffffff;
  118. font-size: 76px;
  119. line-height: 0.98;
  120. letter-spacing: 0;
  121. }
  122. .doc-home-hero p {
  123. max-width: 700px;
  124. margin: 0;
  125. color: rgba(255, 255, 255, 0.88);
  126. font-size: 1.12rem;
  127. line-height: 1.9;
  128. }
  129. .doc-eyebrow,
  130. .doc-kicker,
  131. .doc-section-heading span,
  132. .doc-final-band span {
  133. display: inline-flex;
  134. align-items: center;
  135. gap: 8px;
  136. color: var(--vp-c-brand-1);
  137. font-size: 0.78rem;
  138. font-weight: 800;
  139. letter-spacing: 0.12em;
  140. text-transform: uppercase;
  141. }
  142. .doc-home-hero .doc-eyebrow {
  143. color: #9ee7da;
  144. }
  145. .doc-home-actions,
  146. .doc-link-row {
  147. display: flex;
  148. flex-wrap: wrap;
  149. gap: 12px;
  150. margin-top: 28px;
  151. }
  152. .doc-action,
  153. .doc-link-row a {
  154. display: inline-flex;
  155. align-items: center;
  156. justify-content: center;
  157. min-height: 42px;
  158. padding: 0 16px;
  159. border: 1px solid var(--doc-border);
  160. border-radius: 8px;
  161. background: var(--doc-surface);
  162. color: var(--doc-ink);
  163. font-weight: 720;
  164. line-height: 1.25;
  165. text-decoration: none !important;
  166. box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  167. transition:
  168. transform 0.2s ease,
  169. border-color 0.2s ease,
  170. box-shadow 0.2s ease;
  171. }
  172. .doc-action:hover,
  173. .doc-link-row a:hover,
  174. .doc-path-card:hover {
  175. transform: translateY(-2px);
  176. border-color: rgba(29, 111, 214, 0.34);
  177. box-shadow: 0 18px 36px rgba(15, 23, 42, 0.12);
  178. }
  179. .doc-action-primary {
  180. border-color: var(--vp-c-brand-1);
  181. background: var(--vp-c-brand-1);
  182. color: #ffffff;
  183. }
  184. .doc-home-hero .doc-action {
  185. border-color: rgba(255, 255, 255, 0.22);
  186. background: rgba(255, 255, 255, 0.13);
  187. color: #ffffff;
  188. box-shadow: none;
  189. }
  190. .doc-home-hero .doc-action-primary {
  191. border-color: #9ee7da;
  192. background: #9ee7da;
  193. color: #10322f;
  194. }
  195. .doc-home-metrics {
  196. display: grid;
  197. grid-template-columns: repeat(4, minmax(0, 1fr));
  198. gap: 14px;
  199. width: min(1180px, calc(100vw - 48px));
  200. margin: 24px auto 72px;
  201. }
  202. .doc-home-metrics div,
  203. .doc-card,
  204. .doc-path-card,
  205. .doc-showcase-list article {
  206. border: 1px solid var(--doc-border);
  207. border-radius: 8px;
  208. background: var(--doc-surface);
  209. box-shadow: 0 14px 34px rgba(15, 23, 42, 0.07);
  210. }
  211. .doc-home-metrics div {
  212. padding: 22px;
  213. }
  214. .doc-home-metrics strong {
  215. display: block;
  216. color: var(--doc-ink);
  217. font-size: 1.7rem;
  218. line-height: 1.1;
  219. }
  220. .doc-home-metrics div:nth-child(1) strong,
  221. .doc-home-metrics div:nth-child(4) strong {
  222. color: var(--vp-c-brand-1);
  223. }
  224. .doc-home-metrics div:nth-child(2) strong {
  225. color: var(--doc-accent);
  226. }
  227. .doc-home-metrics div:nth-child(3) strong {
  228. color: var(--doc-warm);
  229. }
  230. .doc-home-metrics span {
  231. display: block;
  232. margin-top: 8px;
  233. color: var(--doc-muted);
  234. font-size: 0.94rem;
  235. }
  236. .doc-section {
  237. width: min(1180px, calc(100vw - 48px));
  238. margin: 76px auto;
  239. }
  240. .doc-section-muted {
  241. width: calc(100vw - 48px);
  242. max-width: 1360px;
  243. padding: 66px min(48px, 4vw);
  244. border: 1px solid var(--doc-border);
  245. border-radius: 8px;
  246. background:
  247. linear-gradient(135deg, rgba(29, 111, 214, 0.08), rgba(15, 138, 122, 0.07)),
  248. var(--doc-surface);
  249. }
  250. .doc-section-heading {
  251. max-width: 760px;
  252. margin-bottom: 26px;
  253. }
  254. .doc-section-heading h2,
  255. .doc-final-band h2 {
  256. margin: 10px 0 12px;
  257. color: var(--doc-ink);
  258. font-size: 40px;
  259. line-height: 1.12;
  260. letter-spacing: 0;
  261. text-wrap: balance;
  262. }
  263. .doc-section-heading p,
  264. .doc-final-band p {
  265. margin: 0;
  266. color: var(--doc-muted);
  267. font-size: 1.05rem;
  268. line-height: 1.85;
  269. }
  270. .doc-showcase {
  271. display: grid;
  272. grid-template-columns: minmax(0, 1.42fr) minmax(280px, 0.58fr);
  273. gap: 24px;
  274. align-items: stretch;
  275. }
  276. .doc-showcase figure,
  277. .doc-shot {
  278. margin: 0;
  279. padding: 14px;
  280. border: 1px solid var(--doc-border);
  281. border-radius: 8px;
  282. background: var(--doc-surface);
  283. box-shadow: var(--doc-shadow);
  284. }
  285. .doc-showcase img,
  286. .doc-shot img {
  287. display: block;
  288. width: 100%;
  289. border-radius: 6px;
  290. }
  291. .doc-showcase figcaption,
  292. .doc-caption {
  293. margin: 12px 6px 4px;
  294. color: var(--doc-muted);
  295. font-size: 0.92rem;
  296. line-height: 1.7;
  297. }
  298. .doc-showcase-list {
  299. display: grid;
  300. gap: 14px;
  301. }
  302. .doc-showcase-list article {
  303. padding: 20px;
  304. border-left: 4px solid var(--doc-accent);
  305. }
  306. .doc-showcase-list span {
  307. color: var(--doc-accent);
  308. font-size: 0.82rem;
  309. font-weight: 800;
  310. }
  311. .doc-showcase-list h3,
  312. .doc-card h3,
  313. .doc-card h4,
  314. .doc-path-card strong {
  315. margin: 8px 0 8px;
  316. color: var(--doc-ink);
  317. font-size: 1.08rem;
  318. line-height: 1.35;
  319. }
  320. .doc-showcase-list p,
  321. .doc-card p,
  322. .doc-path-card span {
  323. margin: 0;
  324. color: var(--doc-muted);
  325. line-height: 1.75;
  326. }
  327. .doc-demo-embed {
  328. width: calc(100vw - 48px);
  329. max-width: 1360px;
  330. padding: 0;
  331. }
  332. .doc-demo-frame-shell {
  333. overflow: hidden;
  334. border: 1px solid var(--doc-border);
  335. border-radius: 8px;
  336. background: #0f172a;
  337. box-shadow: var(--doc-shadow);
  338. }
  339. .doc-demo-frame-bar {
  340. display: grid;
  341. grid-template-columns: 10px 10px 10px minmax(0, 1fr) auto;
  342. align-items: center;
  343. gap: 8px;
  344. height: 42px;
  345. padding: 0 14px;
  346. border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  347. color: rgba(255, 255, 255, 0.76);
  348. }
  349. .doc-demo-frame-bar span {
  350. width: 10px;
  351. height: 10px;
  352. border-radius: 50%;
  353. }
  354. .doc-demo-frame-bar span:nth-child(1) {
  355. background: #f97373;
  356. }
  357. .doc-demo-frame-bar span:nth-child(2) {
  358. background: #f6c35c;
  359. }
  360. .doc-demo-frame-bar span:nth-child(3) {
  361. background: #3bd68f;
  362. }
  363. .doc-demo-frame-bar strong {
  364. min-width: 0;
  365. overflow: hidden;
  366. font-size: 0.86rem;
  367. text-overflow: ellipsis;
  368. white-space: nowrap;
  369. }
  370. .doc-demo-frame-bar a {
  371. color: #9ee7da;
  372. font-weight: 760;
  373. }
  374. .doc-demo-frame-shell iframe {
  375. display: block;
  376. width: 100%;
  377. height: min(78vh, 780px);
  378. min-height: 560px;
  379. border: 0;
  380. background: #f4f7fb;
  381. }
  382. .doc-grid,
  383. .doc-value-grid,
  384. .doc-path-grid {
  385. display: grid;
  386. gap: 16px;
  387. margin: 24px 0;
  388. }
  389. .doc-grid,
  390. .doc-path-grid {
  391. grid-template-columns: repeat(2, minmax(0, 1fr));
  392. }
  393. .doc-value-grid {
  394. grid-template-columns: repeat(3, minmax(0, 1fr));
  395. }
  396. .doc-card {
  397. padding: 22px;
  398. }
  399. .doc-card h3,
  400. .doc-card h4 {
  401. margin-top: 0;
  402. }
  403. .doc-card p:last-child,
  404. .doc-card ul:last-child {
  405. margin-bottom: 0;
  406. }
  407. .doc-path-card {
  408. display: block;
  409. padding: 24px;
  410. color: inherit;
  411. transition:
  412. transform 0.2s ease,
  413. border-color 0.2s ease,
  414. box-shadow 0.2s ease;
  415. }
  416. .doc-path-card strong {
  417. display: block;
  418. margin-top: 0;
  419. font-size: 1.18rem;
  420. }
  421. .doc-path-card span {
  422. display: block;
  423. }
  424. .doc-final-band {
  425. display: flex;
  426. align-items: center;
  427. justify-content: space-between;
  428. gap: 28px;
  429. width: min(1180px, calc(100vw - 48px));
  430. margin: 80px auto 88px;
  431. padding: 34px;
  432. border: 1px solid rgba(29, 111, 214, 0.22);
  433. border-radius: 8px;
  434. background:
  435. linear-gradient(135deg, rgba(29, 111, 214, 0.1), rgba(15, 138, 122, 0.08)),
  436. var(--doc-surface);
  437. box-shadow: var(--doc-shadow);
  438. }
  439. .doc-final-band > div {
  440. max-width: 780px;
  441. }
  442. .doc-final-band h2 {
  443. font-size: 34px;
  444. }
  445. .vp-doc {
  446. color: var(--doc-ink);
  447. }
  448. .vp-doc a {
  449. font-weight: 650;
  450. }
  451. .vp-doc h1,
  452. .vp-doc h2,
  453. .vp-doc h3 {
  454. letter-spacing: 0;
  455. }
  456. .vp-doc h1 {
  457. font-size: 2.6rem;
  458. line-height: 1.16;
  459. }
  460. .vp-doc h2 {
  461. margin-top: 48px;
  462. border-top: 1px solid var(--doc-border);
  463. padding-top: 32px;
  464. font-size: 1.8rem;
  465. }
  466. .vp-doc h3 {
  467. font-size: 1.22rem;
  468. }
  469. .doc-kicker {
  470. margin: 20px 0 8px;
  471. }
  472. .doc-lead {
  473. margin: 0 0 24px;
  474. color: var(--doc-muted);
  475. font-size: 1.08rem;
  476. line-height: 1.9;
  477. }
  478. .doc-callout,
  479. .doc-note {
  480. margin: 24px 0;
  481. padding: 18px 20px;
  482. border: 1px solid var(--doc-border);
  483. border-radius: 8px;
  484. }
  485. .doc-callout {
  486. background:
  487. linear-gradient(135deg, rgba(29, 111, 214, 0.09), rgba(15, 138, 122, 0.07)),
  488. var(--doc-surface);
  489. }
  490. .doc-note {
  491. background: var(--doc-soft);
  492. }
  493. .vp-doc table {
  494. display: table;
  495. width: 100%;
  496. overflow: hidden;
  497. border-radius: 8px;
  498. border: 1px solid var(--doc-border);
  499. box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
  500. }
  501. .vp-doc tr:nth-child(2n) {
  502. background: rgba(29, 111, 214, 0.04);
  503. }
  504. .vp-doc th {
  505. background: rgba(29, 111, 214, 0.08);
  506. color: var(--doc-ink);
  507. }
  508. .vp-doc div[class*="language-"] {
  509. border: 1px solid var(--doc-border);
  510. border-radius: 8px;
  511. box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08);
  512. }
  513. .vp-doc img {
  514. border-radius: 8px;
  515. }
  516. @media (max-width: 960px) {
  517. .doc-home-hero {
  518. width: calc(100vw - 32px);
  519. min-height: 560px;
  520. margin-top: 16px;
  521. padding: 44px 28px;
  522. background-image:
  523. linear-gradient(180deg, rgba(4, 9, 18, 0.97) 0%, rgba(7, 15, 30, 0.9) 58%, rgba(7, 15, 30, 0.72) 100%),
  524. var(--doc-hero-image);
  525. background-position: 62% center;
  526. }
  527. .doc-home-hero h1 {
  528. font-size: 52px;
  529. }
  530. .doc-home-metrics,
  531. .doc-section,
  532. .doc-demo-embed,
  533. .doc-final-band {
  534. width: calc(100vw - 32px);
  535. }
  536. .doc-home-metrics,
  537. .doc-value-grid,
  538. .doc-grid,
  539. .doc-path-grid {
  540. grid-template-columns: 1fr;
  541. }
  542. .doc-showcase {
  543. grid-template-columns: 1fr;
  544. }
  545. .doc-section-muted {
  546. width: calc(100vw - 32px);
  547. padding: 44px 18px;
  548. }
  549. .doc-final-band {
  550. align-items: flex-start;
  551. flex-direction: column;
  552. padding: 26px;
  553. }
  554. .vp-doc h1 {
  555. font-size: 2.15rem;
  556. }
  557. .doc-section-heading h2 {
  558. font-size: 34px;
  559. }
  560. .doc-demo-frame-shell iframe {
  561. height: 72vh;
  562. min-height: 480px;
  563. }
  564. .doc-final-band h2 {
  565. font-size: 30px;
  566. }
  567. }
  568. @media (max-width: 640px) {
  569. .doc-home-hero {
  570. min-height: 520px;
  571. padding: 34px 22px;
  572. }
  573. .doc-home-hero h1 {
  574. font-size: 42px;
  575. }
  576. .doc-home-hero p,
  577. .doc-section-heading p,
  578. .doc-final-band p,
  579. .doc-lead {
  580. font-size: 1rem;
  581. }
  582. .doc-action,
  583. .doc-link-row a {
  584. width: 100%;
  585. }
  586. .doc-section {
  587. margin: 56px auto;
  588. }
  589. .doc-demo-frame-bar {
  590. grid-template-columns: 10px 10px 10px minmax(0, 1fr);
  591. height: auto;
  592. padding: 10px 14px 12px;
  593. }
  594. .doc-demo-frame-bar a {
  595. grid-column: 1 / -1;
  596. padding-bottom: 10px;
  597. }
  598. .doc-demo-frame-shell iframe {
  599. height: 68vh;
  600. min-height: 420px;
  601. }
  602. }
  603. .doc-home-v2 {
  604. --doc-v2-ink: #101928;
  605. --doc-v2-muted: #607089;
  606. --doc-v2-line: rgba(17, 24, 39, 0.1);
  607. --doc-v2-panel: rgba(255, 255, 255, 0.92);
  608. --doc-v2-panel-strong: #ffffff;
  609. --doc-v2-green: #10a875;
  610. --doc-v2-teal: #14b8c6;
  611. --doc-v2-blue: #2563eb;
  612. --doc-v2-amber: #c07818;
  613. --doc-v2-coral: #d85d4c;
  614. overflow: visible;
  615. padding-bottom: 24px;
  616. color: var(--doc-v2-ink);
  617. background:
  618. linear-gradient(180deg, rgba(240, 253, 249, 0.72), rgba(248, 250, 252, 0.92) 38%, rgba(255, 255, 255, 0.98));
  619. }
  620. .dark .doc-home-v2 {
  621. --doc-v2-ink: #f8fafc;
  622. --doc-v2-muted: #b2bfd1;
  623. --doc-v2-line: rgba(226, 232, 240, 0.14);
  624. --doc-v2-panel: rgba(15, 23, 42, 0.78);
  625. --doc-v2-panel-strong: rgba(15, 23, 42, 0.95);
  626. background:
  627. linear-gradient(180deg, rgba(8, 47, 73, 0.38), rgba(15, 23, 42, 0.98) 44%, #0b1120);
  628. }
  629. .doc-home-v2 .doc-eyebrow,
  630. .doc-home-v2 .doc-section-heading span,
  631. .doc-home-v2 .doc-final-band span {
  632. letter-spacing: 0;
  633. }
  634. .doc-home-anchor {
  635. position: sticky;
  636. z-index: 20;
  637. top: 64px;
  638. display: flex;
  639. gap: 8px;
  640. width: min(1180px, calc(100vw - 48px));
  641. margin: 18px auto 0;
  642. padding: 8px;
  643. overflow-x: auto;
  644. border: 1px solid var(--doc-v2-line);
  645. border-radius: 8px;
  646. background: rgba(255, 255, 255, 0.82);
  647. box-shadow:
  648. 0 1px 0 rgba(255, 255, 255, 0.7) inset,
  649. 0 18px 46px rgba(15, 23, 42, 0.08);
  650. backdrop-filter: blur(16px) saturate(150%);
  651. scrollbar-width: none;
  652. }
  653. .dark .doc-home-anchor {
  654. background: rgba(15, 23, 42, 0.76);
  655. }
  656. .doc-home-anchor::-webkit-scrollbar {
  657. display: none;
  658. }
  659. .doc-home-anchor a {
  660. flex: 0 0 auto;
  661. padding: 9px 14px;
  662. border-radius: 7px;
  663. color: var(--doc-v2-muted);
  664. font-size: 0.92rem;
  665. font-weight: 760;
  666. line-height: 1.2;
  667. transition:
  668. color 0.2s ease,
  669. background 0.2s ease;
  670. }
  671. .doc-home-anchor a:hover {
  672. background: rgba(20, 184, 166, 0.1);
  673. color: var(--doc-v2-green);
  674. }
  675. .doc-start,
  676. .doc-demo-stage,
  677. .doc-format-panel {
  678. scroll-margin-top: 120px;
  679. }
  680. .doc-start {
  681. display: grid;
  682. grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.68fr);
  683. gap: 24px;
  684. width: min(1180px, calc(100vw - 48px));
  685. margin: 22px auto 72px;
  686. padding: 34px;
  687. border: 1px solid var(--doc-v2-line);
  688. border-radius: 8px;
  689. background:
  690. linear-gradient(135deg, rgba(16, 168, 117, 0.12), rgba(37, 99, 235, 0.08) 48%, rgba(192, 120, 24, 0.08)),
  691. var(--doc-v2-panel-strong);
  692. box-shadow: 0 28px 78px rgba(15, 23, 42, 0.11);
  693. }
  694. .doc-product-hero {
  695. grid-template-columns: minmax(0, 1.04fr) minmax(380px, 0.76fr);
  696. margin-bottom: 60px;
  697. background:
  698. linear-gradient(135deg, rgba(16, 168, 117, 0.14), rgba(37, 99, 235, 0.1) 46%, rgba(192, 120, 24, 0.08)),
  699. linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(248, 250, 252, 0.92)),
  700. var(--doc-v2-panel-strong);
  701. }
  702. .dark .doc-product-hero {
  703. background:
  704. linear-gradient(135deg, rgba(16, 168, 117, 0.16), rgba(37, 99, 235, 0.14) 52%, rgba(216, 93, 76, 0.08)),
  705. linear-gradient(180deg, rgba(15, 23, 42, 0.9), rgba(2, 6, 23, 0.86)),
  706. var(--doc-v2-panel-strong);
  707. }
  708. .doc-start-copy {
  709. min-width: 0;
  710. padding: 12px 4px;
  711. }
  712. .doc-start-copy h1 {
  713. max-width: 760px;
  714. margin: 14px 0 18px;
  715. color: var(--doc-v2-ink);
  716. font-size: 3.72rem;
  717. line-height: 1.08;
  718. letter-spacing: 0;
  719. text-wrap: balance;
  720. }
  721. .doc-start-copy p {
  722. max-width: 700px;
  723. margin: 0;
  724. color: var(--doc-v2-muted);
  725. font-size: 1.08rem;
  726. line-height: 1.9;
  727. }
  728. .doc-start-stats {
  729. display: grid;
  730. grid-template-columns: repeat(4, minmax(0, 1fr));
  731. gap: 10px;
  732. margin-top: 26px;
  733. }
  734. .doc-start-stats div {
  735. padding: 16px;
  736. border: 1px solid var(--doc-v2-line);
  737. border-radius: 8px;
  738. background: rgba(255, 255, 255, 0.66);
  739. }
  740. .dark .doc-start-stats div {
  741. background: rgba(15, 23, 42, 0.58);
  742. }
  743. .doc-start-stats strong {
  744. display: block;
  745. color: var(--doc-v2-green);
  746. font-size: 1.45rem;
  747. line-height: 1.1;
  748. }
  749. .doc-start-stats div:nth-child(2) strong {
  750. color: var(--doc-v2-blue);
  751. }
  752. .doc-start-stats div:nth-child(3) strong {
  753. color: var(--doc-v2-amber);
  754. }
  755. .doc-start-stats div:nth-child(4) strong {
  756. color: var(--doc-v2-coral);
  757. }
  758. .doc-start-stats span {
  759. display: block;
  760. margin-top: 6px;
  761. color: var(--doc-v2-muted);
  762. font-size: 0.9rem;
  763. }
  764. .doc-install-panel {
  765. overflow: hidden;
  766. border: 1px solid rgba(15, 23, 42, 0.12);
  767. border-radius: 8px;
  768. background: #0b1220;
  769. box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2);
  770. }
  771. .doc-capability-panel {
  772. overflow: hidden;
  773. align-self: stretch;
  774. border: 1px solid rgba(15, 23, 42, 0.12);
  775. border-radius: 8px;
  776. background:
  777. linear-gradient(180deg, rgba(15, 23, 42, 0.96), rgba(8, 47, 73, 0.95));
  778. box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
  779. }
  780. .doc-preview-board {
  781. display: grid;
  782. gap: 14px;
  783. padding: 18px;
  784. }
  785. .doc-preview-main {
  786. min-height: 230px;
  787. padding: 20px;
  788. border: 1px solid rgba(148, 163, 184, 0.18);
  789. border-radius: 8px;
  790. background:
  791. linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(226, 232, 240, 0.9));
  792. color: #102033;
  793. }
  794. .doc-preview-main span,
  795. .doc-preview-main p {
  796. display: block;
  797. color: #526277;
  798. }
  799. .doc-preview-main span {
  800. font-size: 0.78rem;
  801. font-weight: 820;
  802. letter-spacing: 0.08em;
  803. text-transform: uppercase;
  804. }
  805. .doc-preview-main strong {
  806. display: block;
  807. margin-top: 16px;
  808. color: #102033;
  809. font-size: 2rem;
  810. line-height: 1.1;
  811. }
  812. .doc-preview-main p {
  813. max-width: 420px;
  814. margin: 14px 0 0;
  815. line-height: 1.72;
  816. }
  817. .doc-preview-pills {
  818. display: flex;
  819. flex-wrap: wrap;
  820. gap: 8px;
  821. margin-top: 28px;
  822. }
  823. .doc-preview-pills b {
  824. padding: 7px 10px;
  825. border-radius: 7px;
  826. background: rgba(16, 168, 117, 0.11);
  827. color: #08765a;
  828. font-size: 0.82rem;
  829. }
  830. .doc-preview-rail {
  831. display: grid;
  832. grid-template-columns: repeat(2, minmax(0, 1fr));
  833. gap: 10px;
  834. }
  835. .doc-preview-rail span {
  836. padding: 13px 14px;
  837. border: 1px solid rgba(148, 163, 184, 0.14);
  838. border-radius: 8px;
  839. background: rgba(15, 23, 42, 0.52);
  840. color: rgba(226, 232, 240, 0.78);
  841. font-size: 0.9rem;
  842. font-weight: 760;
  843. }
  844. .doc-preview-rail .is-active {
  845. border-color: rgba(20, 184, 166, 0.42);
  846. background: rgba(20, 184, 166, 0.16);
  847. color: #a7f3d0;
  848. }
  849. .doc-platform-points {
  850. display: grid;
  851. gap: 10px;
  852. padding: 0 18px 18px;
  853. }
  854. .doc-platform-points div {
  855. padding: 14px 16px;
  856. border: 1px solid rgba(148, 163, 184, 0.14);
  857. border-radius: 8px;
  858. background: rgba(2, 6, 23, 0.28);
  859. }
  860. .doc-platform-points strong,
  861. .doc-platform-points span {
  862. display: block;
  863. }
  864. .doc-platform-points strong {
  865. color: #ffffff;
  866. font-size: 0.96rem;
  867. }
  868. .doc-platform-points span {
  869. margin-top: 4px;
  870. color: rgba(226, 232, 240, 0.78);
  871. font-size: 0.88rem;
  872. line-height: 1.6;
  873. }
  874. .doc-capability-section {
  875. margin-top: 60px;
  876. }
  877. .doc-feature-grid {
  878. display: grid;
  879. grid-template-columns: repeat(4, minmax(0, 1fr));
  880. gap: 14px;
  881. }
  882. .doc-feature-grid .doc-card {
  883. position: relative;
  884. min-height: 260px;
  885. overflow: hidden;
  886. }
  887. .doc-feature-grid .doc-card::before {
  888. content: "";
  889. position: absolute;
  890. inset: 0 0 auto;
  891. height: 4px;
  892. background: var(--doc-v2-green);
  893. }
  894. .doc-feature-grid .doc-card:nth-child(2)::before {
  895. background: var(--doc-v2-blue);
  896. }
  897. .doc-feature-grid .doc-card:nth-child(3)::before {
  898. background: var(--doc-v2-amber);
  899. }
  900. .doc-feature-grid .doc-card:nth-child(4)::before {
  901. background: var(--doc-v2-coral);
  902. }
  903. .doc-feature-grid .doc-card strong {
  904. display: inline-flex;
  905. margin-bottom: 14px;
  906. padding: 6px 10px;
  907. border-radius: 7px;
  908. background: rgba(16, 168, 117, 0.1);
  909. color: var(--doc-v2-green);
  910. font-size: 0.78rem;
  911. }
  912. .doc-feature-grid .doc-card:nth-child(2) strong {
  913. background: rgba(37, 99, 235, 0.1);
  914. color: var(--doc-v2-blue);
  915. }
  916. .doc-feature-grid .doc-card:nth-child(3) strong {
  917. background: rgba(192, 120, 24, 0.12);
  918. color: var(--doc-v2-amber);
  919. }
  920. .doc-feature-grid .doc-card:nth-child(4) strong {
  921. background: rgba(216, 93, 76, 0.12);
  922. color: var(--doc-v2-coral);
  923. }
  924. .doc-panel-top {
  925. display: grid;
  926. grid-template-columns: 10px 10px 10px minmax(0, 1fr);
  927. align-items: center;
  928. gap: 8px;
  929. height: 42px;
  930. padding: 0 14px;
  931. border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  932. color: rgba(226, 232, 240, 0.7);
  933. }
  934. .doc-panel-top span {
  935. width: 10px;
  936. height: 10px;
  937. border-radius: 50%;
  938. }
  939. .doc-panel-top span:nth-child(1) {
  940. background: #ef6a6a;
  941. }
  942. .doc-panel-top span:nth-child(2) {
  943. background: #f5bd4f;
  944. }
  945. .doc-panel-top span:nth-child(3) {
  946. background: #34d399;
  947. }
  948. .doc-panel-top strong {
  949. min-width: 0;
  950. overflow: hidden;
  951. font-size: 0.78rem;
  952. text-align: right;
  953. text-overflow: ellipsis;
  954. white-space: nowrap;
  955. }
  956. .doc-install-block {
  957. padding: 18px 18px 0;
  958. }
  959. .doc-install-block span {
  960. display: block;
  961. margin-bottom: 8px;
  962. color: #8ddfd0;
  963. font-size: 0.84rem;
  964. font-weight: 780;
  965. }
  966. .doc-install-block pre {
  967. margin: 0;
  968. padding: 15px 16px;
  969. overflow-x: auto;
  970. border: 1px solid rgba(148, 163, 184, 0.16);
  971. border-radius: 8px;
  972. background: rgba(2, 6, 23, 0.74);
  973. }
  974. .doc-install-block code {
  975. color: #e5edf7;
  976. font-size: 0.92rem;
  977. line-height: 1.65;
  978. }
  979. .doc-install-note {
  980. margin: 18px;
  981. padding: 16px;
  982. border: 1px solid rgba(20, 184, 166, 0.28);
  983. border-radius: 8px;
  984. background: rgba(20, 184, 166, 0.1);
  985. color: #d7fff7;
  986. }
  987. .doc-install-note strong,
  988. .doc-install-note span {
  989. display: block;
  990. }
  991. .doc-install-note strong {
  992. margin-bottom: 6px;
  993. }
  994. .doc-install-note span {
  995. color: rgba(226, 232, 240, 0.84);
  996. line-height: 1.7;
  997. }
  998. .doc-install-note code {
  999. color: #ffffff;
  1000. }
  1001. .doc-demo-stage {
  1002. width: min(1180px, calc(100vw - 48px));
  1003. margin: 72px auto;
  1004. }
  1005. .doc-demo-layout {
  1006. display: grid;
  1007. grid-template-columns: minmax(0, 1.28fr) minmax(280px, 0.72fr);
  1008. gap: 20px;
  1009. align-items: stretch;
  1010. }
  1011. .doc-demo-visual {
  1012. margin: 0;
  1013. padding: 12px;
  1014. border: 1px solid var(--doc-v2-line);
  1015. border-radius: 8px;
  1016. background: var(--doc-v2-panel);
  1017. box-shadow: 0 22px 60px rgba(15, 23, 42, 0.1);
  1018. }
  1019. .doc-demo-visual img {
  1020. display: block;
  1021. width: 100%;
  1022. border-radius: 7px;
  1023. }
  1024. .doc-demo-visual figcaption {
  1025. margin: 12px 6px 4px;
  1026. color: var(--doc-v2-muted);
  1027. font-size: 0.92rem;
  1028. line-height: 1.7;
  1029. }
  1030. .doc-demo-actions {
  1031. display: grid;
  1032. gap: 12px;
  1033. }
  1034. .doc-home-v2 .doc-section-muted {
  1035. background:
  1036. linear-gradient(135deg, rgba(16, 168, 117, 0.09), rgba(37, 99, 235, 0.07) 52%, rgba(216, 93, 76, 0.06)),
  1037. var(--doc-v2-panel);
  1038. }
  1039. .doc-preset-grid {
  1040. display: grid;
  1041. grid-template-columns: repeat(4, minmax(0, 1fr));
  1042. gap: 14px;
  1043. }
  1044. .doc-preset-card {
  1045. position: relative;
  1046. overflow: hidden;
  1047. }
  1048. .doc-preset-card::before {
  1049. content: "";
  1050. position: absolute;
  1051. inset: 0 0 auto;
  1052. height: 4px;
  1053. background: var(--doc-v2-green);
  1054. }
  1055. .doc-preset-card:nth-child(2)::before {
  1056. background: var(--doc-v2-blue);
  1057. }
  1058. .doc-preset-card:nth-child(3)::before {
  1059. background: var(--doc-v2-amber);
  1060. }
  1061. .doc-preset-card:nth-child(4)::before {
  1062. background: var(--doc-v2-coral);
  1063. }
  1064. .doc-preset-card strong {
  1065. display: inline-flex;
  1066. margin-bottom: 10px;
  1067. padding: 5px 9px;
  1068. border-radius: 7px;
  1069. background: rgba(16, 168, 117, 0.1);
  1070. color: var(--doc-v2-green);
  1071. font-size: 0.78rem;
  1072. }
  1073. .doc-preset-card:nth-child(2) strong {
  1074. background: rgba(37, 99, 235, 0.1);
  1075. color: var(--doc-v2-blue);
  1076. }
  1077. .doc-preset-card:nth-child(3) strong {
  1078. background: rgba(192, 120, 24, 0.12);
  1079. color: var(--doc-v2-amber);
  1080. }
  1081. .doc-preset-card:nth-child(4) strong {
  1082. background: rgba(216, 93, 76, 0.12);
  1083. color: var(--doc-v2-coral);
  1084. }
  1085. .doc-callout-compact {
  1086. margin-bottom: 0;
  1087. }
  1088. .doc-ecosystem-grid {
  1089. grid-template-columns: repeat(3, minmax(0, 1fr));
  1090. }
  1091. .doc-format-panel {
  1092. padding: 36px;
  1093. border: 1px solid var(--doc-v2-line);
  1094. border-radius: 8px;
  1095. background: var(--doc-v2-panel);
  1096. box-shadow: 0 22px 58px rgba(15, 23, 42, 0.08);
  1097. }
  1098. .doc-format-grid {
  1099. display: grid;
  1100. grid-template-columns: repeat(3, minmax(0, 1fr));
  1101. gap: 12px;
  1102. }
  1103. .doc-format-grid div {
  1104. min-height: 112px;
  1105. padding: 18px;
  1106. border: 1px solid var(--doc-v2-line);
  1107. border-radius: 8px;
  1108. background:
  1109. linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(255, 255, 255, 0.48));
  1110. }
  1111. .dark .doc-format-grid div {
  1112. background:
  1113. linear-gradient(180deg, rgba(30, 41, 59, 0.74), rgba(15, 23, 42, 0.56));
  1114. }
  1115. .doc-format-grid strong {
  1116. display: block;
  1117. color: var(--doc-v2-ink);
  1118. font-size: 1rem;
  1119. line-height: 1.2;
  1120. }
  1121. .doc-format-grid span {
  1122. display: block;
  1123. margin-top: 10px;
  1124. color: var(--doc-v2-muted);
  1125. line-height: 1.65;
  1126. }
  1127. .doc-final-band-v2 {
  1128. align-items: flex-start;
  1129. }
  1130. .doc-final-actions {
  1131. display: flex;
  1132. flex: 0 0 auto;
  1133. flex-direction: column;
  1134. gap: 10px;
  1135. min-width: 180px;
  1136. }
  1137. @media (max-width: 1100px) {
  1138. .doc-start {
  1139. grid-template-columns: 1fr;
  1140. }
  1141. .doc-install-panel {
  1142. max-width: none;
  1143. }
  1144. .doc-capability-panel {
  1145. max-width: none;
  1146. }
  1147. .doc-preset-grid,
  1148. .doc-ecosystem-grid,
  1149. .doc-format-grid,
  1150. .doc-feature-grid {
  1151. grid-template-columns: repeat(2, minmax(0, 1fr));
  1152. }
  1153. }
  1154. @media (max-width: 960px) {
  1155. .doc-home-anchor {
  1156. top: 56px;
  1157. width: calc(100vw - 32px);
  1158. }
  1159. .doc-start,
  1160. .doc-demo-stage,
  1161. .doc-format-panel {
  1162. width: calc(100vw - 32px);
  1163. }
  1164. .doc-start {
  1165. margin-top: 16px;
  1166. padding: 26px;
  1167. }
  1168. .doc-start-copy h1 {
  1169. font-size: 2.85rem;
  1170. }
  1171. .doc-demo-layout {
  1172. grid-template-columns: 1fr;
  1173. }
  1174. }
  1175. @media (max-width: 720px) {
  1176. .doc-start,
  1177. .doc-format-panel {
  1178. padding: 20px;
  1179. }
  1180. .doc-start-copy h1 {
  1181. font-size: 2.28rem;
  1182. }
  1183. .doc-start-stats,
  1184. .doc-preset-grid,
  1185. .doc-ecosystem-grid,
  1186. .doc-format-grid,
  1187. .doc-feature-grid,
  1188. .doc-preview-rail {
  1189. grid-template-columns: 1fr;
  1190. }
  1191. .doc-final-actions {
  1192. width: 100%;
  1193. }
  1194. .doc-home-v2 .doc-final-actions .doc-action {
  1195. width: 100%;
  1196. }
  1197. }