.spx{min-height:100vh;--paper:#f7f4ee;--paper-2:#f0ece3;--card:#fffefb;--inset:#f4f1ea;--ink:#16140f;--ink-2:#494539;--muted:#867f70;--faint:#a8a191;--line:#e7e2d6;--line-2:#d6d0c1;--accent:#4d6b10;--lime:#c6f24a;--lime-soft:#c6f24a40;--ok:#3c8a52;--sans:"Space Grotesk",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--maxw:1160px;--side:236px;--toc:200px}.spx,.spx *{box-sizing:border-box}.spx{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}.spx a{color:inherit;text-decoration:none}.spx ::selection{background:var(--lime);color:var(--ink)}.spx .wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px}.spx .mono{font-family:var(--mono)}.spx .btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:500;border:1px solid transparent;cursor:pointer;transition:.16s}.spx .btn.solid{background:var(--ink);color:var(--paper)}.spx .btn.solid:hover{background:#000}.spx .nav{position:-webkit-sticky;position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 84%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.spx .nav-in{justify-content:space-between;gap:18px;height:72px}.spx .brand,.spx .nav-in{display:flex;align-items:center}.spx .brand{gap:11px;font-weight:600;font-size:18px;letter-spacing:-.01em}.spx .brand .mark{width:26px;height:26px;border-radius:7px;background:var(--ink);color:var(--lime);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:13px}.spx .brand .tag{font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--line-2);border-radius:5px;padding:2px 7px;margin-left:2px}.spx .nav-links{display:flex;gap:6px}.spx .nav-links a{padding:9px 14px;border-radius:999px;font-size:14px;color:var(--ink-2)}.spx .nav-links a.on,.spx .nav-links a:hover{background:var(--paper-2);color:var(--ink)}.spx .nav-cta{display:flex;align-items:center;gap:10px}.spx .nav-cta .signin{font-size:14px;padding:8px 6px}@media(max-width:820px){.spx .nav-links{display:none}}.spx .shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr) var(--toc);grid-gap:44px;gap:44px;align-items:start}.spx .wrap.doc{padding-top:34px;padding-bottom:80px}.spx .dnav{position:-webkit-sticky;position:sticky;top:88px;align-self:start}.spx .dnav .grp{margin-bottom:22px}.spx .dnav .gl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:0 10px 8px}.spx .dnav a{display:block;padding:7px 10px;border-radius:7px;font-size:13.5px;color:var(--ink-2)}.spx .dnav a:hover{background:var(--paper-2);color:var(--ink)}.spx .dnav a.on{background:var(--card);color:var(--ink);font-weight:500;box-shadow:0 1px 2px rgba(40,36,24,.05);border:1px solid var(--line)}@media(max-width:980px){.spx .dnav{display:none}.spx .shell{grid-template-columns:1fr}}.spx .content{min-width:0;max-width:720px}.spx .content .eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.spx .content h1{font-size:38px;font-weight:600;letter-spacing:-.03em;line-height:1.05;margin:12px 0 14px}.spx .content .lead{font-size:18px;color:var(--ink-2);margin:0 0 14px}.spx .content section{padding-top:30px;margin-top:30px;border-top:1px solid var(--line)}.spx .content section:first-of-type{border-top:0;margin-top:24px;padding-top:0}.spx .content h2{font-size:24px;font-weight:600;letter-spacing:-.02em;margin:0 0 12px;scroll-margin-top:88px}.spx .content h3{font-size:16px;font-weight:600;margin:24px 0 8px}.spx .content p,.spx .content ul{margin:0 0 14px;color:var(--ink-2)}.spx .content ul{padding-left:20px}.spx .content li{margin:6px 0}.spx .content strong{color:var(--ink);font-weight:600}.spx .content a.inl{color:var(--accent);border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.spx code.ic{font-family:var(--mono);font-size:12.5px;background:var(--inset);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--ink)}.spx .note{display:flex;gap:12px;background:var(--lime-soft);border:1px solid var(--lime);border-radius:10px;padding:14px 16px;margin:0 0 16px}.spx .note .ic{color:var(--accent);flex-shrink:0;margin-top:1px}.spx .note p{margin:0;font-size:14px;color:var(--ink-2)}.spx .code{background:#15140f;border-radius:12px;overflow:hidden;margin:0 0 16px}.spx .code-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.spx .code-bar .tabs{display:flex;gap:2px}.spx .code-bar .tabs button{font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.45);background:none;border:0;padding:4px 10px;border-radius:6px;cursor:pointer}.spx .code-bar .tabs button.on{background:rgba(255,255,255,.1);color:#fff}.spx .code-bar .f{font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.4)}.spx .code-bar .cpy{margin-left:auto;font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:4px 9px;background:none;cursor:pointer}.spx .code-bar .cpy:hover{color:#fff}.spx .code-body{padding:16px 18px;font-family:var(--mono);font-size:12.5px;line-height:1.85;color:#d8d4c8;overflow-x:auto;white-space:pre;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.spx .code-body::-webkit-scrollbar{height:8px}.spx .code-body::-webkit-scrollbar-track{background:transparent}.spx .code-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:4px}.spx .code-body::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}.spx .code-body .kw{color:#c6f24a}.spx .code-body .st{color:#e3b86a}.spx .code-body .cm{color:#7d786a}.spx .code-body .fn{color:#8fd0e6}.spx .code-body[hidden]{display:none}.spx .toc{position:-webkit-sticky;position:sticky;top:88px;align-self:start}.spx .toc .tl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}.spx .toc a{display:block;font-size:12.5px;color:var(--muted);padding:5px 0 5px 12px;border-left:2px solid var(--line)}.spx .toc a:hover{color:var(--ink)}.spx .toc a.on{color:var(--accent);border-color:var(--accent)}@media(max-width:1140px){.spx .toc{display:none}.spx .shell{grid-template-columns:var(--side) minmax(0,1fr)}}@media(max-width:980px){.spx .shell{grid-template-columns:1fr}}