:root{--box-fill:light-dark(#0b0d10,#000);--box-text:#f1f3f6;--box-text-2:light-dark(#9aa3af,#8b94a1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--rt-bg);color:var(--rt-text);font:400 16px/1.55 var(--rt-font-sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}code{font-family:var(--rt-font-mono)}:focus-visible{outline:2px solid var(--rt-accent);outline-offset:2px;border-radius:6px}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:root[data-theme=light] .for-dark,:root[data-theme=dark] .for-light{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme]) .for-light{display:none}}@media not (prefers-color-scheme:dark){:root:not([data-theme]) .for-dark{display:none}}:root:not(.js) :is(.copy,.live,rt-theme-select,.filter){display:none}.nav{border-bottom:1px solid var(--rt-line);align-items:center;gap:28px;height:68px;padding:0 40px;display:flex}.brand img{width:auto;height:34px;display:block}.nav-links{color:var(--rt-text-2);gap:26px;font-size:15px;display:flex}.nav-links a:hover,.gh:hover{color:var(--rt-text)}.nav-right{align-items:center;gap:14px;margin-left:auto;display:flex}.ver{border:1px solid var(--rt-line);font:500 var(--rt-text-min)/1 var(--rt-font-mono);color:var(--rt-text-2);border-radius:999px;padding:6px 9px}.gh{color:var(--rt-text-2);align-items:center;gap:7px;font-size:15px;display:flex}.btn{background:var(--rt-accent);height:40px;color:var(--rt-on-accent);white-space:nowrap;border:0;border-radius:9px;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.btn.ghost{color:var(--rt-text);box-shadow:inset 0 0 0 1px var(--rt-line-strong);background:0 0}.hero{text-align:center;background:radial-gradient(900px 480px at 50% 35%, var(--rt-glow), transparent 70%);padding:96px 40px 104px;overflow:hidden}.hero h1{font:600 76px/1.02 var(--rt-font-sans);letter-spacing:-.045em;margin:0 0 20px}.hero .lead{letter-spacing:-.015em;max-width:600px;color:var(--rt-accent-text);margin:0 auto 38px;font-size:30px;font-weight:600;line-height:1.3}.install{text-align:left;max-width:660px;margin:0 auto}.tabs{scrollbar-width:none;gap:2px;display:none;overflow-x:auto}.js .tabs{display:flex}.tabs button{color:var(--rt-text-3);font-size:var(--rt-text-min);background:0 0;border:0;border-radius:8px 8px 0 0;flex:none;padding:8px 12px;font-weight:500}.tabs button[aria-selected=true]{background:var(--rt-surface);color:var(--rt-text)}.cmd{border:1px solid var(--rt-line);border-radius:0 var(--rt-radius) var(--rt-radius) var(--rt-radius);background:var(--rt-surface);align-items:flex-start;gap:10px;padding:12px 10px 12px 14px;display:flex}.cmd code{min-width:0;font-size:var(--rt-text-min);overflow-wrap:anywhere;flex:1;line-height:1.55}.copy{border:1px solid var(--rt-line);background:var(--rt-surface-2);height:30px;color:var(--rt-text-2);font-size:var(--rt-text-min);border-radius:8px;flex:none;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.copy:hover{color:var(--rt-text)}.inst-note{font-size:var(--rt-text-min);color:var(--rt-text-3);margin:8px 2px 0;line-height:1.45}.inst-name{font-size:var(--rt-text-min);color:var(--rt-text-2);margin:18px 2px 6px;font-weight:600}.js .install .tabs~[role=tabpanel]:not(.on),.js .inst-name{display:none}.band{border-top:1px solid var(--rt-line);padding:96px 40px}.band.alt{background:var(--rt-bg-alt)}.band-in{max-width:1180px;margin:0 auto}.band-in.two{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:64px;display:grid}.js .reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(28px)}.js .reveal.in{opacity:1;transform:none}.kicker{font:500 var(--rt-text-min)/1 var(--rt-font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--rt-accent-text);margin-bottom:16px}.band h2{font:600 44px/1.08 var(--rt-font-sans);letter-spacing:-.035em;margin:0 0 18px}.band h2 .second{color:var(--rt-accent-text)}.band-copy p,.band-head p{max-width:620px;color:var(--rt-text-2);margin:0 0 22px;font-size:17px;line-height:1.65}.band p code{background:var(--rt-surface-2);border-radius:6px;padding:1px 6px;font-size:.9em}.band-head{text-align:center;max-width:760px;margin:0 auto 40px}.band-head p{margin:0 auto}.steps{counter-reset:step;margin:6px 0 0;padding:0;list-style:none}.steps li{border-top:1px solid var(--rt-line);color:var(--rt-text-2);counter-increment:step;padding:14px 0 14px 44px;font-size:16px;line-height:1.55;position:relative}.steps li:before{content:counter(step);border:1px solid var(--rt-line-strong);width:28px;height:28px;font:600 var(--rt-text-min) var(--rt-font-mono);color:var(--rt-accent-text);border-radius:50%;place-items:center;display:grid;position:absolute;top:13px;left:0}.steps b,.flow li b{color:var(--rt-text);font-weight:600}.panel{border:1px solid var(--rt-line-strong);background:var(--rt-surface);box-shadow:0 30px 80px -40px var(--rt-glow);border-radius:16px;overflow:hidden;container-type:inline-size}.panel-h{border-bottom:1px solid var(--rt-line);font:500 var(--rt-text-min)/1.3 var(--rt-font-mono);color:var(--rt-text-3);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex}.live{color:var(--rt-accent-text);background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:4px 8px;display:inline-flex}.live:hover{background:var(--rt-surface-2)}.live i{background:var(--rt-accent);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite pulse}.live .when-paused,.paused .live .when-running{display:none}.paused .live .when-paused{display:inline}@keyframes pulse{50%{opacity:.25}}.bb{width:100%;height:auto;padding:8px 12px 0;display:block}.bb .node rect{fill:var(--rt-surface-2);stroke:var(--rt-line-strong)}.bb text{font-family:var(--rt-font-mono);font-size:18px}.bb .t1{fill:var(--rt-text);font-weight:600}.bb .t2{fill:var(--rt-text-3)}.bb .feed{fill:none;stroke:var(--rt-line-strong);stroke-width:1.5px;stroke-dasharray:3 4}.bb .lane{fill:none;stroke:var(--rt-line-strong);stroke-width:1.2px}.bb .api rect{fill:var(--box-fill);stroke:var(--rt-accent);stroke-opacity:.55}.bb .api text{text-anchor:middle}.bb .api .t1{fill:var(--box-text);font-size:24px}.bb .api .t2{fill:var(--box-text-2)}.bb .req rect{fill:var(--rt-surface);stroke:var(--rt-accent)}.bb .req text{text-anchor:middle;fill:var(--rt-accent-text);font-weight:600}.bb .rep{fill:var(--rt-2xx)}.bb .rep.c4{fill:var(--rt-4xx)}.bb .rep.c5{fill:var(--rt-5xx)}.bb .rep.c3{fill:var(--rt-text-3)}.bb .req,.bb .rep{opacity:0}.js .bb .req,.js .bb .rep{animation-duration:5s;animation-timing-function:linear;animation-iteration-count:infinite;animation-delay:var(--delay)}.js .bb .req{animation-name:request}.js .bb .rep{animation-name:reply}@keyframes request{0%{opacity:0;transform:translate(var(--x0), var(--y0))}6%,40%{opacity:1}45%,to{opacity:0;transform:translate(var(--x1), var(--y1))}}@keyframes reply{0%,50%{opacity:0;transform:translate(var(--x1), var(--y1))}52%,88%{opacity:1}90%,to{opacity:0;transform:translate(var(--x0), var(--y0))}}.bb-v{font:400 var(--rt-text-min)/1.4 var(--rt-font-mono);padding:16px 16px 0;display:none}.bb-v .node{border:1px solid var(--rt-line-strong);border-radius:var(--rt-radius);background:var(--rt-surface-2);color:var(--rt-text-3);justify-content:space-between;gap:10px;padding:10px 14px;display:flex}.bb-v .node b{color:var(--rt-text);font-weight:600}.bb-v .node.api{border-color:color-mix(in srgb, var(--rt-accent) 55%, transparent);background:var(--box-fill);color:var(--box-text-2)}.bb-v .node.api b{color:var(--box-text)}.bb-v .feed{border-left:1.5px dashed var(--rt-line-strong);width:0;height:18px;margin:0 auto}.bb-v .methods{flex-wrap:wrap;justify-content:center;gap:6px;padding:10px 0;display:flex}.bb-v .methods span{border:1px solid var(--rt-accent);color:var(--rt-accent-text);border-radius:999px;padding:2px 9px;font-weight:600}.js .bb-v .methods span{animation-name:sent;animation-duration:5s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--delay)}@keyframes sent{0%,to{opacity:.35}10%,30%{opacity:1}}@container (width<=520px){.bb{display:none}.bb-v{display:block}}.faults{gap:8px;margin:12px 16px 0;padding:0;list-style:none;display:grid}.fault{border:1px solid var(--rt-line);border-left:3px solid var(--rt-error);background:var(--rt-surface-2);font:400 var(--rt-text-min)/1.5 var(--rt-font-mono);border-radius:8px;padding:12px 14px}.js .fault{opacity:0;animation-name:cycle;animation-duration:calc(var(--faults) * 4s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:calc(var(--n) * 4s);grid-area:1/1}.fault.warning{border-left-color:var(--rt-warning)}.fault .f1{font-family:var(--rt-font-sans);font-size:15px;font-weight:600}.fault .sev{font-family:var(--rt-font-mono);color:var(--rt-error);margin-right:10px}.fault.warning .sev{color:var(--rt-warning)}.fault .code{color:var(--rt-text-3);font-weight:400}.fault .f2{color:var(--rt-text-2);overflow-wrap:anywhere}.fault .f2 b{color:var(--rt-text);font-weight:600}.fault .st{color:var(--rt-text-3)}.fault .fs{font-family:var(--rt-font-sans);overflow-wrap:anywhere;margin:4px 0 2px;font-size:15px;font-weight:600;line-height:1.4}:is(.paused,.away) :is(.req,.rep,.fault,.live i,.methods span){animation-play-state:paused}.counts{border-top:1px solid var(--rt-line);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px;display:grid}.counts div{font:400 var(--rt-text-min)/1.35 var(--rt-font-mono);color:var(--rt-text-3);padding:12px 16px}.counts div+div{border-left:1px solid var(--rt-line)}.counts b{font:600 22px/1.2 var(--rt-font-num);font-variant-numeric:tabular-nums;color:var(--rt-text);display:block}:is(.counts,.real-stats,.sc-stats) b.err,:is(.mini,.sc-table) td.err{color:var(--rt-error)}:is(.counts,.real-stats,.sc-stats) b.warn,:is(.mini,.sc-table) td.warn{color:var(--rt-warning)}@container (width<=560px){.counts{grid-template-columns:minmax(0,1fr)}.counts div+div{border-top:1px solid var(--rt-line);border-left:0}}.real-stats{background:var(--rt-line);border:1px solid var(--rt-line);border-radius:var(--rt-radius-card);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.real-stats div{background:var(--rt-surface);font-size:var(--rt-text-min);color:var(--rt-text-3);padding:18px 20px}.real-stats b{font:600 30px/1.15 var(--rt-font-num);letter-spacing:-.02em;color:var(--rt-text);font-variant-numeric:tabular-nums;display:block}.mini{border-collapse:separate;border-spacing:0;background:var(--rt-surface);border:1px solid var(--rt-line);border-radius:var(--rt-radius-card);width:100%;font-size:15px;overflow:hidden}.mini thead th{padding:10px 16px}.mini tbody :is(td,th){border-top:1px solid var(--rt-line-faint);padding:10px 16px}:is(.mini,.sc-table) thead th{text-align:left;font-size:var(--rt-text-min);color:var(--rt-text-2);border-bottom:1px solid var(--rt-line);white-space:nowrap;font-weight:600}:is(.mini,.sc-table) thead th.num{text-align:right}:is(.mini,.sc-table) tbody tr:first-child :is(td,th){border-top:0}:is(.mini,.sc-table) .api{font:400 var(--rt-text-min) var(--rt-font-mono);color:var(--rt-text);text-align:left}:is(.mini,.sc-table) td.num{text-align:right;font-family:var(--rt-font-num);font-variant-numeric:tabular-nums;font-weight:500}@media (width<=760px){.real-stats b{font-size:22px}.mini :is(th,td):nth-child(2){display:none}}.rp{max-width:1080px;margin:0 auto}.rp-tabs{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:18px;overflow:visible}.rp-tabs button{border:1px solid var(--rt-line);color:var(--rt-text-2);border-radius:999px;padding:8px 16px}.rp-tabs button[aria-selected=true]{border-color:var(--rt-line-strong);background:var(--rt-surface);color:var(--rt-text);box-shadow:0 1px 2px #0000001f}.rp-win{border:1px solid var(--rt-line-strong);background:var(--rt-surface);box-shadow:0 40px 100px -40px var(--rt-glow), 0 20px 50px -30px #0006;border-radius:16px;overflow:hidden}.rp-bar{border-bottom:1px solid var(--rt-line);height:38px;font-size:var(--rt-text-min);color:var(--rt-text-3);align-items:center;gap:7px;padding:0 14px;display:flex}.rp-bar i{background:var(--rt-line-strong);border-radius:50%;flex:none;width:10px;height:10px}.rp-bar span{text-overflow:ellipsis;white-space:nowrap;margin-left:10px;overflow:hidden}.js .rp-views{aspect-ratio:var(--rp-ratio)}.js .rp-views>[role=tabpanel]:not(.on){display:none}.rp-views a,.rp-views img{width:100%;height:auto;display:block}.rp-views a{cursor:zoom-in}.rp-views h3{border-top:1px solid var(--rt-line);margin:0;padding:10px 14px;font-size:15px}.js .rp-views h3{display:none}.rp-cap{font-size:var(--rt-text-min);text-align:center;color:var(--rt-text-3);margin:14px auto 0}.flow{border:1px solid var(--rt-line);border-radius:var(--rt-radius-card);background:var(--rt-surface);padding:22px}.flow .you{border:1.5px solid var(--rt-accent);background:var(--rt-accent-soft);max-width:92%;color:var(--rt-accent-strong);box-shadow:0 0 0 4px color-mix(in srgb, var(--rt-accent) 16%, transparent), 0 12px 30px -14px var(--rt-glow);border-radius:14px 14px 4px;flex-direction:column;gap:6px;margin-left:auto;padding:14px 16px;display:flex}.flow .you .who{font:600 var(--rt-text-min) var(--rt-font-sans)}.flow .you code{font-size:var(--rt-text-min);overflow-wrap:anywhere;color:var(--rt-text);line-height:1.5}.flow ol{margin:18px 0 0;padding:0;list-style:none}.flow li{border-top:1px solid var(--rt-line);color:var(--rt-text-2);padding:12px 0 12px 30px;font-size:15px;line-height:1.5;position:relative}.flow li:before{content:"";background:var(--rt-accent);width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in srgb, var(--rt-accent) 20%, transparent);border-radius:50%;position:absolute;top:19px;left:4px}.cards3{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.card{border:1px solid var(--rt-line);border-radius:var(--rt-radius-card);background:var(--rt-surface);flex-direction:column;gap:8px;padding:24px;display:flex}.card code{border:1px solid var(--rt-line-strong);font-size:var(--rt-text-min);color:var(--rt-accent-text);border-radius:999px;align-self:flex-start;padding:3px 9px}.card b{letter-spacing:-.01em;margin-top:6px;font-size:20px;font-weight:600}.card p{color:var(--rt-text-2);margin:0;font-size:15px;line-height:1.6}.card-links{border-top:1px solid var(--rt-line);margin-top:auto;padding-top:14px}.arrow-link{color:var(--rt-accent-text);align-items:center;gap:6px;font-size:15px;font-weight:500;display:inline-flex}.arrow-link:hover{text-underline-offset:3px;text-decoration:underline}.band.contact{background:radial-gradient(700px 300px at 0% 100%, var(--rt-glow), transparent 70%), var(--rt-bg-tint)}.band.contact .band-head{margin-bottom:0}.band.contact p a,.band-copy p a,.sc-lead a,.rp-cap a{color:var(--rt-accent-text);text-underline-offset:3px;text-decoration:underline 1px}.links{flex-wrap:wrap;justify-content:center;gap:12px 22px;margin-top:28px;display:flex}.foot{border-top:1px solid var(--rt-line);padding:48px 40px}.foot-in{max-width:1180px;font-size:var(--rt-text-min);grid-template-columns:2fr 1fr 1fr;gap:32px;margin:0 auto;display:grid}.foot-in>div{flex-direction:column;gap:8px;display:flex}.foot-brand img{width:auto;height:56px}.foot-brand p{color:var(--rt-text-3);margin:10px 0 0}.foot-in b{margin-bottom:4px;font-weight:600}.foot-in a{color:var(--rt-text-2)}.foot-in a:hover{color:var(--rt-text)}@media (width<=1100px){.band-in.two{grid-template-columns:minmax(0,1fr);gap:40px}}@media (width<=760px){.nav{gap:14px;height:60px;padding:0 16px}.nav-links,.ver,.gh span{display:none}.nav .btn{height:36px;padding:0 14px}.hero{padding:56px 16px 60px}.hero h1{font-size:44px}.hero .lead{font-size:24px}.tabs button{padding:8px 9px}.band{padding:60px 16px}.band h2{font-size:32px}.cards3{grid-template-columns:minmax(0,1fr)}.foot{padding:36px 16px}.foot-in{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}@media (width<=400px){.nav{gap:10px;padding:0 12px}.nav .gh{display:none}.nav-right{gap:10px}.nav .brand img{height:28px}.nav .btn{font-size:var(--rt-text-min);padding:0 12px}}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transition:none;transform:none}.bb .req,.bb .rep,.live{display:none}.live i,.bb-v .methods span{opacity:1;animation:none}.js .fault{opacity:1;grid-area:auto;animation:none}}
