/* System fonts only — zero font downloads, instant render, no swap. */
:root{
  --bg:#1e1e2e; --mantle:#181825; --crust:#11111b;
  --surface:#252535; --surface-2:#2b2b3c; --border:#313244; --border-strong:#45475a;
  --text:#cdd6f4; --subtext:#a6adc8; --muted:#7f849c;
  --accent:#c4a7e7; --accent-hover:#d4bdf0;
  --green:#a6e3a1; --red:#f38ba8; --peach:#fab387; --blue:#89b4fa;
  --on-accent:#1e1e2e;
  --radius:14px; --radius-sm:9px;
}
html[data-theme="light"]{
  --bg:#eff1f5; --mantle:#e6e9ef; --crust:#dce0e8;
  --surface:#ffffff; --surface-2:#e6e9ef; --border:#dce0e8; --border-strong:#bcc0cc;
  --text:#4c4f69; --subtext:#5c5f77; --muted:#8c8fa1;
  --accent:#8839ef; --accent-hover:#7a2fd6;
  --green:#40a02b; --red:#d20f39; --peach:#fe640b; --blue:#1e66f5;
  --on-accent:#ffffff;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.6;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
code,pre,.mono{font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 85%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;gap:20px;height:60px}
.brand{display:flex;align-items:center;gap:9px;font-weight:700}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}
.brand .light{color:var(--muted);font-weight:500}
.nav .links{display:flex;gap:22px;margin-left:8px}
.nav .links a{color:var(--subtext);font-size:14px}
.nav .links a:hover,.nav .links a.active{color:var(--text)}
.nav .right{margin-left:auto;display:flex;align-items:center;gap:10px}
.icon-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);
  width:36px;height:36px;border-radius:9px;cursor:pointer;font-size:15px;display:grid;place-items:center}
.icon-btn:hover{border-color:var(--border-strong)}
.btn{display:inline-flex;align-items:center;gap:7px;border-radius:9px;padding:9px 15px;
  font-weight:600;font-size:14px;cursor:pointer;border:1px solid transparent;transition:background .15s,transform .12s}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-hover)}
.btn.ghost{background:transparent;border-color:var(--border-strong);color:var(--text)}
.btn.ghost:hover{background:var(--surface)}
.menu-btn{display:none}
@media(max-width:720px){
  .menu-btn{display:grid}
  .nav .links{display:none}
  header.open .nav .links{display:flex;flex-direction:column;gap:0;position:absolute;
    top:60px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);
    padding:6px 24px 12px;margin:0}
  header.open .nav .links a{padding:11px 2px;font-size:15px;border-top:1px solid var(--border)}
}

.eyebrow{color:var(--accent);font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
h1{font-size:clamp(32px,4.6vw,46px);line-height:1.1;letter-spacing:-.02em;font-weight:700}
h2{font-size:26px;font-weight:700;letter-spacing:-.01em;margin:6px 0 10px}
h3{font-size:17px;font-weight:700}
p.lead{color:var(--subtext);max-width:620px}
section{padding:60px 0;border-top:1px solid var(--border)}

.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;
  padding:74px 0;border-top:none}
.hero p{color:var(--subtext);font-size:17px;margin:16px 0 26px;max-width:480px}
.hero .cta{display:flex;gap:11px;flex-wrap:wrap}
.codecard{background:var(--crust);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.codecard .bar{display:flex;gap:6px;padding:11px 14px;border-bottom:1px solid var(--border)}
.codecard .bar i{width:11px;height:11px;border-radius:50%;background:var(--border-strong);display:inline-block}
.codecard pre{padding:16px;font-size:12.5px;line-height:1.7;overflow:auto}
@media(max-width:820px){.hero{grid-template-columns:1fr;padding:54px 0}.codecard{display:none}}

.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.feat .c{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}
.feat .c h3{font-size:15px;margin-bottom:5px}
.feat .c p{color:var(--subtext);font-size:13.5px}
@media(max-width:820px){.feat{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.feat{grid-template-columns:1fr}}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.plan.enterprise{grid-column:2;border-color:var(--border-strong);
  background-color:var(--surface);
  background-image:linear-gradient(180deg,rgba(137,180,250,.12),transparent 42%)}
.plan.enterprise::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  border-radius:var(--radius) var(--radius) 0 0;
  background:linear-gradient(90deg,var(--accent),var(--blue) 55%,var(--green))}
.plan{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:26px 22px;display:flex;flex-direction:column;position:relative}
.plan.pop{border-color:var(--accent)}
.plan .tag{position:absolute;top:-10px;left:22px;background:var(--accent);color:var(--on-accent);
  font-size:10.5px;font-weight:700;letter-spacing:.05em;padding:3px 10px;border-radius:999px;text-transform:uppercase}
.plan h3{font-size:18px}
.plan .price{font-size:40px;font-weight:700;letter-spacing:-.02em;margin:8px 0 16px}
.plan .price span{font-size:15px;color:var(--muted);font-weight:500}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.plan li{display:flex;gap:9px;font-size:14px;color:var(--subtext)}
.plan li .ck{color:var(--accent);font-weight:700}
.plan li b{color:var(--text)}
.plan .btn{margin-top:auto;justify-content:center}
@media(max-width:820px){.plans{grid-template-columns:1fr;max-width:420px}.plan.enterprise{grid-column:auto}}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}
.step .n{width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--accent);
  font-weight:700;display:grid;place-items:center;margin-bottom:12px;font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace}
