:root { --paper: #10151c; --white: #18212c; --ink: #edf2f8; --muted: #a5b1c1; --line: #2c3745; --blue: #91b8ff; --soft: #1c2838; --mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace; --sans: Inter, "Helvetica Neue", Arial, sans-serif; color-scheme: dark; } * { box-sizing: border-box; } html { scroll-behavior: smooth; scroll-padding-top: 95px; } body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; } a { color: inherit; text-decoration: none; } button, input { font: inherit; } button { cursor: pointer; } a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; } img { display: block; max-width: 100%; height: auto; } h1, h2, h3, p, figure, dl { margin: 0; } .page-width, .header-inner { width: min(1280px, calc(100% - 96px)); margin-inline: auto; } .site-header { border-bottom: 1px solid var(--line); background: var(--paper); } .header-inner { display: flex; align-items: center; justify-content: space-between; height: 88px; gap: 30px; } .wordmark { font-size: 29px; font-weight: 750; letter-spacing: -1.4px; display: inline-flex; align-items: center; gap: 10px; } .wordmark svg { width: 26px; height: 26px; fill: var(--blue); } .site-header nav { display: flex; gap: 36px; align-items: center; font-size: 13px; } .site-header nav a { padding: 10px 0; position: relative; } .site-header nav a[aria-current="page"]:after { content: ""; position: absolute; height: 2px; bottom: 0; left: 0; right: 0; background: var(--ink); } .site-header nav a:hover, .inline-link:hover, .rail-link:hover, .site-footer > a:last-child:hover { color: var(--blue); } .eyebrow { font: 10px/1.7 var(--mono); letter-spacing: 1.2px; } .hero { padding-block: 58px 64px; } .hero-kicker { display: flex; justify-content: space-between; color: var(--muted); margin-bottom: 34px; } .hero-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 80px; align-items: end; } h1 { font-size: clamp(47px, 5.5vw, 78px); font-weight: 500; letter-spacing: -3.7px; line-height: 1.08; } h1 span { color: var(--blue); } .hero-description { max-width: 410px; padding-bottom: 5px; } .hero-description > p { font-size: 15px; line-height: 1.9; color: var(--muted); } .hero-links { display: flex; align-items: center; gap: 24px; margin-top: 26px; } .button { display: inline-flex; align-items: center; justify-content: space-between; gap: 33px; background: var(--ink); color: #fff; padding: 13px 19px; font-size: 13px; transition: background 0.15s; } .button:hover { background: var(--blue); } .inline-link { font-size: 12px; display: inline-flex; gap: 12px; align-items: center; } .desktop-hero { scroll-margin-top: 25px; } .image-label { display: flex; justify-content: space-between; padding: 12px 0; border-top: 1px solid var(--ink); font: 9px var(--mono); letter-spacing: 1px; } .desktop-hero img { width: 100%; border: 1px solid var(--line); } figcaption { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 11px; padding-top: 17px; } figcaption > span:last-child { font: 9px/1.7 var(--mono); } .editorial-section { display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: 65px; padding-block: 105px; border-top: 1px solid var(--line); margin-top: 76px; } .section-rail { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 30px; color: var(--muted); } .rail-link { font-size: 11px; } h2 { font-size: clamp(32px, 3.2vw, 46px); font-weight: 500; line-height: 1.18; letter-spacing: -1.7px; } .section-intro { max-width: 630px; font-size: 16px; line-height: 1.85; color: var(--muted); margin-top: 24px; } .layout-explanations { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 46px; } .layout-explanations article { border-top: 1px solid var(--line); padding-top: 20px; } h3 { font-size: 18px; font-weight: 550; letter-spacing: -0.4px; } .layout-explanations p, .appearance-notes p { font-size: 13px; line-height: 1.9; color: var(--muted); margin-top: 12px; } .key-line { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font: 10px var(--mono); margin-top: 23px; } .key-line > span:last-child { font: 10px var(--sans); margin-left: 4px; color: var(--muted); } kbd { border: 1px solid var(--line); border-bottom-width: 2px; padding: 3px 6px; background: var(--white); font: 10px var(--mono); } .aside-note { font-size: 11px; color: var(--muted); margin-top: 30px; } .appearance-section { background: var(--soft); } .appearance-section .editorial-section { border: 0; margin-top: 0; padding-block: 85px; } .appearance-shot { grid-column: 1/-1; margin-top: 46px; } .appearance-shot img { width: 100%; border: 1px solid var(--line); } .appearance-shot figcaption > span:first-child { font: 10px var(--mono); } .appearance-notes { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 45px; margin-top: 44px; } .appearance-notes h3 { font-size: 16px; } .setup-section { margin-top: 0; border-top: 0; } .capabilities { margin-top: 37px; } .capabilities > div { display: grid; grid-template-columns: 150px 1fr; gap: 25px; border-top: 1px solid var(--line); padding: 21px 0; } .capabilities dt { font-size: 13px; font-weight: 600; } .capabilities dd { margin: 0; font-size: 13px; color: var(--muted); max-width: 480px; line-height: 1.9; } .start-section { background: #202a24; color: #f7f8f5; padding-block: 75px; } .start-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; } .start-section .eyebrow { color: #b9c9b5; } .start-section h2 { font-size: 51px; margin-block: 22px; } .start-section p { font-size: 13px; line-height: 1.9; color: #c1ccc3; max-width: 410px; margin-bottom: 28px; } .button.light { background: #edf3e8; color: #202a24; } .button.light:hover { background: #d9e6d0; } .start-links { align-self: center; } .start-links a { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 25px 0; border-top: 1px solid #4a564a; } .start-links a:last-child { border-bottom: 1px solid #4a564a; } .start-links small { display: block; color: #b9c9b5; font: 9px var(--mono); letter-spacing: 1.2px; margin-bottom: 8px; } .start-links strong { font-size: 19px; font-weight: 400; } .start-links a:hover strong { text-decoration: underline; text-underline-offset: 5px; } .site-footer { display: flex; align-items: center; gap: 25px; padding-block: 35px; } .site-footer p { font-size: 11px; color: var(--muted); } .site-footer > a:last-child { margin-left: auto; font-size: 11px; } .skip { position: fixed; left: 14px; top: -100px; padding: 12px 18px; color: #10151c; background: var(--blue); z-index: 10; } .skip:focus { top: 12px; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* The handbook shares the site's typography and navigation. */ .docs-page .site-header { position: sticky; top: 0; z-index: 5; } .docs-layout { display: grid; grid-template-columns: 205px minmax(0, 760px) 180px; gap: 42px; width: min(1360px, calc(100% - 72px)); margin: 0 auto; padding-block: 42px 80px; align-items: start; } .docs-sidebar, .docs-toc { position: sticky; top: 124px; max-height: calc(100vh - 155px); overflow: auto; } .docs-sidebar summary { font: 10px var(--mono); letter-spacing: 1px; list-style: none; margin-bottom: 18px; color: var(--muted); } .docs-sidebar nav { display: grid; gap: 3px; } .docs-sidebar nav a { font-size: 13px; padding: 8px 12px; border-left: 2px solid transparent; } .docs-sidebar nav a:hover { background: var(--soft); } .docs-sidebar nav a[aria-current="page"] { border-color: var(--blue); color: var(--blue); background: var(--soft); font-weight: 600; } .sidebar-links { border-top: 1px solid var(--line); padding-top: 17px; margin-top: 25px; font-size: 11px; display: grid; gap: 12px; color: var(--muted); } .docs-article { min-width: 0; } .breadcrumb { font: 10px var(--mono); color: var(--muted); margin-bottom: 18px; display: flex; gap: 10px; } .docs-article h1 { font-size: 46px; letter-spacing: -1.7px; margin-bottom: 28px; line-height: 1.15; } .prose { font-size: 14px; line-height: 1.9; } .prose > p { margin-block: 18px; color: #c2ccd9; } .prose > p:first-of-type { font-size: 16px; line-height: 1.85; color: var(--muted); } .prose h2 { font-size: 27px; letter-spacing: -0.8px; border-top: 1px solid var(--line); padding-top: 28px; margin-top: 48px; margin-bottom: 17px; scroll-margin-top: 115px; } .prose h3 { font-size: 18px; margin-block: 30px 12px; scroll-margin-top: 115px; } .prose a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; } .prose code { font-family: var(--mono); font-size: 0.88em; background: var(--soft); padding: 2px 5px; overflow-wrap: anywhere; } .prose pre { position: relative; border: 1px solid var(--line); background: #151e29; margin-block: 25px; padding: 40px 18px 18px; overflow-x: auto; line-height: 1.8; font-size: 12px; } .prose pre code { padding: 0; background: none; white-space: pre; overflow-wrap: normal; font-size: inherit; } .code-copy { position: absolute; right: 8px; top: 7px; background: var(--paper); border: 1px solid var(--line); padding: 3px 9px; font: 10px var(--sans); color: var(--muted); } .prose li { margin-bottom: 8px; } .prose ul, .prose ol { padding-left: 23px; } .table-scroll { overflow-x: auto; margin-block: 25px; border: 1px solid var(--line); } .prose table { border-collapse: collapse; width: 100%; font-size: 12px; line-height: 1.7; } .prose th { text-align: left; background: var(--soft); font-weight: 600; white-space: nowrap; } .prose td, .prose th { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: top; min-width: 110px; } .prose td:first-child { min-width: 160px; } .prose tr:last-child td { border-bottom: 0; } .prose blockquote { border-left: 2px solid var(--blue); padding: 2px 18px; margin: 25px 0; background: var(--soft); } .prose blockquote p { margin-block: 12px; } .docs-toc > p { font: 9px var(--mono); letter-spacing: 1px; color: var(--muted); margin: 0 0 15px; } .docs-toc nav { display: grid; gap: 12px; } .docs-toc a { font-size: 11px; line-height: 1.5; color: var(--muted); border-left: 1px solid var(--line); padding-left: 13px; } .docs-toc a:hover { color: var(--blue); border-color: var(--blue); } .docs-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 50px; padding-top: 25px; border-top: 1px solid var(--line); } .docs-pager a { font-size: 14px; } .docs-pager a:last-child { text-align: right; grid-column: 2; } .docs-pager small { display: block; color: var(--muted); font: 9px var(--mono); margin-bottom: 6px; } .edit-link { font-size: 11px; color: var(--muted); display: inline-block; margin-top: 35px; } .docs-search { margin-bottom: 24px; position: relative; } .docs-search input { width: 100%; border: 1px solid var(--line); background: var(--white); color: var(--ink); padding: 10px 12px; font-size: 12px; border-radius: 0; } .search-results { position: absolute; top: 47px; left: 0; width: min(660px, calc(100vw - 48px)); max-height: 65vh; overflow: auto; background: var(--white); border: 1px solid var(--line); box-shadow: 0 12px 35px #0006; z-index: 8; } .search-results[hidden] { display: none; } .search-results a { display: block; padding: 14px 17px; border-bottom: 1px solid var(--line); } .search-results a:hover { background: var(--soft); } .search-results strong { display: block; font-size: 13px; color: var(--blue); } .search-results span { display: block; font-size: 11px; color: var(--muted); line-height: 1.7; margin-top: 5px; } .search-results > p { padding: 15px; font-size: 12px; } .search-summary { color: var(--muted); font-size: 11px; margin-top: 6px; } .docs-sidebar:has(.search-results:not([hidden])) { overflow: visible; } @media (max-width: 1100px) { .hero-grid { gap: 40px; } .editorial-section { grid-template-columns: 175px minmax(0, 1fr); gap: 35px; } .docs-layout { grid-template-columns: 185px minmax(0, 1fr); gap: 35px; } .docs-toc { display: none; } .start-grid { gap: 60px; } } @media (max-width: 760px) { .page-width, .header-inner { width: calc(100% - 40px); } .header-inner { height: 74px; gap: 18px; } .wordmark { font-size: 25px; gap: 6px; } .wordmark svg { width: 23px; } .site-header nav { gap: 18px; font-size: 11px; } .site-header nav a:first-child { display: none; } .hero { padding-block: 35px 40px; } .hero-platform { display: none; } .hero-kicker { margin-bottom: 25px; } .hero-grid { grid-template-columns: 1fr; gap: 25px; } h1 { font-size: 54px; letter-spacing: -2.8px; } .hero-description { max-width: 480px; } .hero-description > p { font-size: 14px; } .hero-links { gap: 22px; margin-top: 22px; } .hero-links .button { font-size: 12px; } .inline-link { font-size: 11px; } .image-label { font-size: 8px; } .desktop-hero figcaption { font-size: 10px; display: block; } .desktop-hero figcaption > span:last-child { display: block; margin-top: 5px; font-size: 8px; } .editorial-section { grid-template-columns: 1fr; gap: 25px; margin-top: 40px; padding-block: 45px; } .section-rail { flex-direction: row; align-items: center; gap: 15px; } .eyebrow { font-size: 9px; letter-spacing: 0.7px; } .rail-link { font-size: 10px; } h2 { font-size: 33px; letter-spacing: -1px; } .section-intro { font-size: 14px; margin-top: 20px; } .layout-explanations { gap: 25px; margin-top: 32px; grid-template-columns: 1fr; } .layout-explanations h3 { font-size: 18px; } .key-line { margin-top: 16px; } .aside-note { margin-top: 24px; } .appearance-section .editorial-section { padding-block: 45px; } .appearance-shot { margin-top: 6px; } .appearance-shot figcaption { font-size: 9px; gap: 15px; } .appearance-shot figcaption > span:first-child { font-size: 8px; white-space: nowrap; } .appearance-shot figcaption > span:last-child { font: 9px var(--sans); } .appearance-notes { grid-template-columns: 1fr; gap: 24px; margin-top: 3px; } .appearance-notes p { margin-top: 6px; } .setup-section { margin-top: 0; } .capabilities { margin-top: 25px; } .capabilities > div { grid-template-columns: 1fr; gap: 7px; padding-block: 17px; } .start-section { padding-block: 43px; } .start-grid { grid-template-columns: 1fr; gap: 30px; } .start-section h2 { font-size: 43px; } .start-section p { font-size: 13px; } .start-links strong { font-size: 17px; } .site-footer { gap: 12px; flex-wrap: wrap; padding-block: 26px; } .site-footer p { font-size: 10px; } .site-footer > a:last-child { font-size: 10px; } .docs-layout { width: calc(100% - 36px); grid-template-columns: 1fr; gap: 30px; padding-top: 24px; } .docs-sidebar { position: relative; top: auto; max-height: none; overflow: visible; } .docs-sidebar details { border-bottom: 1px solid var(--line); padding-bottom: 16px; } .docs-sidebar summary { cursor: pointer; list-style: revert; margin: 0 0 13px; } .docs-sidebar nav { grid-template-columns: 1fr 1fr; gap: 0; } .docs-sidebar nav a { font-size: 12px; padding: 6px 10px; } .sidebar-links { display: none; } .docs-search { margin-bottom: 18px; } .search-results { width: 100%; } .docs-article h1 { font-size: 37px; letter-spacing: -1px; } .prose { font-size: 14px; } .prose h2 { font-size: 25px; } .prose pre { font-size: 11px; } .docs-page .site-header { position: relative; } .prose h2, .prose h3 { scroll-margin-top: 20px; } } @media (max-width: 380px) { h1 { font-size: 47px; } .site-header nav { gap: 12px; } .hero-links { gap: 14px; } .button { gap: 20px; } .site-footer > a:last-child { margin-left: 0; } .rail-link { max-width: 130px; text-align: right; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } } /* Compact product homepage. */ .simple-home .page-width { max-width: 1000px; } .product-intro { text-align: center; padding-block: 48px 34px; } .product-intro h1 { font-size: 64px; font-weight: 700; letter-spacing: -2.5px; color: var(--blue); } .product-tagline { font-size: 22px; line-height: 1.5; margin-top: 16px; } .product-description { color: var(--muted); max-width: 600px; margin: 13px auto 0; font-size: 15px; } .product-links { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 24px; } .product-links .button { border-radius: 5px; background: #285ec2; border: 1px solid #285ec2; padding: 11px 20px; } .product-links .button:hover { background: #3471db; } .product-links .secondary { background: transparent; color: var(--blue); } .product-links .secondary:hover { background: var(--soft); } .source-link { font-size: 13px; color: var(--muted); margin-left: 5px; } .product-screenshot img { width: 100%; border: 1px solid var(--line); border-radius: 8px; } .product-screenshot figcaption { justify-content: center; padding-top: 10px; font-size: 11px; } .product-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; padding-block: 40px; } .product-features h2, .product-getting-started h2 { font-size: 20px; font-weight: 600; letter-spacing: -0.4px; line-height: 1.4; } .product-features p, .product-getting-started p { font-size: 14px; color: var(--muted); margin-top: 12px; line-height: 1.8; } .product-features a { display: inline-block; font-size: 12px; color: var(--blue); margin-top: 12px; } .product-getting-started { border-top: 1px solid var(--line); padding-block: 28px 42px; } .product-getting-started a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; } .simple-home + .site-footer { max-width: 1000px; border-top: 1px solid var(--line); } @media (max-width: 760px) { .product-intro { padding-block: 35px 27px; } .product-intro h1 { font-size: 52px; } .product-tagline { font-size: 19px; } .product-description { font-size: 14px; } .product-links { gap: 10px; } .product-links .button { padding: 10px 15px; font-size: 12px; } .source-link { font-size: 12px; } .product-features { grid-template-columns: 1fr; gap: 25px; padding-block: 30px; } .product-features p { margin-top: 7px; } }