:root{color-scheme:dark;--brand:#A292F2;--brand-solid:#8B72E8;--brand-ink:#5B3FD1;--bg:#12141C;--surface:#1D212E;--ink:#E7EAF4;--muted:#9AA1B8;--line:#2B3040;--pos:#2BB673;--dark-bg:#12141C;--dark-surface:#1D212E;--dark-ink:#E7EAF4;--dark-muted:#9AA1B8;--dark-line:#2B3040;--dark-brand:#8B72E8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;scroll-padding-top:88px;background:var(--bg);color:var(--ink);font-family:"IBM Plex Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3,h4{font-family:Archivo,system-ui,sans-serif;text-wrap:balance;margin:0}
p{margin:0}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand);text-decoration:underline}
img{max-width:100%;display:block}
[data-shot]{position:relative;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 8px,transparent 8px 16px);background-color:#171B26}
[data-grid]{background-image:linear-gradient(rgba(139,114,232,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(139,114,232,.08) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(ellipse 90% 70% at 50% 22%,#000 20%,transparent 72%)}
[data-card]{transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease}
[data-card]:hover{border-color:var(--brand);transform:translateY(-3px);box-shadow:0 10px 30px -18px var(--brand)}
[data-chip]{transition:border-color .18s ease,color .18s ease,background-color .18s ease}
[data-glyph]{position:relative;display:block;width:18px;height:18px;flex:0 0 18px}
[data-glyph] img{position:absolute;inset:0;transition:opacity .18s ease}
[data-glyph] img+img{opacity:0}
[data-btn]:hover [data-glyph] img{opacity:0}
[data-btn]:hover [data-glyph] img+img{opacity:1}
[data-modal]::-webkit-scrollbar{width:10px}
[data-modal]::-webkit-scrollbar-thumb{background:#343A4D;border-radius:99px}
[data-shot] span{position:absolute;inset:auto 0 50% 0;text-align:center;font-family:"IBM Plex Mono",monospace;font-size:12px;color:#9AA1B8}
@media (max-width:820px){[data-navlink]{display:none !important}}
@media (max-width:600px){h1{font-size:52px !important}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none !important;animation:none !important}}
[hidden]{display:none!important}
a[data-btn],a[data-btn]:hover{text-decoration:none}
/* database browser (JS-populated) */
.ub-cat{padding:5px 12px;border-radius:999px;border:1px solid #343A4D;background:#12141C;color:#9AA1B8;font-family:'IBM Plex Mono',monospace;font-size:12px;cursor:pointer;transition:color .15s,border-color .15s}
.ub-cat:hover,.ub-cat[aria-pressed="true"]{color:#E7EAF4;border-color:#A292F2}
.ub-row{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:10px;transition:background .15s}
.ub-row:hover{background:#232838}
/* document pages (privacy, etc.) */
.doc{max-width:760px;margin:0 auto;padding:56px 24px 96px}
.doc h1{font-size:34px;letter-spacing:-0.02em}
.doc .updated{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin-top:10px}
.doc h2{font-size:19px;margin-top:38px}
.doc p,.doc li{color:var(--muted);line-height:1.7;font-size:15.5px}
.doc p{margin-top:12px}
.doc ul{margin-top:12px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.doc a{color:var(--brand)}
.docnav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:color-mix(in oklab, var(--bg) 82%, transparent);border-bottom:1px solid var(--line)}
.docnav-in{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:10px}
.docfoot{border-top:1px solid var(--line);padding:28px 24px;text-align:center;color:var(--muted);font-size:13.5px}
.docfoot a{color:var(--brand);margin:0 8px}
.doc h3{font-size:16px;margin-top:26px;color:var(--ink)}
.doc ol{margin-top:12px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.doc code{font-family:'IBM Plex Mono',monospace;font-size:13.5px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 6px}

/* knowledge base pages: sticky section nav on the left, content on the right */
.kb{max-width:1120px;margin:0 auto;padding:48px 24px 96px;display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.kb-nav{position:sticky;top:88px;max-height:calc(100vh - 112px);overflow-y:auto;padding-right:8px}
.kb-nav p{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.14em;color:var(--muted);margin:0 0 10px 14px}
.kb-nav ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line)}
.kb-nav a{display:block;padding:7px 14px;margin-left:-1px;border-left:2px solid transparent;font-size:14.5px;line-height:1.35;color:var(--muted);text-decoration:none;transition:color .15s,border-color .15s}
.kb-nav a:hover{color:var(--ink);text-decoration:none}
.kb-nav a.active{color:var(--brand);border-left-color:var(--brand)}
.kb .doc{max-width:760px;margin:0;padding:0}
.kb .doc h2{scroll-margin-top:96px}
.kb-toggle{display:none}
@media (max-width:860px){
  .kb{grid-template-columns:1fr;gap:28px;padding-top:28px}
  .kb-nav{position:static;max-height:none;padding:0}
  .kb-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:15px;cursor:pointer}
  .kb-nav p{display:none}
  .kb-nav ol{display:none;margin-top:8px;padding:6px 0;border:1px solid var(--line);border-left:1px solid var(--line);border-radius:10px;background:var(--surface)}
  .kb-nav[data-open] ol{display:flex}
}