.step h3{font-size:15.5px;margin-bottom:5px}
.step p{color:var(--subtext);font-size:13.5px}
@media(max-width:820px){.steps{grid-template-columns:1fr}}

pre.block{background:var(--crust);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:14px 16px;overflow:auto;font-size:12.5px;line-height:1.7;position:relative}
.k{color:var(--accent)} .s{color:var(--green)} .c{color:var(--muted)}
.copy{position:absolute;top:8px;right:8px;background:var(--surface-2);border:1px solid var(--border);
  color:var(--subtext);border-radius:6px;padding:3px 9px;font-size:11px;cursor:pointer;font-family:inherit}
.copy:hover{color:var(--text)}
.kbd{font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;background:var(--surface-2);border:1px solid var(--border);
  border-radius:5px;padding:1px 6px;font-size:12px;color:var(--accent)}

.footer{padding:34px 0;border-top:1px solid var(--border);color:var(--muted);font-size:13px;text-align:center}
.footer a{color:var(--subtext)} .footer a:hover{color:var(--text)}

.doc{display:grid;grid-template-columns:230px 1fr;gap:42px;align-items:start;padding-top:34px}
.side{position:sticky;top:78px;align-self:start;max-height:calc(100vh - 100px);overflow:auto}
.side .grp{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);
  margin:18px 0 8px;font-weight:700}
.side a{display:block;color:var(--subtext);font-size:13.5px;padding:5px 10px;border-radius:7px}
.side a:hover{background:var(--surface);color:var(--text)}
.side a.active{background:var(--surface);color:var(--accent)}
.content{min-width:0;padding-bottom:80px}
.content section{border-top:none;padding:0 0 46px;scroll-margin-top:90px}
.content h2{scroll-margin-top:90px}
.content p{color:var(--subtext);margin:10px 0;max-width:680px}
.content h3.sub{margin:22px 0 8px}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px}
th,td{text-align:left;padding:9px 11px;border-bottom:1px solid var(--border);vertical-align:top}
th{color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
td code{color:var(--accent);font-size:12.5px}
.req{color:var(--red);font-size:11px;font-weight:700}
.opt{color:var(--muted);font-size:11px}
.method{font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:6px;
  background:color-mix(in srgb,var(--green) 20%,transparent);color:var(--green)}
.ep-title{display:flex;align-items:center;gap:10px;margin:8px 0 4px}
.ep-title .p{font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:15px;font-weight:500}
.tag-beta{font-size:10.5px;color:var(--peach);border:1px solid color-mix(in srgb,var(--peach) 40%,transparent);
  padding:1px 7px;border-radius:999px}
.divider{border:none;border-top:1px solid var(--border);margin:38px 0}
.content .cat-head{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);margin:8px 0 22px}
.content .cat-head + section .ep-title{margin-top:0}
.side-toggle{display:none}
@media(max-width:820px){
  .doc{grid-template-columns:1fr}
  .side{position:static;max-height:none;overflow:visible;margin-bottom:22px;
    border:1px solid var(--border);border-radius:10px;padding:4px 10px}
  .side-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;
    background:none;border:none;color:var(--text);font:inherit;font-weight:600;font-size:14px;
    cursor:pointer;padding:9px 4px}
  .side-toggle .chev{color:var(--muted);transition:transform .15s}
  .side.open .side-toggle .chev{transform:rotate(90deg)}
  .side .grp,.side a,.side #side-endpoints{display:none}
  .side.open .grp,.side.open a,.side.open #side-endpoints{display:block}
}

input[type=text]{background:var(--crust);border:1px solid var(--border);color:var(--text);
  border-radius:8px;padding:9px 11px;font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:13px;width:100%}
input[type=text]:focus{outline:none;border-color:var(--accent)}
.keybar{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:14px 16px;margin:16px 0 8px}
.keybar label{font-size:12px;color:var(--muted)}
.keybar input{max-width:460px}

/* Try-it: a collapsible console, closed by default for a clean page. */
.tryit{margin:16px 0}
.tryit-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--surface);
  border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 14px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}
