index.css 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251
  1. ::selection {
  2. background: var(--color-background-interactive);
  3. color: var(--color-text-strong);
  4. @media (prefers-color-scheme: dark) {
  5. background: var(--color-background-interactive);
  6. color: var(--color-text-inverted);
  7. }
  8. }
  9. [data-page="opencode"] {
  10. --color-background: hsl(0, 20%, 99%);
  11. --color-background-weak: hsl(0, 8%, 97%);
  12. --color-background-weak-hover: hsl(0, 8%, 94%);
  13. --color-background-strong: hsl(0, 5%, 12%);
  14. --color-background-strong-hover: hsl(0, 5%, 18%);
  15. --color-background-interactive: hsl(62, 84%, 88%);
  16. --color-background-interactive-weaker: hsl(64, 74%, 95%);
  17. --color-surface-raised-base: hsla(0, 100%, 3%, 0.01);
  18. --color-surface-raised-base-active: hsla(0, 100%, 17%, 0.06);
  19. --color-text: hsl(0, 1%, 39%);
  20. --color-text-weak: hsl(0, 1%, 60%);
  21. --color-text-weaker: hsl(30, 2%, 81%);
  22. --color-text-strong: hsl(0, 5%, 12%);
  23. --color-text-inverted: hsl(0, 20%, 99%);
  24. --color-border: hsl(30, 2%, 81%);
  25. --color-border-weak: hsla(0, 100%, 3%, 0.12);
  26. --color-icon: hsl(0, 1%, 55%);
  27. }
  28. body {
  29. background: var(--color-background);
  30. }
  31. [data-page="opencode"] {
  32. @media (prefers-color-scheme: dark) {
  33. --color-background: hsl(0, 9%, 7%);
  34. --color-background-weak: hsl(0, 6%, 10%);
  35. --color-background-weak-hover: hsl(0, 6%, 15%);
  36. --color-background-strong: hsl(0, 15%, 94%);
  37. --color-background-strong-hover: hsl(0, 15%, 97%);
  38. --color-background-interactive: hsl(62, 100%, 90%);
  39. --color-background-interactive-weaker: hsl(60, 20%, 8%);
  40. --color-text: hsl(0, 4%, 71%);
  41. --color-text-weak: hsl(0, 2%, 49%);
  42. --color-text-weaker: hsl(0, 3%, 28%);
  43. --color-text-strong: hsl(0, 15%, 94%);
  44. --color-text-inverted: hsl(0, 9%, 7%);
  45. --color-border: hsl(0, 3%, 28%);
  46. --color-border-weak: hsl(0, 4%, 23%);
  47. --color-icon: hsl(10, 3%, 43%);
  48. }
  49. }
  50. @supports (background: -webkit-named-image(i)) {
  51. [data-page="opencode"] {
  52. border-top: 1px solid var(--color-border-weak);
  53. }
  54. }
  55. [data-slot="br"] {
  56. display: block;
  57. @media (max-width: 60rem) {
  58. display: none;
  59. }
  60. }
  61. [data-page="opencode"] {
  62. background: var(--color-background);
  63. --padding: 5rem;
  64. --vertical-padding: 4rem;
  65. --heading-font-size: 1.375rem;
  66. @media (max-width: 60rem) {
  67. --padding: 1.5rem;
  68. --vertical-padding: 3rem;
  69. }
  70. display: flex;
  71. gap: var(--vertical-padding);
  72. flex-direction: column;
  73. font-family: var(--font-mono);
  74. color: var(--color-text);
  75. padding-bottom: 5rem;
  76. a {
  77. color: var(--color-text-strong);
  78. text-decoration: underline;
  79. text-underline-offset: var(--space-1);
  80. text-decoration-thickness: 1px;
  81. }
  82. p {
  83. line-height: 200%;
  84. @media (max-width: 60rem) {
  85. line-height: 180%;
  86. }
  87. }
  88. @media (max-width: 60rem) {
  89. font-size: 15px;
  90. }
  91. [data-component="growth-stats"] {
  92. margin-top: 48px;
  93. margin-left: 40px;
  94. display: flex;
  95. gap: 64px !important;
  96. @media (max-width: 60rem) {
  97. gap: 56px !important;
  98. }
  99. @media (max-width: 50rem) {
  100. gap: 48px !important;
  101. }
  102. @media (max-width: 40rem) {
  103. display: none !important;
  104. }
  105. [data-component="growth-stat"] {
  106. display: flex;
  107. flex-direction: column;
  108. gap: 24px;
  109. text-align: left;
  110. width: 100%;
  111. span {
  112. display: flex;
  113. align-items: center;
  114. justify-content: left;
  115. width: 100%;
  116. gap: 10px;
  117. font-size: 14px;
  118. strong {
  119. color: var(--color-text-strong);
  120. font-weight: 500;
  121. }
  122. figure {
  123. font-size: 14px;
  124. color: var(--color-text-weak);
  125. padding: 0;
  126. margin: 0;
  127. @media (max-width: 70rem) {
  128. display: none;
  129. }
  130. }
  131. }
  132. [data-component="stat-illustration"] {
  133. width: 100%;
  134. height: 100%;
  135. display: block;
  136. svg {
  137. margin: 0;
  138. width: auto;
  139. height: auto;
  140. display: block;
  141. }
  142. }
  143. }
  144. }
  145. input:-webkit-autofill,
  146. input:-webkit-autofill:hover,
  147. input:-webkit-autofill:focus,
  148. input:-webkit-autofill:active {
  149. transition: background-color 5000000s ease-in-out 0s;
  150. }
  151. input:-webkit-autofill {
  152. -webkit-text-fill-color: var(--color-text-strong) !important;
  153. }
  154. input:-moz-autofill {
  155. -moz-text-fill-color: var(--color-text-strong) !important;
  156. }
  157. [data-component="container"] {
  158. max-width: 67.5rem;
  159. margin: 0 auto;
  160. border: 1px solid var(--color-border-weak);
  161. border-top: none;
  162. @media (max-width: 65rem) {
  163. border: none;
  164. }
  165. }
  166. [data-component="content"] {
  167. }
  168. [data-component="top"] {
  169. padding: 24px var(--padding);
  170. height: 80px;
  171. min-height: 80px;
  172. position: sticky;
  173. top: 0;
  174. display: flex;
  175. justify-content: space-between;
  176. align-items: center;
  177. background: var(--color-background);
  178. border-bottom: 1px solid var(--color-border-weak);
  179. z-index: 10;
  180. img {
  181. height: 34px;
  182. width: auto;
  183. }
  184. [data-component="nav-desktop"] {
  185. ul {
  186. display: flex;
  187. justify-content: space-between;
  188. align-items: center;
  189. gap: 48px;
  190. @media (max-width: 55rem) {
  191. gap: 32px;
  192. }
  193. @media (max-width: 48rem) {
  194. gap: 24px;
  195. }
  196. li {
  197. display: inline-block;
  198. a {
  199. text-decoration: none;
  200. span {
  201. color: var(--color-text-weak);
  202. }
  203. }
  204. a:hover {
  205. text-decoration: underline;
  206. text-underline-offset: var(--space-1);
  207. text-decoration-thickness: 1px;
  208. }
  209. [data-slot="cta-button"] {
  210. background: var(--color-background-strong);
  211. color: var(--color-text-inverted);
  212. padding: 8px 16px 8px 10px;
  213. border-radius: 4px;
  214. font-weight: 500;
  215. text-decoration: none;
  216. display: flex;
  217. align-items: center;
  218. gap: 8px;
  219. @media (max-width: 55rem) {
  220. display: none;
  221. }
  222. }
  223. [data-slot="cta-button"]:hover {
  224. background: var(--color-background-strong-hover);
  225. text-decoration: none;
  226. }
  227. }
  228. }
  229. @media (max-width: 40rem) {
  230. display: none;
  231. }
  232. }
  233. [data-component="nav-mobile"] {
  234. button > svg {
  235. color: var(--color-icon);
  236. }
  237. }
  238. [data-component="nav-mobile-toggle"] {
  239. border: none;
  240. background: none;
  241. outline: none;
  242. height: 40px;
  243. width: 40px;
  244. cursor: pointer;
  245. margin-right: -8px;
  246. }
  247. [data-component="nav-mobile-toggle"]:hover {
  248. background: var(--color-background-weak);
  249. }
  250. [data-component="nav-mobile"] {
  251. display: none;
  252. @media (max-width: 40rem) {
  253. display: block;
  254. [data-component="nav-mobile-icon"] {
  255. cursor: pointer;
  256. height: 40px;
  257. width: 40px;
  258. display: flex;
  259. align-items: center;
  260. justify-content: center;
  261. }
  262. [data-component="nav-mobile-menu-list"] {
  263. position: fixed;
  264. background: var(--color-background);
  265. top: 80px;
  266. left: 0;
  267. right: 0;
  268. height: 100vh;
  269. ul {
  270. list-style: none;
  271. padding: 20px 0;
  272. li {
  273. a {
  274. text-decoration: none;
  275. padding: 20px;
  276. display: block;
  277. span {
  278. color: var(--color-text-weak);
  279. }
  280. }
  281. a:hover {
  282. background: var(--color-background-weak);
  283. }
  284. }
  285. }
  286. }
  287. }
  288. }
  289. [data-slot="logo dark"] {
  290. display: none;
  291. }
  292. @media (prefers-color-scheme: dark) {
  293. [data-slot="logo light"] {
  294. display: none;
  295. }
  296. [data-slot="logo dark"] {
  297. display: block;
  298. }
  299. }
  300. }
  301. [data-component="hero"] {
  302. display: flex;
  303. flex-direction: column;
  304. max-width: 100%;
  305. padding: calc(var(--vertical-padding) * 1.5) var(--padding);
  306. @media (max-width: 30rem) {
  307. padding: var(--vertical-padding) var(--padding);
  308. }
  309. @media (prefers-color-scheme: dark) {
  310. [data-slot="zen logo light"] {
  311. display: none;
  312. }
  313. [data-slot="zen logo dark"] {
  314. display: block;
  315. }
  316. }
  317. }
  318. [data-slot="installation-instructions"] {
  319. color: var(--color-text-strong);
  320. margin-bottom: 8px;
  321. }
  322. [data-slot="installation"] {
  323. width: 100%;
  324. max-width: 100%;
  325. overflow: hidden;
  326. @media (max-width: 550px) {
  327. width: calc(100vw - 48px);
  328. }
  329. }
  330. [data-slot="installation-options"] {
  331. font-size: 13px;
  332. margin-top: 12px;
  333. }
  334. [data-component="tabs"] {
  335. [data-slot="tablist"] {
  336. display: flex;
  337. gap: 40px;
  338. align-items: center;
  339. border: 1px solid var(--color-border-weak);
  340. border-bottom: none;
  341. border-top-left-radius: 6px;
  342. border-top-right-radius: 6px;
  343. background: var(--color-background-weak);
  344. padding: 0 20px;
  345. @media (max-width: 60rem) {
  346. gap: 32px;
  347. overflow-x: auto;
  348. width: 100%;
  349. }
  350. }
  351. [data-slot="tab"] {
  352. appearance: none;
  353. background: transparent;
  354. border: 0;
  355. padding: 16px 0;
  356. margin: 0;
  357. cursor: pointer;
  358. color: var(--color-text-weak);
  359. line-height: 1;
  360. border-bottom: 2px solid transparent;
  361. }
  362. [data-slot="tab"][aria-selected="true"] {
  363. color: var(--color-text-strong);
  364. border-bottom-color: var(--color-background-strong);
  365. }
  366. [data-slot="tab"]:focus-visible {
  367. }
  368. [data-slot="panels"] {
  369. background: var(--color-background-weak);
  370. border: 1px solid var(--color-border-weak);
  371. border-bottom-left-radius: 6px;
  372. border-bottom-right-radius: 6px;
  373. padding: 16px;
  374. }
  375. [data-slot="panel"] {
  376. display: block;
  377. margin: 0;
  378. overflow: auto;
  379. white-space: pre-wrap;
  380. transition: opacity 0.18s ease;
  381. font-size: 16px;
  382. font-family: var(--font-mono);
  383. width: 100%;
  384. button {
  385. max-width: 100%;
  386. }
  387. [data-slot="command"] {
  388. all: unset;
  389. display: flex;
  390. max-width: 100%;
  391. cursor: pointer;
  392. align-items: center;
  393. color: var(--color-text);
  394. gap: 16px;
  395. color: var(--color-text);
  396. padding: 8px 16px 8px 8px;
  397. border-radius: 4px;
  398. [data-slot="command-script"] {
  399. display: inline-block;
  400. max-width: 100%;
  401. overflow: hidden;
  402. text-overflow: ellipsis;
  403. white-space: nowrap;
  404. vertical-align: middle;
  405. @media (prefers-color-scheme: dark) {
  406. color: var(--color-text-weak);
  407. }
  408. @media (max-width: 35rem) {
  409. width: calc(100% - 40px) !important;
  410. }
  411. }
  412. [data-slot="highlight"] {
  413. font-weight: 500;
  414. color: var(--color-text-strong);
  415. }
  416. }
  417. [data-slot="command"]:hover {
  418. background: var(--color-background-weak-hover);
  419. @media (prefers-color-scheme: dark) {
  420. color: var(--color-text-weak);
  421. background: var(--color-background-weak-hover);
  422. }
  423. }
  424. }
  425. }
  426. [data-component="desktop-app-banner"] {
  427. display: flex;
  428. align-items: center;
  429. gap: 12px;
  430. margin-bottom: 32px;
  431. [data-slot="badge"] {
  432. background: var(--color-background-strong);
  433. color: var(--color-text-inverted);
  434. font-weight: 500;
  435. padding: 4px 8px;
  436. line-height: 1;
  437. flex-shrink: 0;
  438. }
  439. [data-slot="content"] {
  440. display: flex;
  441. align-items: center;
  442. gap: 1ch;
  443. }
  444. [data-slot="text"] {
  445. color: var(--color-text-strong);
  446. line-height: 1.4;
  447. @media (max-width: 30.625rem) {
  448. display: none;
  449. }
  450. }
  451. [data-slot="platforms"] {
  452. @media (max-width: 49.125rem) {
  453. display: none;
  454. }
  455. }
  456. [data-slot="link"] {
  457. color: var(--color-text-weak);
  458. white-space: nowrap;
  459. text-decoration: none;
  460. @media (max-width: 30.625rem) {
  461. display: none;
  462. }
  463. }
  464. [data-slot="link"]:hover {
  465. color: var(--color-text);
  466. text-decoration: underline;
  467. text-underline-offset: 2px;
  468. text-decoration-thickness: 1px;
  469. }
  470. [data-slot="link-mobile"] {
  471. display: none;
  472. color: var(--color-text-strong);
  473. white-space: nowrap;
  474. text-decoration: none;
  475. @media (max-width: 30.625rem) {
  476. display: inline;
  477. }
  478. }
  479. [data-slot="link-mobile"]:hover {
  480. text-decoration: underline;
  481. text-underline-offset: 2px;
  482. text-decoration-thickness: 1px;
  483. }
  484. }
  485. [data-slot="hero-copy"] {
  486. [data-slot="releases"] {
  487. background: none;
  488. color: var(--color-text-weak);
  489. padding: 0;
  490. border: none;
  491. font-weight: 400;
  492. cursor: pointer;
  493. margin-bottom: 14px;
  494. border-radius: 0;
  495. display: flex;
  496. width: fit-content;
  497. gap: 12px;
  498. text-decoration: none;
  499. padding-bottom: 2px;
  500. border-bottom: 1px solid transparent;
  501. }
  502. [data-slot="releases"]:hover {
  503. background: none;
  504. padding-bottom: 2px;
  505. border-bottom: 1px solid var(--color-border-weak);
  506. }
  507. h1 {
  508. font-size: 38px;
  509. color: var(--color-text-strong);
  510. font-weight: 700;
  511. margin-bottom: 8px;
  512. @media (max-width: 60rem) {
  513. font-size: 22px;
  514. }
  515. }
  516. p {
  517. color: var(--color-text);
  518. margin-bottom: 32px;
  519. max-width: 82%;
  520. @media (max-width: 50rem) {
  521. max-width: 100%;
  522. }
  523. }
  524. a {
  525. background: var(--color-background-strong);
  526. padding: 8px 12px 8px 20px;
  527. color: var(--color-text-inverted);
  528. border: none;
  529. border-radius: 4px;
  530. font-weight: 500;
  531. cursor: pointer;
  532. display: flex;
  533. width: fit-content;
  534. gap: 12px;
  535. text-decoration: none;
  536. }
  537. a:hover {
  538. background: var(--color-background-strong-hover);
  539. }
  540. }
  541. [data-slot="model-logos"] {
  542. display: flex;
  543. gap: 24px;
  544. margin-bottom: 56px;
  545. svg {
  546. color: var(--color-background-strong);
  547. }
  548. @media (prefers-color-scheme: dark) {
  549. svg {
  550. color: var(--color-background-strong);
  551. }
  552. }
  553. }
  554. [data-slot="pricing-copy"] {
  555. strong {
  556. color: var(--color-text-strong);
  557. font-weight: 500;
  558. }
  559. p:first-child {
  560. margin-bottom: 24px;
  561. color: var(--color-text);
  562. display: flex;
  563. gap: 8px;
  564. @media (max-width: 40rem) {
  565. flex-direction: column;
  566. gap: 4px;
  567. }
  568. }
  569. }
  570. [data-component="video"] {
  571. border-top: 1px solid var(--color-border-weak);
  572. video {
  573. width: 100%;
  574. height: auto;
  575. max-width: none;
  576. max-height: none;
  577. display: block;
  578. }
  579. }
  580. [data-slot="section-title"] {
  581. margin-bottom: 24px;
  582. max-width: 100%;
  583. div {
  584. display: flex;
  585. gap: 12px;
  586. }
  587. span {
  588. color: var(--color-icon);
  589. line-height: 200%;
  590. @media (max-width: 60rem) {
  591. line-height: 180%;
  592. }
  593. }
  594. h3 {
  595. font-size: 16px;
  596. font-weight: 700;
  597. color: var(--color-text-strong);
  598. margin-bottom: 12px;
  599. }
  600. p {
  601. margin-bottom: 12px;
  602. color: var(--color-text);
  603. }
  604. div > p > strong {
  605. font-weight: 500;
  606. color: var(--color-text-strong);
  607. }
  608. }
  609. [data-component="what"] {
  610. border-top: 1px solid var(--color-border-weak);
  611. padding: var(--vertical-padding) var(--padding);
  612. color: var(--color-text);
  613. a {
  614. background: var(--color-background-strong);
  615. padding: 8px 12px 8px 20px;
  616. color: var(--color-text-inverted);
  617. border: none;
  618. border-radius: 4px;
  619. font-weight: 500;
  620. cursor: pointer;
  621. margin-top: 40px;
  622. display: flex;
  623. width: fit-content;
  624. gap: 12px;
  625. text-decoration: none;
  626. }
  627. a:hover {
  628. background: var(--color-background-strong-hover);
  629. }
  630. ul {
  631. padding: 0;
  632. li {
  633. list-style: none;
  634. margin-bottom: 16px;
  635. display: flex;
  636. gap: 12px;
  637. line-height: 200%;
  638. @media (max-width: 60rem) {
  639. line-height: 180%;
  640. }
  641. span {
  642. color: var(--color-icon);
  643. }
  644. strong {
  645. font-weight: 500;
  646. color: var(--color-text-strong);
  647. margin-right: 12px;
  648. }
  649. }
  650. li:last-child {
  651. margin-bottom: 0;
  652. }
  653. }
  654. }
  655. [data-component="growth"] {
  656. border-top: 1px solid var(--color-border-weak);
  657. padding: var(--vertical-padding) var(--padding);
  658. svg {
  659. margin-top: 32px;
  660. width: 100%;
  661. height: 100%;
  662. margin-left: 40px;
  663. @media (max-width: 60rem) {
  664. display: none;
  665. }
  666. }
  667. figure {
  668. margin-top: 16px;
  669. font-size: 13px;
  670. margin-left: 40px;
  671. span {
  672. color: var(--color-text-strong);
  673. }
  674. @media (max-width: 60rem) {
  675. display: none;
  676. }
  677. }
  678. }
  679. [data-component="privacy"] {
  680. border-top: 1px solid var(--color-border-weak);
  681. padding: var(--vertical-padding) var(--padding);
  682. [data-slot="privacy-title"] {
  683. h3 {
  684. font-size: 16px;
  685. font-weight: 700;
  686. color: var(--color-text-strong);
  687. margin-bottom: 12px;
  688. }
  689. div {
  690. display: flex;
  691. gap: 12px;
  692. }
  693. span {
  694. color: var(--color-icon);
  695. line-height: 200%;
  696. }
  697. }
  698. }
  699. [data-component="zen-cta"] {
  700. border-top: 1px solid var(--color-border-weak);
  701. display: flex;
  702. padding: var(--vertical-padding) var(--padding);
  703. }
  704. [data-slot="zen-cta-copy"] {
  705. strong {
  706. color: var(--color-text-strong);
  707. font-weight: 700;
  708. margin-bottom: 16px;
  709. display: block;
  710. }
  711. p {
  712. color: var(--color-text);
  713. margin-bottom: 24px;
  714. max-width: 90%;
  715. @media (max-width: 50rem) {
  716. max-width: 100%;
  717. }
  718. }
  719. a {
  720. background: var(--color-background);
  721. padding: 8px 12px 8px 20px;
  722. color: var(--color-text-strong);
  723. border: none;
  724. border-radius: 4px;
  725. border: 1px solid var(--color-border-weak);
  726. font-weight: 500;
  727. cursor: pointer;
  728. display: flex;
  729. width: fit-content;
  730. gap: 12px;
  731. text-decoration: none;
  732. }
  733. a:hover {
  734. background: var(--color-background-weak);
  735. }
  736. }
  737. [data-slot="model-logos"] {
  738. display: flex;
  739. gap: 24px;
  740. margin-bottom: 40px;
  741. svg {
  742. color: var(--color-background-strong);
  743. }
  744. @media (prefers-color-scheme: dark) {
  745. svg {
  746. color: var(--color-background-strong);
  747. }
  748. }
  749. }
  750. [data-component="email"] {
  751. border-top: 1px solid var(--color-border-weak);
  752. padding: var(--vertical-padding) var(--padding);
  753. color: var(--color-text);
  754. [data-slot="dock"] {
  755. border-radius: 14px;
  756. border: 0.5px solid rgba(176, 176, 176, 0.6);
  757. background: #f2f1f0;
  758. margin-bottom: 32px;
  759. overflow: hidden;
  760. height: 64px;
  761. width: 185px;
  762. box-shadow:
  763. 0 6px 80px 0 rgba(0, 0, 0, 0.05),
  764. 0 2.507px 33.422px 0 rgba(0, 0, 0, 0.04),
  765. 0 1.34px 17.869px 0 rgba(0, 0, 0, 0.03),
  766. 0 0.751px 10.017px 0 rgba(0, 0, 0, 0.03),
  767. 0 0.399px 5.32px 0 rgba(0, 0, 0, 0.02),
  768. 0 0.166px 2.214px 0 rgba(0, 0, 0, 0.01);
  769. img {
  770. width: 100%;
  771. height: auto;
  772. }
  773. @media (prefers-color-scheme: dark) {
  774. background: #312d2d;
  775. }
  776. }
  777. [data-slot="form"] {
  778. position: relative;
  779. input {
  780. background: var(--color-background-weak);
  781. border-radius: 6px;
  782. border: 1px solid var(--color-border-weak);
  783. padding: 20px;
  784. width: 100%;
  785. /* Use color, not -moz-text-fill-color, for normal text */
  786. color: var(--color-text-strong);
  787. @media (max-width: 30rem) {
  788. padding-bottom: 80px;
  789. }
  790. &:not(:focus) {
  791. color: var(--color-text-strong);
  792. }
  793. &::placeholder {
  794. color: var(--color-text-weak);
  795. opacity: 1;
  796. }
  797. /* Optional legacy */
  798. &::-moz-placeholder {
  799. color: var(--color-text-weak);
  800. opacity: 1;
  801. }
  802. }
  803. input:focus {
  804. background: var(--color-background-interactive-weaker);
  805. outline: none;
  806. border: none;
  807. color: var(--color-text-strong);
  808. border: 1px solid var(--color-background-strong);
  809. box-shadow: 0 0 0 3px var(--color-background-interactive);
  810. @media (prefers-color-scheme: dark) {
  811. box-shadow: none;
  812. border: 1px solid var(--color-background-interactive);
  813. }
  814. }
  815. button {
  816. position: absolute;
  817. height: 40px;
  818. right: 12px;
  819. background: var(--color-background-strong);
  820. padding: 4px 20px;
  821. color: var(--color-text-inverted);
  822. border-radius: 4px;
  823. border: none;
  824. outline: none;
  825. font-weight: 500;
  826. cursor: pointer;
  827. top: 50%;
  828. margin-top: -20px;
  829. @media (max-width: 30rem) {
  830. left: 20px;
  831. right: 20px;
  832. bottom: 20px;
  833. top: auto;
  834. }
  835. }
  836. }
  837. }
  838. [data-component="faq"] {
  839. border-top: 1px solid var(--color-border-weak);
  840. padding: var(--vertical-padding) var(--padding);
  841. ul {
  842. padding: 0;
  843. li {
  844. list-style: none;
  845. margin-bottom: 24px;
  846. line-height: 200%;
  847. }
  848. }
  849. [data-slot="faq-question"] {
  850. display: flex;
  851. gap: 16px;
  852. margin-bottom: 8px;
  853. color: var(--color-text-strong);
  854. font-weight: 500;
  855. cursor: pointer;
  856. background: none;
  857. border: none;
  858. padding: 0;
  859. align-items: start;
  860. min-height: 24px;
  861. svg {
  862. margin-top: 2px;
  863. }
  864. [data-slot="faq-icon-plus"] {
  865. flex-shrink: 0;
  866. color: var(--color-text-weak);
  867. margin-top: 2px;
  868. [data-closed] & {
  869. display: block;
  870. }
  871. [data-expanded] & {
  872. display: none;
  873. }
  874. }
  875. [data-slot="faq-icon-minus"] {
  876. flex-shrink: 0;
  877. color: var(--color-text-weak);
  878. margin-top: 2px;
  879. [data-closed] & {
  880. display: none;
  881. }
  882. [data-expanded] & {
  883. display: block;
  884. }
  885. }
  886. [data-slot="faq-question-text"] {
  887. flex-grow: 1;
  888. text-align: left;
  889. }
  890. }
  891. [data-slot="faq-answer"] {
  892. margin-left: 40px;
  893. margin-bottom: 32px;
  894. line-height: 200%;
  895. }
  896. }
  897. [data-component="testimonials"] {
  898. border-top: 1px solid var(--color-border-weak);
  899. padding: var(--vertical-padding) var(--padding);
  900. display: flex;
  901. flex-direction: column;
  902. gap: 20px;
  903. @media (max-width: 60rem) {
  904. --padding: 1rem;
  905. --vertical-padding: 1rem;
  906. }
  907. a {
  908. text-decoration: none;
  909. }
  910. [data-slot="testimonial"] {
  911. background: var(--color-background-weak);
  912. border-radius: 6px;
  913. border: 1px solid var(--color-border-weak);
  914. padding: 20px;
  915. display: flex;
  916. flex-direction: column;
  917. gap: 12px;
  918. @media (max-width: 60rem) {
  919. flex-direction: column-reverse;
  920. gap: 24px;
  921. }
  922. [data-slot="name"] {
  923. display: flex;
  924. gap: 16px;
  925. @media (max-width: 60rem) {
  926. flex-direction: column;
  927. gap: 8px;
  928. }
  929. span {
  930. display: inline-block;
  931. }
  932. img {
  933. height: 24px;
  934. width: 24px;
  935. border-radius: 24px;
  936. }
  937. }
  938. [data-slot="quote"] {
  939. margin-left: 40px;
  940. @media (max-width: 60rem) {
  941. margin-left: 0;
  942. }
  943. span {
  944. color: var(--color-text);
  945. text-decoration: none;
  946. }
  947. }
  948. }
  949. [data-slot="button"] {
  950. all: unset;
  951. cursor: pointer;
  952. display: flex;
  953. align-items: center;
  954. color: var(--color-text);
  955. gap: var(--space-2-5);
  956. font-size: 1rem;
  957. @media (max-width: 24rem) {
  958. font-size: 0.875rem;
  959. }
  960. strong {
  961. color: var(--color-text-strong);
  962. font-weight: 500;
  963. }
  964. @media (max-width: 40rem) {
  965. justify-content: flex-start;
  966. }
  967. @media (max-width: 30rem) {
  968. justify-content: center;
  969. }
  970. }
  971. }
  972. [data-component="copy-status"] {
  973. [data-slot="copy"] {
  974. display: block;
  975. width: var(--space-4);
  976. height: var(--space-4);
  977. color: var(--color-text-weaker);
  978. [data-copied] & {
  979. display: none;
  980. }
  981. }
  982. [data-slot="check"] {
  983. display: none;
  984. width: var(--space-4);
  985. height: var(--space-4);
  986. color: var(--color-text-strong);
  987. [data-copied] & {
  988. display: block;
  989. }
  990. }
  991. }
  992. [data-component="footer"] {
  993. border-top: 1px solid var(--color-border-weak);
  994. display: flex;
  995. flex-direction: row;
  996. @media (max-width: 65rem) {
  997. border-bottom: 1px solid var(--color-border-weak);
  998. }
  999. [data-slot="cell"] {
  1000. flex: 1;
  1001. text-align: center;
  1002. a {
  1003. text-decoration: none;
  1004. padding: 2rem 0;
  1005. width: 100%;
  1006. display: block;
  1007. span {
  1008. color: var(--color-text-weak);
  1009. @media (max-width: 40rem) {
  1010. display: none;
  1011. }
  1012. }
  1013. }
  1014. a:hover {
  1015. background: var(--color-background-weak);
  1016. text-decoration: underline;
  1017. text-underline-offset: var(--space-1);
  1018. text-decoration-thickness: 1px;
  1019. }
  1020. }
  1021. [data-slot="cell"] + [data-slot="cell"] {
  1022. border-left: 1px solid var(--color-border-weak);
  1023. @media (max-width: 40rem) {
  1024. border-left: none;
  1025. }
  1026. }
  1027. /* Mobile: third column on its own row */
  1028. @media (max-width: 25rem) {
  1029. flex-wrap: wrap;
  1030. [data-slot="cell"] {
  1031. flex: 1 0 100%;
  1032. border-left: none;
  1033. border-top: 1px solid var(--color-border-weak);
  1034. }
  1035. [data-slot="cell"]:nth-child(1) {
  1036. border-top: none;
  1037. }
  1038. }
  1039. }
  1040. [data-component="legal"] {
  1041. color: var(--color-text-weak);
  1042. text-align: center;
  1043. display: flex;
  1044. gap: 32px;
  1045. justify-content: center;
  1046. a {
  1047. color: var(--color-text-weak);
  1048. text-decoration: none;
  1049. }
  1050. a:hover {
  1051. color: var(--color-text);
  1052. text-decoration: underline;
  1053. }
  1054. }
  1055. }