:root{--bg:#14110f;--bg-2:#1c1815;--panel:#211c18;--ink:#f1e6d6;--ink-2:#a8998a;--line:#342b24;--accent:#e8743b;--accent-2:#f2b45a;--ok:#8fc48a;--err:#f07a62;--glow:rgba(232,116,59,.22)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#faf6f0;--bg-2:#f2ebe1;--panel:#1f1a16;--ink:#241d18;--ink-2:#6e6053;--line:#e2d6c6;--glow:rgba(232,116,59,.16)}}:root[data-theme=light]{--bg:#faf6f0;--bg-2:#f2ebe1;--panel:#1f1a16;--ink:#241d18;--ink-2:#6e6053;--line:#e2d6c6;--glow:rgba(232,116,59,.16)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.6 space grotesk,system-ui,sans-serif}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:1180px;margin:0 auto;padding:0 24px}code,pre,.mono{font-family:jetbrains mono,ui-monospace,monospace;font-variant-ligatures:none}header nav{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line)}.brand{white-space:nowrap;color:var(--ink);font:700 22px space grotesk,system-ui,sans-serif;letter-spacing:-.01em}.brand:hover{text-decoration:none}header nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;font:500 14px jetbrains mono,monospace}header nav ul a{color:var(--ink-2)}header nav ul a::before{content:"./";color:var(--accent);opacity:.7}.hero>*,.rest>*{min-width:0}.hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding-block:72px 64px}.tag{font:500 13px jetbrains mono,monospace;color:var(--ok)}.tag::before{content:"● "}h1{font-size:clamp(38px,5.5vw,62px);line-height:1.05;letter-spacing:-.03em;margin:16px 0 20px;font-weight:700}h1 span{color:var(--accent)}.lede{font-size:19px;color:var(--ink-2);max-width:32em}.say{color:var(--ink);font-style:italic;white-space:nowrap}.ctas{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.btn{padding:12px 20px;border-radius:8px;font:600 14px jetbrains mono,monospace}.btn.primary{background:var(--accent);color:#1a120c}.btn.ghost{border:1px solid var(--line);color:var(--ink)}.btn:hover{text-decoration:none;filter:brightness(1.08)}.stage{position:relative}.stage .fox{position:absolute;right:-12px;top:-92px;width:168px;filter:drop-shadow(0 0 40px var(--glow));z-index:2}.term{position:relative;background:var(--panel);color:#efe3d2;border:1px solid #3a3029;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px -30px var(--glow)}.term .top{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#29221d;border-bottom:1px solid #3a3029;font-size:12px;color:#9c8c7c}.term .top i{width:10px;height:10px;border-radius:50%;background:#4b3f36}.term .top span{margin-left:10px}.term pre{margin:0;padding:18px 20px;font-size:13px;line-height:1.6;overflow-x:auto}:is(.term,.snip) .p{color:var(--accent)}:is(.term,.snip) .dim{color:#8a7a6b}.term .key{color:#f2b45a}:is(.term,.snip) .str{color:#b9d39a}.term .num{color:#e9a0d0}.term .e{color:var(--err);font-weight:700}.term .ok{color:var(--ok);font-weight:700}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kr,.chroma .kc{color:#f08a5d}.chroma .kt,.chroma .nc,.chroma .nb,.chroma .nn{color:#f2c26b}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .sa,.chroma .si,.chroma .se{color:#b9d39a}.chroma .nf,.chroma .fm{color:#f7dcb4}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh,.chroma .mb{color:#e9a0d0}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cp{color:#8a7a6b;font-style:italic}.chroma .o,.chroma .p{color:#d9cbb8}.chroma .err{color:inherit;background:0 0}.highlight{margin:16px 0}.highlight pre{margin:0}section{padding:80px 0;border-top:1px solid var(--line)}.eyebrow{font:500 13px jetbrains mono,monospace;color:var(--accent);letter-spacing:.06em}h2{font-size:clamp(28px,3.6vw,40px);line-height:1.15;letter-spacing:-.02em;margin:10px 0 14px}.sub{color:var(--ink-2);max-width:44em;margin:0 0 36px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.cell{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:22px}.cell h3{margin:8px 0 6px;font-size:18px}.cell p{margin:0;color:var(--ink-2);font-size:15px}.cell .from,.ix .from{font:500 12px jetbrains mono,monospace;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.interop{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.ix{min-width:0;background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:22px}.ix h3{margin:8px 0 6px;font-size:18px}.ix p{margin:0 0 14px;color:var(--ink-2);font-size:15px}.snip{margin:0;background:var(--panel);color:#efe3d2;border-radius:8px;padding:12px 14px;font-size:13px;overflow-x:auto}.cmds{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}.cmd{display:flex;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line);font-size:15px}.cmd code{color:var(--accent-2);min-width:9.5em}.cmd span{color:var(--ink-2)}.tour-steps{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tour-steps a{display:grid;align-content:start;grid-template-columns:auto 1fr;column-gap:12px;row-gap:4px;height:100%;padding:16px 18px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;color:var(--ink)}.tour-steps a:hover{text-decoration:none;border-color:var(--accent)}.tour-steps .n{grid-row:span 2;font:700 14px jetbrains mono,monospace;color:var(--accent);padding-top:2px}.tour-steps .t{font-weight:700}.tour-steps .d{color:var(--ink-2);font-size:14px;line-height:1.45}.rest{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.rest .term pre{font-size:14px}.rest .sleeper{width:100%;max-width:360px;display:block;margin:0 auto}.announce{background:var(--accent);color:#1a120c;text-align:center;font:500 13px jetbrains mono,monospace;padding:6px 12px}.announce a{color:#1a120c;text-decoration:underline;font-weight:700}footer{padding:36px 0 52px;border-top:1px solid var(--line);color:var(--ink-2);font:13px jetbrains mono,monospace}footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}@media(max-width:1100px) and (min-width:901px){.tour-steps{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.hero,.rest,.cmds{grid-template-columns:1fr}.grid,.interop,.tour-steps{grid-template-columns:1fr}.tour-steps .d{display:none}.tour-steps a{padding:12px 14px}.stage{margin-top:70px}.stage .fox{width:120px;top:-70px;right:4px}header nav ul{gap:12px;font-size:13px}header nav ul a::before{content:none}.brand{font-size:19px}header nav ul li.wide{display:none}.wrap{padding:0 16px}.rest .sleeper{max-width:220px}.announce{font-size:12px;padding:6px 10px}.hero{padding-block:28px 40px;gap:32px}.lede{font-size:17px}section{padding:56px 0}.cell,.ix{padding:18px}.term pre{font-size:12px;white-space:pre-wrap;word-break:break-word}}.page{display:grid;grid-template-columns:220px minmax(0,1fr)220px;gap:40px;padding-block:48px 80px;align-items:start}.page.no-toc{grid-template-columns:220px minmax(0,1fr)}.page.plain{grid-template-columns:minmax(0,760px);justify-content:center}.side-nav,.toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;font-size:14px}.side-nav summary{display:none}.side-nav h4,.toc h4{font:500 12px jetbrains mono,monospace;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.side-nav ul,.toc ul{list-style:none;margin:0;padding:0}.side-nav li a{display:block;padding:5px 10px;border-radius:6px;color:var(--ink-2)}.side-nav li a.active{background:var(--bg-2);color:var(--ink);border-left:2px solid var(--accent)}.side-nav li a:hover{text-decoration:none;color:var(--ink)}.side-nav .group{margin-top:18px}.toc ul ul{padding-left:12px}.toc a{display:block;padding:3px 0;color:var(--ink-2)}.toc a:hover{color:var(--ink);text-decoration:none}.raw-link{display:inline-block;margin-top:16px;font:12px jetbrains mono,monospace;color:var(--ink-2)}.prose{min-width:0;font-size:16.5px;line-height:1.7}.prose h1{font-size:clamp(32px,4.2vw,44px);margin-top:0}.prose h2{font-size:28px;margin:48px 0 12px;padding-top:8px;border-top:1px solid var(--line)}.prose h3{font-size:21px;margin:32px 0 8px}.prose h4{font-size:17px;margin:24px 0 6px}.prose h2,.prose h3,.prose h4{scroll-margin-top:16px}.prose p,.prose li{color:color-mix(in srgb,var(--ink) 88%,var(--ink-2))}.prose a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent-2) 50%,transparent)}.prose code{font-size:.88em;background:var(--bg-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px}.prose pre{background:var(--panel);color:#efe3d2;border:1px solid #3a3029;border-radius:10px;padding:16px 18px;overflow-x:auto;font-size:13.5px;line-height:1.6}.prose pre code{background:0 0;border:0;padding:0;font-size:inherit;color:inherit}.prose table{display:block;overflow-x:auto;border-collapse:collapse;font-size:14.5px;margin:20px 0}.prose th,.prose td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}.prose th{background:var(--bg-2);font-weight:600}.prose blockquote{margin:20px 0;padding:4px 18px;border-left:3px solid var(--accent);color:var(--ink-2)}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.meta{font:13px jetbrains mono,monospace;color:var(--ink-2);margin:-8px 0 28px}.pager{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font:500 14px jetbrains mono,monospace}.pager a{text-decoration:none}.steps li{margin:6px 0}.posts{list-style:none;padding:0;margin:0}.posts li{padding:22px 0;border-bottom:1px solid var(--line)}.posts h3{margin:4px 0 6px;font-size:22px}.posts h3 a{color:var(--ink);text-decoration:none}.posts p{margin:0;color:var(--ink-2)}@media(max-width:1100px){.page{grid-template-columns:200px minmax(0,1fr)}.toc{display:none}}@media(max-width:760px){.page,.page.no-toc{grid-template-columns:minmax(0,1fr);padding-block-start:28px}.side-nav{position:static;max-height:none;border:1px solid var(--line);border-radius:10px;padding:0 14px;background:var(--bg-2)}.side-nav summary{display:list-item;cursor:pointer;padding:12px 0;font:500 14px jetbrains mono,monospace;color:var(--ink)}.side-nav[open]{padding-bottom:14px}.side-nav h4{margin-top:6px}.prose{font-size:16px}.prose h1{font-size:30px}.prose h2{font-size:23px;margin-top:36px}.prose pre{font-size:12.5px;padding:12px 14px;margin-left:-4px;margin-right:-4px}table.codes th:nth-child(3),table.codes td:nth-child(3){display:none}.prose th,.prose td{padding:7px 9px}}