.tryit-toggle:hover{border-color:var(--border-strong);background:var(--surface-2)}
.tryit-toggle .chev{color:var(--accent);font-size:11px;transition:transform .18s ease}
.tryit.open .tryit-toggle{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}
.tryit.open .tryit-toggle .chev{transform:rotate(90deg)}

.tryit-body{display:none;background:var(--surface);border:1px solid var(--border);
  border-radius:0 var(--radius-sm) var(--radius-sm) var(--radius-sm);padding:18px}
.tryit.open .tryit-body{display:block;animation:tryslide .18s ease}
@keyframes tryslide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

.tryit-body .fields{display:grid;gap:13px;margin-bottom:16px}
.tryit-body .field label{display:flex;align-items:center;gap:7px;font-size:12px;
  font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;color:var(--text);margin-bottom:6px}

.tryit-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tryit .send{background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;
  padding:9px 18px;font-weight:600;font-size:13.5px;cursor:pointer;font-family:inherit;transition:background .15s}
.tryit .send:hover{background:var(--accent-hover)}
.tryit .send:disabled{opacity:.55;cursor:default}
.tryit-hint{font-size:11.5px;color:var(--muted)}

.result{margin-top:16px;display:none}
.result.show{display:block}
.result-msg{font-size:13px;color:var(--muted);padding:4px 0}
.result-msg.bad{color:var(--red)}
.result-head{display:flex;align-items:center;margin-bottom:8px}
.status-badge{font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:11.5px;font-weight:700;
  padding:3px 10px;border-radius:999px}
.status-badge.ok{color:var(--green);background:color-mix(in srgb,var(--green) 16%,transparent)}
.status-badge.bad{color:var(--red);background:color-mix(in srgb,var(--red) 16%,transparent)}
.result-body{background:var(--crust);border:1px solid var(--border);border-radius:8px;
  padding:13px 15px;font-family:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:12px;line-height:1.7;
  white-space:pre-wrap;word-break:break-word;max-height:380px;overflow:auto;margin:0}

/* SSE (live stream) Try-it output */
.sse-count{font-size:11.5px;color:var(--subtext);margin-left:10px}
.sse-stop{margin-left:auto;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;
  color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 12px}
.sse-stop:disabled{opacity:.5;cursor:default}
.sse-log .sse-line{display:flex;gap:9px;padding:2px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 45%,transparent)}
.sse-log .sse-tag{flex:none;min-width:64px;font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;opacity:.85}
.sse-log .sse-data{flex:1;min-width:0;word-break:break-word}
.sse-line.sse-message .sse-tag{color:var(--green)}
.sse-line.sse-open .sse-tag,.sse-line.sse-closed .sse-tag{color:var(--subtext)}
.sse-line.sse-limit .sse-tag,.sse-line.sse-error .sse-tag{color:var(--red)}

/* ── Polish: smoothness + a touch of pull (lightweight, all CSS) ── */
/* Skeleton shimmer while endpoints load — reserves space, no layout jump. */
.skeleton{display:flex;flex-direction:column;gap:14px;padding:6px 0}
.skel-row{height:62px;border-radius:var(--radius-sm);
  background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 37%,var(--surface) 63%);
  background-size:400% 100%;animation:shimmer 1.4s ease infinite}
.skel-row:nth-child(2){width:92%}.skel-row:nth-child(3){width:97%}.skel-row:nth-child(4){width:88%}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-100% 0}}

/* Scroll-reveal — class added by JS, so no-JS keeps everything visible. */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.reveal.in{opacity:1;transform:none}

/* Header gains a soft shadow once the page is scrolled. */
header{transition:box-shadow .25s ease}
header.scrolled{box-shadow:0 6px 22px -10px rgba(0,0,0,.55)}

/* Primary CTA: a gentle accent glow that grows on hover. */
.btn.primary{box-shadow:0 4px 16px -8px color-mix(in srgb,var(--accent) 55%,transparent);
  transition:background .15s,transform .12s,box-shadow .2s}
.btn.primary:hover{box-shadow:0 10px 26px -8px color-mix(in srgb,var(--accent) 70%,transparent)}

/* Cards lift slightly on hover. */
.feat .c,.plan,.step{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.feat .c:hover,.step:hover{transform:translateY(-3px);border-color:var(--border-strong);
  box-shadow:0 12px 30px -14px rgba(0,0,0,.45)}
.plan:hover{transform:translateY(-3px);box-shadow:0 16px 38px -16px rgba(0,0,0,.5)}

/* Faint accent glow behind the hero for a bit of depth/pull. */
.hero{position:relative}
.hero::before{content:"";position:absolute;inset:-20% -10% auto auto;width:460px;height:460px;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%);
  filter:blur(20px);z-index:-1;pointer-events:none}

/* Respect users who prefer less motion. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .hero::before{display:none}
}
