@font-face {
    font-family:Geist;
    src:url(fonts/geist.woff2);
    font-weight:100 900;
    font-display:swap;
}
@font-face {
    font-family:GeistMono;
    src:url(fonts/mono.woff2);
    font-weight:100 900;
    font-display:swap;
}
* {
    box-sizing:border-box;
}
html {
    scroll-padding-top:120px;
    scroll-behavior:smooth;
}
body {
    margin:0;
    background:var(--background);
    color:var(--foreground);
    font:14px/1.6 Geist,system-ui,sans-serif;
}
button,input {
    font:inherit;
}
a {
    color:inherit;
    text-decoration:none;
}
button,a,input {
    outline-offset:4px;
}
button {
    cursor:pointer;
}
button:focus-visible,a:focus-visible,input:focus-visible {
    outline:2px solid var(--ring);
}
svg {
    width:16px;
    height:16px;
    flex-shrink:0;
    stroke-width:1.6;
}
button {
    color:inherit;
}
button,a {
    -webkit-tap-highlight-color:transparent;
}
button {
    border:0;
}
p {
    color:var(--muted-foreground);
}
[hidden] {
    display:none!important;
}
.sidebar {
    width:240px;
    background:var(--sidebar);
    border-right:1px solid var(--border);
    position:fixed;
    inset:0 auto 0 0;
    display:flex;
    flex-direction:column;
    padding:24px 12px 12px;
    z-index:20;
}
.brand {
    display:flex;
    gap:12px;
    align-items:center;
    padding:0 8px 24px;
    font-size:18px;
    font-weight:600;
    letter-spacing:-.5px;
}
.monogram {
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:var(--primary);
    color:var(--primary-foreground);
    font-size:20px;
    font-weight:600;
    letter-spacing:-1px;
}
.brand small {
    display:block;
    font-size:11px;
    font-weight:400;
    color:var(--muted-foreground);
    letter-spacing:0;
    margin-top:1px;
}
.workspace {
    border:1px solid var(--border);
    background:var(--background);
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px;
    border-radius:6px;
    margin-bottom:20px;
    font-size:12px;
}
.workspace svg {
    width:14px;
}
.workspace svg:last-child {
    margin-left:auto;
    color:var(--muted-foreground);
}
nav {
    display:grid;
    gap:4px;
}
.nav-row,.file-row {
    display:flex;
    align-items:center;
    gap:10px;
    padding:8px 12px;
    border-radius:6px;
    color:var(--muted-foreground);
    font-size:13px;
    width:100%;
    text-align:left;
    background:transparent;
}
.nav-row:hover,.file-row:hover {
    background:var(--sidebar-accent);
    color:var(--foreground);
}
.nav-row.active,.file-row.selected {
    background:var(--sidebar-accent);
    color:var(--foreground);
    font-weight:500;
}
.key,.end {
    margin-left:auto;
}
.key {
    font-size:12px;
}
.end {
    width:13px;
}
.section-label {
    display:block;
    color:var(--muted-foreground);
    font-size:10px;
    letter-spacing:.08em;
    font-weight:600;
    margin:28px 12px 8px;
}
.file-row {
    padding:7px 12px;
}
.sidebar-bottom {
    margin-top:auto;
    padding-top:40px;
}
.local-note {
    padding:12px 12px 20px;
    margin-bottom:12px;
    border-bottom:1px solid var(--border);
}
.local-note>svg {
    display:block;
    margin-bottom:10px;
    color:var(--muted-foreground);
}
.local-note strong {
    font-size:12px;
    font-weight:500;
}
.local-note p {
    font-size:11px;
    line-height:1.8;
    margin:6px 0 0;
}
.page-shell {
    margin-left:240px;
}
.topbar {
    height:56px;
    display:flex;
    align-items:center;
    gap:16px;
    padding:0 24px;
    border-bottom:1px solid var(--border);
    background:var(--background);
    position:sticky;
    top:0;
    z-index:10;
}
.icon-control {
    display:grid;
    place-items:center;
    background:transparent;
    width:28px;
    height:28px;
    border-radius:6px;
}
.icon-control:hover {
    background:var(--muted);
}
.breadcrumb {
    display:flex;
    align-items:center;
    gap:12px;
    color:var(--muted-foreground);
    font-size:12px;
}
.breadcrumb svg {
    width:12px;
}
.breadcrumb>span {
    color:var(--foreground);
    font-weight:500;
}
.control {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    padding:9px 14px;
    border:1px solid var(--border);
    border-radius:6px;
    background:var(--background);
    font-size:13px;
    font-weight:500;
    line-height:18px;
}
.control:hover {
    background:var(--muted);
}
.control.primary {
    background:var(--primary);
    color:var(--primary-foreground);
    border-color:var(--primary);
}
.control.primary:hover {
    opacity:.87;
}
.top-download {
    font-size:12px;
    padding:6px 12px;
}
.top-download svg {
    width:14px;
}
.document-tabs {
    height:42px;
    border-bottom:1px solid var(--border);
    display:flex;
    align-items:stretch;
    background:var(--sidebar);
}
.document-tabs a {
    display:flex;
    gap:8px;
    align-items:center;
    font-size:12px;
    color:var(--muted-foreground);
    padding:0 20px;
    border-right:1px solid var(--border);
}
.document-tabs a.active {
    background:var(--background);
    color:var(--foreground);
    box-shadow:inset 0 2px var(--primary);
}
.document-tabs svg {
    width:14px;
}
.tab-hint {
    margin-left:auto;
    align-self:center;
    color:var(--muted-foreground);
    font-size:10px;
    padding:0 24px;
}
.content-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) 192px;
    max-width:1440px;
    margin:auto;
}
.landing {
    padding:68px 48px 0;
    min-width:0;
}
.eyebrow {
    display:flex;
    gap:8px;
    align-items:center;
    font:10px/1.5 GeistMono,monospace;
    letter-spacing:.08em;
    color:var(--muted-foreground);
}
.tiny-dot {
    width:5px;
    height:5px;
    background:var(--success);
    border-radius:50%;
}
h1,h2,h3 {
    line-height:1.12;
    font-weight:500;
    letter-spacing:-.045em;
}
h1 {
    font-size:clamp(38px,4.25vw,68px);
    margin:24px 0 24px;
}
h1 span {
    color:var(--muted-foreground);
}
.lead {
    font-size:16px;
    line-height:1.8;
    margin:0 0 28px;
    letter-spacing:-.2px;
}
.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.platform-note {
    font-size:11px;
    display:flex;
    gap:10px;
    margin:16px 0 36px;
}
.platform-note span {
    opacity:.6;
}
.app-figure {
    margin:0;
    border:1px solid var(--border);
    border-radius:10px;
    overflow:hidden;
    background:var(--sidebar);
}
.figure-bar {
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:10px 12px;
    font-size:10px;
    border-bottom:1px solid var(--border);
}
.figure-bar>span {
    display:flex;
    align-items:center;
    gap:8px;
}
.figure-bar svg {
    width:12px;
    height:12px;
}
.figure-status {
    color:var(--muted-foreground);
}
.figure-status svg {
    color:var(--success);
}
.app-figure>img {
    width:100%;
    height:auto;
    display:block;
}
.app-figure figcaption {
    display:flex;
    gap:8px;
    align-items:center;
    padding:10px 12px;
    color:var(--muted-foreground);
    font-size:10px;
    border-top:1px solid var(--border);
}
.app-figure figcaption svg {
    width:12px;
    height:12px;
}
.outline {
    padding:54px 20px 0 4px;
    font-size:11px;
    position:sticky;
    top:56px;
    height:fit-content;
}
.outline .section-label {
    margin:0 0 16px;
    font-size:9px;
}
.outline>a {
    display:block;
    padding:5px 0 5px 12px;
    border-left:1px solid var(--border);
    color:var(--muted-foreground);
}
.outline>a.current {
    color:var(--foreground);
    border-color:var(--foreground);
}
.outline-note {
    margin-top:48px;
    border-top:1px solid var(--border);
    padding-top:20px;
}
.outline-note>svg {
    margin-bottom:12px;
    display:block;
    color:var(--muted-foreground);
}
.outline-note strong {
    font-size:11px;
    font-weight:500;
    display:block;
    line-height:1.6;
}
.outline-note p {
    font-size:11px;
    line-height:1.7;
}
.outline-note a {
    font-size:10px;
    display:flex;
    gap:4px;
    align-items:center;
}
.outline-note a svg {
    width:12px;
}
.workflow {
    padding:72px 0 52px;
    border-bottom:1px solid var(--border);
}
h2 {
    font-size:30px;
    margin:16px 0;
}
.section-intro {
    font-size:14px;
}
.steps {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
    margin-top:32px;
}
.steps article {
    border-top:1px solid var(--border);
    padding-top:16px;
}
.step-no {
    font:9px GeistMono,monospace;
    color:var(--muted-foreground);
    display:block;
    margin-bottom:24px;
}
.steps article>svg {
    width:20px;
    height:20px;
    margin-bottom:8px;
}
.steps h3 {
    font-size:16px;
    letter-spacing:-.03em;
    line-height:1.5;
    margin:8px 0;
}
.steps p {
    font-size:12px;
    line-height:1.9;
}
.text-link {
    display:inline-flex;
    gap:8px;
    align-items:center;
    font-size:11px;
    border-bottom:1px solid var(--border);
    padding-bottom:4px;
    margin-top:8px;
}
.text-link svg {
    width:13px;
}
.download-section {
    padding:60px 0;
}
.download-section>p {
    font-size:13px;
}
.download-options {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:24px;
}
.download-options .control {
    font-size:12px;
}
.download-options span {
    font-size:10px;
    color:var(--muted-foreground);
    font-weight:400;
}
.download-section .small {
    font-size:10px;
}
footer {
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:20px 0 44px;
    border-top:1px solid var(--border);
    font-size:10px;
    color:var(--muted-foreground);
}
footer a {
    display:flex;
    gap:6px;
    align-items:center;
}
footer svg {
    width:12px;
}
.statusbar {
    border-top:1px solid var(--border);
    background:var(--sidebar);
    padding:6px 16px;
    display:flex;
    justify-content:space-between;
    gap:16px;
    font-size:9px;
    color:var(--muted-foreground);
}
.statusbar span:first-child {
    display:flex;
    gap:6px;
    align-items:center;
}
.statusbar svg {
    width:11px;
    height:11px;
}
.filter {
    display:flex;
    align-items:center;
    gap:8px;
    background:var(--background);
    border:1px solid var(--border);
    border-radius:6px;
    padding:7px 8px;
    margin:24px 0 12px;
}
.filter svg {
    width:13px;
    color:var(--muted-foreground);
}
.filter input {
    min-width:0;
    width:100%;
    border:0;
    background:transparent;
    color:var(--foreground);
    font-size:12px;
}
.doc-link {
    padding-left:12px;
    font-size:12px;
}
.doc-link svg {
    width:13px;
}
.doc {
    padding:48px;
    min-width:0;
    max-width:850px;
}
.doc-crumb {
    color:var(--muted-foreground);
    font-size:11px;
    display:flex;
    gap:8px;
    align-items:center;
    margin-bottom:24px;
}
.doc-crumb svg {
    width:12px;
}
.doc h1 {
    font-size:42px;
    margin:12px 0 20px;
    letter-spacing:-.045em;
}
.doc .lead {
    font-size:16px;
    line-height:1.8;
    margin-bottom:32px;
}
.doc h2 {
    font-size:24px;
    letter-spacing:-.03em;
    margin:40px 0 16px;
}
.doc>p {
    font-size:14px;
    line-height:1.9;
}
.doc strong {
    color:var(--foreground);
    font-weight:500;
}
.notice {
    border:1px solid var(--border);
    border-radius:8px;
    padding:16px 20px;
    display:flex;
    align-items:flex-start;
    gap:12px;
    background:var(--sidebar);
    margin-bottom:36px;
}
.notice svg {
    margin-top:2px;
}
.notice strong {
    font-size:13px;
}
.notice p {
    margin:4px 0 0;
    font-size:12px;
    line-height:1.8;
}
.doc code,.doc kbd {
    font-family:GeistMono,monospace;
    background:var(--muted);
    border:1px solid var(--border);
    border-radius:4px;
    padding:2px 5px;
    font-size:11px;
}
.doc table {
    border-collapse:collapse;
    width:100%;
    font-size:12px;
    margin:24px 0;
}
.doc th,.doc td {
    border-bottom:1px solid var(--border);
    padding:12px 8px;
    text-align:left;
}
.doc th {
    font-weight:500;
    background:var(--sidebar);
}
#empty {
    padding:12px;
    font-size:12px;
}
@media(min-width:1500px) {
    .landing {
        padding-left:72px;
        padding-right:72px;
    }
}
@media(max-width:1150px) {
    .content-grid {
        grid-template-columns:minmax(0,1fr);
    }
    .outline {
        display:none;
    }
    .landing {
        padding:56px 40px 0;
    }
    .doc {
        padding:40px;
        max-width:850px;
        margin:auto;
    }
    .tab-hint {
        display:none;
    }
    h1 {
        font-size:50px;
    }
}
@media(max-width:760px) {
    .sidebar {
        transform:translateX(-100%);
        transition:transform var(--duration-normal);
    }
    body.nav-open .sidebar {
        transform:none;
        box-shadow:12px 0 60px var(--overlay);
    }
    .page-shell {
        margin-left:0;
    }
    .topbar {
        padding:0 16px;
        gap:8px;
    }
    .breadcrumb {
        gap:8px;
    }
    .top-download {
        margin-left:auto;
    }
    .landing {
        padding:48px 24px 0;
    }
    .doc {
        padding:32px 24px;
    }
    h1 {
        font-size:44px;
    }
    .lead {
        font-size:15px;
    }
    .steps {
        gap:20px;
    }
    .statusbar>span:nth-child(2) {
        display:none;
    }
    .sidebar-bottom {
        padding-top:24px;
    }
    .sidebar {
        overflow-y:auto;
    }
    .doc h1 {
        font-size:34px;
    }
}
@media(max-width:460px) {
    .top-download {
        font-size:0;
        gap:0;
        padding:6px;
    }
    .top-download svg {
        width:16px;
    }
    .document-tabs a {
        padding:0 16px;
        font-size:11px;
    }
    .landing {
        padding:40px 20px 0;
    }
    h1 {
        font-size:38px;
        line-height:1.12;
        letter-spacing:-.05em;
    }
    .eyebrow {
        font-size:8px;
        letter-spacing:.04em;
    }
    .desktop-break {
        display:none;
    }
    .platform-note {
        font-size:9px;
        gap:7px;
    }
    .figure-status {
        display:none!important;
    }
    .figure-bar {
        font-size:9px;
    }
    .app-figure figcaption {
        font-size:9px;
    }
    .workflow {
        padding-top:48px;
    }
    h2 {
        font-size:26px;
    }
    .steps {
        grid-template-columns:1fr;
        gap:20px;
    }
    .steps article {
        position:relative;
        padding-left:36px;
    }
    .steps article>svg {
        position:absolute;
        left:0;
        top:45px;
    }
    .step-no {
        margin-bottom:12px;
    }
    .steps h3 {
        margin-top:0;
    }
    .steps p {
        margin-bottom:0;
    }
    .download-section {
        padding:40px 0;
    }
    .download-options {
        display:grid;
    }
    .download-options .control {
        justify-content:flex-start;
    }
    .download-options span {
        margin-left:auto;
    }
    footer {
        flex-wrap:wrap;
    }
    .doc {
        padding:28px 20px;
    }
    .doc .lead {
        font-size:15px;
    }
    .statusbar {
        font-size:8px;
    }
    .doc table {
        font-size:11px;
    }
    .doc td {
        overflow-wrap:anywhere;
    }
    .doc h1 {
        font-size:32px;
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
}
.sidebar {
    overflow-y:auto;
}
.doc-link svg:last-child:not(:first-child) {
    width:11px;
    margin-left:auto;
}
.doc-link {
    gap:8px;
}
.doc-group .section-label {
    margin-top:20px;
}
@media(min-width:761px) {
    body.nav-collapsed .sidebar {
        display:none;
    }
    body.nav-collapsed .page-shell {
        margin-left:0;
    }
}
/* The static landing page and every documentation page share the same shell. */
.skip-link {
    position:absolute;
    left:16px;
    top:-80px;
    z-index:var(--z-overlay);
    background:var(--primary);
    color:var(--primary-foreground);
    padding:12px 16px;
    border-radius:6px;
}
.skip-link:focus {
    top:12px;
}
.sidebar {
    scrollbar-width:thin;
}
.sidebar-close {
    display:none;
}
.sidebar-bottom {
    flex-shrink:0;
}
.sidebar nav {
    flex-shrink:0;
}
.sidebar .section-label {
    text-transform:uppercase;
}
.doc-link {
    line-height:1.55;
}
.doc-link svg {
    align-self:flex-start;
    margin-top:3px;
}
.empty {
    font-size:12px;
    padding:8px 12px;
}
.landing-navigation {
    display:block;
}
.breadcrumb {
    min-width:0;
}
.breadcrumb span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.top-download {
    margin-left:auto;
    flex-shrink:0;
}
.statusbar>a {
    white-space:nowrap;
}
.outline {
    max-height:calc(100vh - 100px);
    overflow-y:auto;
    scrollbar-width:thin;
}
.outline a {
    overflow-wrap:anywhere;
}
.outline .section-label {
    text-transform:uppercase;
}
.nav-backdrop {
    position:fixed;
    inset:0;
    background:var(--overlay);
    z-index:var(--z-float-backdrop);
    width:100%;
    height:100%;
}
.topbar {
    z-index:2;
}
.sidebar {
    z-index:var(--z-float);
}
.themed-media {
    display:block;
    max-width:100%;
}
.themed-media>img {
    display:block;
    max-width:100%;
    height:auto;
    width:100%;
    background:var(--sidebar);
}
.app-figure .themed-media>img {
    border:0;
    border-radius:0;
}
.themed-media>img:not([src]) {
    visibility:hidden;
}
.themed-media noscript img {
    width:100%;
    height:auto;
}
.doc {
    width:100%;
}
.doc .eyebrow {
    text-transform:uppercase;
    margin:0 0 12px;
}
.doc p,.doc li {
    overflow-wrap:anywhere;
}
.doc p,.doc li {
    color:var(--muted-foreground);
}
.doc strong,.doc b {
    font-weight:500;
    color:var(--foreground);
}
.doc a:not(.pager a):not(.cards a) {
    text-decoration:underline;
    text-underline-offset:4px;
    text-decoration-color:var(--border);
}
.doc a:hover {
    text-decoration-color:var(--foreground);
}
.doc ul,.doc ol {
    padding-left:22px;
}
.doc li {
    margin:8px 0;
    line-height:1.85;
}
.doc h3 {
    font-size:18px;
    letter-spacing:-.02em;
    margin:28px 0 12px;
}
.doc h2 {
    scroll-margin-top:80px;
}
.doc figure {
    margin:28px 0;
}
.doc figure img {
    border:1px solid var(--border);
    border-radius:8px;
}
.doc .narrow-fig .themed-media {
    width:fit-content;
    max-width:min(100%,520px);
    margin-inline:auto;
}
.doc .narrow-fig img {
    width:auto;
    max-width:100%;
}
.doc figcaption {
    font-size:11px;
    color:var(--muted-foreground);
    margin-top:10px;
    text-align:center;
    line-height:1.7;
}
.doc code,.doc kbd {
    font-size:12px;
    box-decoration-break:clone;
}
.doc kbd {
    white-space:nowrap;
}
.doc pre {
    background:var(--sidebar);
    color:var(--foreground);
    border:1px solid var(--border);
    border-radius:8px;
    padding:16px 20px;
    font:12px/1.9 GeistMono,monospace;
    overflow-x:auto;
    max-width:100%;
    margin:24px 0;
}
.doc pre code {
    border:0;
    background:transparent;
    padding:0;
    font-size:inherit;
}
.doc pre .c {
    color:var(--muted-foreground);
}
.table-wrap {
    overflow-x:auto;
    margin:24px 0;
    border:1px solid var(--border);
    border-radius:8px;
}
.doc .table-wrap table {
    margin:0;
}
.doc table {
    border-collapse:collapse;
}
.doc td,.doc th {
    vertical-align:top;
}
.doc th {
    white-space:normal;
}
.doc tr:last-child td {
    border-bottom:0;
}
.callout {
    border:1px solid var(--border);
    border-left:3px solid var(--foreground);
    border-radius:8px;
    background:var(--sidebar);
    padding:16px 20px;
    margin:24px 0;
    font-size:13px;
    line-height:1.85;
}
.callout.warn {
    border-left-color:var(--warning);
}
.callout strong:first-child {
    display:block;
}
.callout p {
    margin:0;
}
.cards {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:24px 0;
}
.cards a {
    display:block;
    border:1px solid var(--border);
    border-radius:8px;
    padding:16px 20px;
    font-size:13px;
}
.cards a:hover {
    background:var(--sidebar);
}
.cards strong {
    display:block;
    margin-bottom:8px;
}
.cards span {
    color:var(--muted-foreground);
    font-size:12px;
    line-height:1.8;
    display:block;
}
.tag {
    display:inline-block;
    font-size:10px;
    font-weight:500;
    padding:2px 6px;
    border:1px solid var(--border);
    border-radius:4px;
    background:var(--sidebar);
    color:var(--muted-foreground);
    vertical-align:middle;
}
.pager {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:48px;
}
.pager a {
    border:1px solid var(--border);
    border-radius:8px;
    padding:16px;
    font-size:13px;
}
.pager a:hover {
    background:var(--sidebar);
}
.pager small {
    display:block;
    color:var(--muted-foreground);
    font-size:10px;
    margin-bottom:8px;
}
.pager .next {
    text-align:right;
    grid-column:2;
}
.doc .doc-crumb {
    margin-bottom:28px;
}
.doc .doc-crumb a {
    text-decoration:none;
}
@media(max-width:760px) {
    body.nav-open {
        overflow:hidden;
    }
    .sidebar-close {
        display:grid;
        position:absolute;
        right:12px;
        top:24px;
    }
    .sidebar .brand {
        padding-right:24px;
    }
    .sidebar-bottom {
        padding-top:24px;
    }
    .sidebar:not(:has(.local-note)) .sidebar-bottom {
        padding-top:20px;
    }
    .top-download {
        margin-left:auto;
    }
    .breadcrumb {
        flex:1;
    }
    .breadcrumb>a {
        display:none;
    }
    .breadcrumb>svg {
        display:none;
    }
    .doc {
        max-width:100%;
    }
}
@media(max-width:460px) {
    .top-download {
        font-size:12px;
        gap:6px;
    }
    .top-download span {
        display:none;
    }
    .doc h2 {
        font-size:24px;
    }
    .cards,.pager {
        grid-template-columns:minmax(0,1fr);
    }
    .pager .next {
        grid-column:1;
    }
    .doc pre {
        padding:12px;
    }
    .doc figcaption {
        font-size:10px;
    }
    .statusbar>a {
        font-size:8px;
    }
    .outline-note {
        display:none;
    }
}
