:root{--bg:#0a0c0f;--panel:#0d1013;--surface:#11151a;--surface-2:#12171d;--surface-3:#10171a;--ctl:#161b21;--ctl-hover:#171c22;--line:#1f252d;--line-3:#181d24;--ctl-line:#2a323d;--text:#d6dae0;--text-2:#b6bec8;--hi:#e6edf3;--mut:#8b949e;--dim:#5c6570;--sep:#3a424c;--acc:#5ee0c8;--acc-hover:#8eeadb;--acc-line:#244a44;--acc-bg:#0f1a19;--acc-fill:#1d3a36;--acc-ink:#06231f;--pass:#3fb950;--pass-line:#1d3a26;--pass-bg:#0f1a13;--fail:#f85149;--fail-line:#3a1d1d;--fail-bg:#1a1214;--fail-ring:#2a1414;--fail-cell:#5a2323;--fail-row:#140f11;--warn:#d29922;--warn-line:#3a2f12;--warn-bg:#1c1710;--warn-badge:#2a2210;--run:#79c0ff;--run-line:#1d3050;--run-bg:#0f1520;--code-string:#a5d6a7;--video-bg:#05070a;--phone-bg:#f4f4f2;--phone-text:#1a1a1a;--phone-line:#d0d0d0;--font:"IBM Plex Sans",system-ui,sans-serif;--mono:"JetBrains Mono","SF Mono",Menlo,monospace;color-scheme:dark}:root[data-theme=light]{--bg:#f6f8fa;--panel:#ffffff;--surface:#ffffff;--surface-2:#f1f4f7;--surface-3:#eef1f4;--ctl:#eaeef2;--ctl-hover:#e2e7ec;--line:#d0d7de;--line-3:#dfe4e9;--ctl-line:#c4ccd4;--text:#24292f;--text-2:#4c545c;--hi:#0b1117;--mut:#57606a;--dim:#7d8590;--sep:#b7c0c9;--acc:#0d8f7b;--acc-hover:#0a7a69;--acc-line:#9fdfd0;--acc-bg:#e6f7f3;--acc-fill:#cdeee6;--acc-ink:#ffffff;--pass:#1a7f37;--pass-line:#a8dbb5;--pass-bg:#e8f7ec;--fail:#cf222e;--fail-line:#f5b4b4;--fail-bg:#fdecec;--fail-ring:#f5c6c6;--fail-cell:#f0a3a3;--fail-row:#fff2f2;--warn:#9a6700;--warn-line:#ecd28a;--warn-bg:#fff6dd;--warn-badge:#fdedc2;--run:#0969da;--run-line:#a9cdf5;--run-bg:#e7f1fc;--code-string:#116329;--video-bg:#e9ecef;--phone-bg:#f4f4f2;--phone-text:#1a1a1a;--phone-line:#d0d0d0;color-scheme:light}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f6f8fa;--panel:#ffffff;--surface:#ffffff;--surface-2:#f1f4f7;--surface-3:#eef1f4;--ctl:#eaeef2;--ctl-hover:#e2e7ec;--line:#d0d7de;--line-3:#dfe4e9;--ctl-line:#c4ccd4;--text:#24292f;--text-2:#4c545c;--hi:#0b1117;--mut:#57606a;--dim:#7d8590;--sep:#b7c0c9;--acc:#0d8f7b;--acc-hover:#0a7a69;--acc-line:#9fdfd0;--acc-bg:#e6f7f3;--acc-fill:#cdeee6;--acc-ink:#ffffff;--pass:#1a7f37;--pass-line:#a8dbb5;--pass-bg:#e8f7ec;--fail:#cf222e;--fail-line:#f5b4b4;--fail-bg:#fdecec;--fail-ring:#f5c6c6;--fail-cell:#f0a3a3;--fail-row:#fff2f2;--warn:#9a6700;--warn-line:#ecd28a;--warn-bg:#fff6dd;--warn-badge:#fdedc2;--run:#0969da;--run-line:#a9cdf5;--run-bg:#e7f1fc;--code-string:#116329;--video-bg:#e9ecef;--phone-bg:#f4f4f2;--phone-text:#1a1a1a;--phone-line:#d0d0d0;color-scheme:light}}body{margin:0;background:var(--bg)}a{color:var(--acc);text-decoration:none}a:hover{color:var(--acc-hover)}*{box-sizing:border-box}.app{width:1440px;height:900px;display:flex;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;font-size:13px;line-height:1.4;overflow:hidden}.mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace}.pass{color:var(--pass)}.fail{color:var(--fail)}.warn{color:var(--warn)}.run{color:var(--run)}.dim{color:var(--dim)}.mut{color:var(--mut)}.acc{color:var(--acc)}.hi{color:var(--hi)}.lbl{font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.side{width:208px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{height:48px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--line);font-weight:600;letter-spacing:.02em;color:var(--hi)}.brand i{width:18px;height:18px;background:var(--acc);display:inline-block}.brand i,.proj{border-radius:4px}.proj{margin:10px 8px 4px;align-items:center;justify-content:space-between;padding:6px 10px;border:1px solid var(--line);background:var(--surface)}.nav,.proj{display:flex}.nav{flex-direction:column;gap:1px;padding:6px 8px}.nav a{display:flex;align-items:center;gap:10px;height:30px;padding:0 10px;border-radius:4px;color:var(--mut);font-size:13px}.nav a.on{background:var(--ctl-hover);color:var(--hi);box-shadow:inset 2px 0 0 var(--acc)}.nav svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.nav .grp{padding:10px 10px 3px}.badge{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10.5px;padding:1px 6px;border-radius:3px;background:var(--warn-badge);color:var(--warn)}.main{flex-grow:1;display:flex;flex-direction:column;min-width:0}.top{height:48px;flex-shrink:0;border-bottom:1px solid var(--line);justify-content:space-between;padding:0 20px;gap:12px}.crumb,.top{display:flex;align-items:center}.crumb{gap:8px;font-size:13px;min-width:0}.crumb .sep{color:var(--sep)}.body{padding:20px;display:flex;flex-direction:column;gap:16px;flex-grow:1;min-height:0;overflow:hidden}.btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:4px;border:1px solid var(--ctl-line);background:var(--ctl);color:var(--hi);font-size:12px;font-weight:500;white-space:nowrap;cursor:default;cursor:pointer}.btn:hover{background:var(--ctl-hover);border-color:var(--sep)}.btn.primary{color:var(--bg)}.btn.primary,.btn.primary:hover{background:var(--acc);border-color:var(--acc)}.btn.primary:hover{opacity:.85}.btn.danger{color:var(--fail);border-color:var(--fail-line);background:var(--fail-bg)}.btn.ghost{background:transparent;border-color:transparent;color:var(--mut)}.btn.ghost:hover{background:var(--ctl);color:var(--hi);border-color:var(--ctl-line)}.btn.danger:hover{background:var(--fail-line);border-color:var(--fail)}.btn.sm{height:24px;padding:0 9px;font-size:11.5px}.btn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:3px;border:1px solid var(--ctl-line);background:var(--surface);color:var(--mut);font-size:11px;font-family:JetBrains Mono,monospace;white-space:nowrap}.chip.hi{color:var(--hi)}.chip.acc{color:var(--acc);border-color:var(--acc-line);background:var(--acc-bg)}.chip.pass{color:var(--pass);border-color:var(--pass-line);background:var(--pass-bg)}.chip.fail{color:var(--fail);border-color:var(--fail-line);background:var(--fail-bg)}.chip.warn{color:var(--warn);border-color:var(--warn-line);background:var(--warn-bg)}.chip.run{color:var(--run);border-color:var(--run-line);background:var(--run-bg)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot.pass{background:var(--pass)}.dot.fail{background:var(--fail)}.dot.warn{background:var(--warn)}.dot.run{background:var(--run)}.dot.dim{background:var(--sep)}.dot.acc{background:var(--acc)}.tabs{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 6px}.tab{padding:8px 12px;font-size:12.5px;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:default;white-space:nowrap;cursor:pointer}.tab.on,.tab:hover{color:var(--hi)}.tab.on{border-bottom-color:var(--acc)}.nav a,.proj,.tg,[data-row],[role=button]{cursor:pointer}.nav a:hover{background:var(--ctl);color:var(--hi)}.chip[role=button]:hover{color:var(--hi);border-color:var(--sep)}tr[data-row]:hover td{background:var(--surface)}span[role=button]:not(.btn):not(.chip):not(.tab):not(.tg):hover,td[data-row]:hover{color:var(--hi);text-decoration:underline}.tg:hover{outline:1px solid var(--sep)}.card{border:1px solid var(--line);border-radius:4px;background:var(--panel);display:flex;flex-direction:column;min-width:0}.card .hd{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line-3)}.card .hd h3{margin:0;font-size:13px;font-weight:600;color:var(--hi)}.stat{padding:12px 14px;border:1px solid var(--line);background:var(--panel);border-radius:4px;display:flex;flex-direction:column;gap:4px}.stat .v{font-family:JetBrains Mono,monospace;font-size:22px;color:var(--hi);line-height:1.1}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:500;font-size:10.5px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);white-space:nowrap}td,th{padding:8px 12px}td{border-bottom:1px solid var(--ctl);font-size:12.5px;vertical-align:middle;white-space:normal}td .btn,td .chip{white-space:nowrap}tr.sel td{background:var(--surface-2)}.in{height:30px;border:1px solid var(--ctl-line);border-radius:4px;background:var(--bg);display:flex;align-items:center;padding:0 10px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--hi)}.in.ph{color:var(--dim)}.field{display:flex;flex-direction:column;gap:5px}.tg{width:30px;height:16px;border-radius:8px;background:var(--ctl-line);position:relative;flex-shrink:0}.tg i{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--mut)}.tg.on{background:var(--acc)}.tg.on i{left:16px;background:var(--bg)}pre{margin:0;font-family:JetBrains Mono,monospace;font-size:11.5px;line-height:1.6;white-space:pre-wrap;color:var(--mut)}.code{border:1px solid var(--line);border-radius:4px;background:var(--bg);padding:10px 12px}.k{color:var(--run)}.s{color:var(--code-string)}.c{color:var(--dim)}.add{color:var(--pass)}.del{color:var(--fail)}.bar{height:4px;background:var(--ctl);border-radius:2px;overflow:hidden}.bar i{display:block;height:100%;background:var(--acc)}.thumb{border-radius:3px;background:var(--ctl);border:1px solid var(--line);flex-shrink:0}.kbd{font-family:JetBrains Mono,monospace;font-size:10.5px;padding:1px 5px;border:solid var(--ctl-line);border-width:1px 1px 2px;border-radius:3px;color:var(--mut)}.spark{display:flex;align-items:flex-end;gap:2px;height:28px}.spark i{width:6px;background:var(--acc-line);border-radius:1px}.spark i.f{background:var(--fail)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--mut);text-align:center}.phone{width:300px;height:640px;border-radius:24px;background:var(--ctl);border:1px solid var(--ctl-line);padding:9px;flex-shrink:0}.screen{width:282px;height:622px;border-radius:16px;overflow:hidden;background:var(--phone-bg);color:var(--phone-text);display:flex;flex-direction:column}.app.bare{display:block}body,html{height:100%}.app{width:100vw;height:100vh}@media (max-height:899px),(max-width:1439px){.body{overflow:hidden auto}}@media (max-width:1180px){.main [style*="1fr) 400px"]{grid-template-columns:minmax(0,1fr)!important}.main [style*="width:400px"]{width:auto!important}.main [style*="width:380px"]{width:300px!important}.top{flex-wrap:wrap;height:auto;min-height:48px;padding:6px 20px}[data-grid-table]{min-width:1040px}.main .card[style*="overflow:hidden"]{overflow:auto!important}}.brand-glyph{border-radius:4px;display:inline-block}.brand-glyph.on-light{display:none}:root[data-theme=light] .brand-glyph.on-light{display:inline-block}:root[data-theme=light] .brand-glyph.on-dark{display:none}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .brand-glyph.on-light{display:inline-block}:root:not([data-theme=dark]) .brand-glyph.on-dark{display:none}}.app.bare{overflow:hidden auto}.toasts{position:fixed;right:16px;bottom:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:stretch;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px 10px 10px;box-shadow:0 8px 24px rgb(0 0 0/.25);color:var(--text);font-size:12.5px;line-height:1.4;cursor:pointer;animation:toast-in .16s ease-out}.toast-bar{width:3px;border-radius:2px;background:var(--acc);flex-shrink:0}.toast.error .toast-bar{background:var(--fail)}.toast.success .toast-bar{background:var(--pass)}.toast-text{word-break:break-word}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.theme-btn{display:inline-flex;align-items:center;gap:6px}.lp{background:var(--bg);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;font-size:15px;line-height:1.55;min-height:100vh}.lp-wrap{max-width:1120px;margin:0 auto;padding:0 48px}.lp-rule{height:1px;background:var(--line)}.lp-accent{color:var(--acc)}.lp-nav{border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.lp-nav-in{display:flex;align-items:center;gap:32px;height:64px}.lp-brand{font-size:16px;font-weight:600;color:var(--hi);letter-spacing:-.01em;margin-left:-3px}.lp-nav-links{display:flex;gap:26px;font-size:14px}.lp-nav-links a{color:var(--mut);text-decoration:none}.lp-nav-links a:hover{color:var(--hi)}.lp-nav-cta{margin-left:auto;display:flex;align-items:center;gap:16px}.lp-quiet{font-size:14px;color:var(--mut);text-decoration:none}.lp-quiet:hover{color:var(--hi)}.lp-pri{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);font-weight:500}.lp-pri:hover{background:var(--acc-hover);border-color:var(--acc-hover);color:var(--acc-ink)}.lp-hero{padding-top:100px;padding-bottom:88px;display:flex;flex-direction:column;gap:26px;max-width:860px;margin-left:auto;margin-right:auto}.lp-eyebrow{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;height:26px;padding:0 11px;border:1px solid var(--acc-line);border-radius:13px;background:var(--acc-bg);font-size:12px;color:var(--mut)}.lp-eyebrow-tag{font-size:11px;color:var(--acc)}.lp-h1{font-size:58px;line-height:1.08;letter-spacing:-.035em;font-weight:600;color:var(--hi)}.lp-h1,.lp-lede{margin:0;text-wrap:pretty}.lp-lede{font-size:19px;line-height:1.6;color:var(--mut);max-width:620px}.lp-actions{display:flex;gap:12px;padding-top:6px;flex-wrap:wrap}.lp-actions .btn{height:44px;padding:0 22px;font-size:14px;text-decoration:none}.lp-facts{display:flex;gap:14px;padding-top:10px;font-size:12px;color:var(--dim);flex-wrap:wrap}.lp-term-wrap{padding-bottom:96px}.lp-term{border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}.lp-term-bar{display:flex;align-items:center;gap:6px;height:38px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--surface)}.lp-dot{width:9px;height:9px;border-radius:50%;background:var(--ctl-line)}.lp-term-title{font-size:11.5px;color:var(--dim);margin-left:8px}.lp-term-body{padding:20px 22px;font-size:13px;line-height:2;display:flex;flex-direction:column;overflow-x:auto}.lp-term-dim{color:var(--dim);padding-left:14px}.lp-term-pass{color:var(--pass);padding-left:14px}.lp-sec{padding-top:88px;padding-bottom:88px}.lp-sec-last{padding-top:20px;padding-bottom:96px}.lp-head{display:flex;flex-direction:column;gap:12px;margin-bottom:44px}.lp-lbl{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}.lp-lbl-mut{color:var(--mut)}.lp-lbl-acc{color:var(--acc)}.lp-h2{font-size:36px;line-height:1.2;letter-spacing:-.025em;text-wrap:pretty}.lp-h2,.lp-h3{margin:0;font-weight:600;color:var(--hi)}.lp-h3{font-size:16.5px;letter-spacing:-.01em}.lp-sub{font-size:16px;max-width:620px;text-wrap:pretty}.lp-body,.lp-sub{margin:0;color:var(--mut)}.lp-body{font-size:14.5px}.lp-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:28px;gap:28px}.lp-step{display:flex;flex-direction:column;gap:14px}.lp-step-top{display:flex;align-items:center;gap:12px}.lp-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--acc-line);border-radius:4px;background:var(--acc-bg);color:var(--acc);font-size:12px;flex-shrink:0}.lp-code{margin-top:4px;padding:11px 13px;border:1px solid var(--line);border-radius:5px;background:var(--panel);font-size:12px;color:var(--mut);overflow-x:auto;white-space:nowrap}.lp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px}.lp-card{display:flex;flex-direction:column;gap:11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:22px}.lp-card-lg{padding:26px;gap:16px}.lp-card-acc{border-color:var(--acc-line);background:var(--acc-bg)}.lp-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.lp-list{margin:0;padding:0;list-style:none;flex-direction:column}.lp-list,.lp-list li{display:flex;gap:11px}.lp-list li{align-items:flex-start;color:var(--mut);font-size:14.5px}.lp-list-hi li{color:var(--text)}.lp-dash{color:var(--dim);line-height:1.4}.lp-faq{display:flex;flex-direction:column}.lp-faq-row{border-bottom:1px solid var(--line)}.lp-faq-q{display:flex;align-items:center;gap:18px;width:100%;padding:20px 2px;background:none;border:0;cursor:pointer;text-align:left;font-family:inherit;font-size:16.5px;font-weight:500;color:var(--hi)}.lp-faq-q>span:first-child{flex-grow:1}.lp-faq-sign{font-size:17px;color:var(--acc);width:14px;text-align:center;flex-shrink:0}.lp-faq-a{margin:0;padding:0 60px 22px 2px;color:var(--mut);font-size:15px;line-height:1.65}.lp-cta{align-items:center;text-align:center;padding:56px 40px;gap:20px}.lp-cta-h{max-width:560px;font-size:34px}.lp-cta-sub{max-width:500px}.lp-foot{border-top:1px solid var(--line)}.lp-foot-in{display:flex;align-items:center;gap:24px;padding-top:30px;padding-bottom:30px;flex-wrap:wrap}.lp-foot-brand{font-size:13.5px;color:var(--dim);margin-left:-3px}.lp-foot-links{display:flex;gap:22px;font-size:13.5px}.lp-foot-links a{color:var(--dim);text-decoration:none}.lp-foot-links a:hover{color:var(--mut)}@media (max-width:1000px){.lp-compare,.lp-grid,.lp-steps{grid-template-columns:1fr}}@media (max-width:720px){.lp-wrap{padding:0 22px}.lp-h1{font-size:38px}.lp-cta-h,.lp-h2{font-size:27px}.lp-lede{font-size:17px}.lp-hero{padding-top:60px}.lp-hero,.lp-sec{padding-bottom:56px}.lp-sec{padding-top:56px}.lp-nav-links{display:none}.lp-faq-a{padding-right:8px}.lp-cta{padding:36px 22px}}