*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}img,svg{max-width:100%}button{font:inherit;color:inherit}a{color:inherit}table{border-collapse:collapse}:root{--body:ui-sans-serif, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--bg:#f6f7f5;--paper:#fff;--fg:#17191b;--dim:#6e7377;--faint:#9aa09c;--rule:#e2e4e0;--hair:#edeeea;--accent:#1f7a6b;--soft:#1f7a6b1c;--code:#f0f2ee}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121412;--paper:#191c19;--fg:#e4e7e2;--dim:#8c938e;--faint:#666c68;--rule:#272b27;--hair:#1f231f;--accent:#5fc4b0;--soft:#5fc4b021;--code:#101310}}:root[data-theme=dark]{--bg:#121412;--paper:#191c19;--fg:#e4e7e2;--dim:#8c938e;--faint:#666c68;--rule:#272b27;--hair:#1f231f;--accent:#5fc4b0;--soft:#5fc4b021;--code:#101310}:root{--term:#0f1211;--termfg:#d8dad6;--termdim:#727a81;--termrule:#222724;--caret:#e4b429;--tHead:#e4b429;--tCode:#7fd2c2;--tDim:#767e7a}html{background:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:var(--body);line-height:1.6}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page{grid-template-columns:254px minmax(0,1fr);min-height:100vh;display:grid}.page.three{grid-template-columns:254px minmax(0,1fr) minmax(300px,34%)}.col{flex-direction:column;min-width:0;display:flex}.pad{padding:32px 30px 110px}.side{border-right:1px solid var(--rule);background:var(--bg);height:100vh;padding:26px 20px 60px 26px;position:sticky;top:0;overflow:auto}.side .brand{letter-spacing:-.03em;margin-bottom:2px;font-size:21px;font-weight:700}.side .brand a{text-decoration:none}.side .ver{font:10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:28px}.route{padding-left:19px;position:relative}.route:before{content:"";background:var(--rule);width:1px;position:absolute;top:8px;bottom:8px;left:4px}.route .grp{letter-spacing:.19em;text-transform:uppercase;color:var(--faint);margin:22px 0 7px;font-size:10px}.route a,.route span{color:var(--dim);padding:3px 0;font-size:13.5px;text-decoration:none;display:block;position:relative}.route a:before,.route span:before{content:"";border:1px solid var(--rule);background:var(--bg);border-radius:50%;width:9px;height:9px;position:absolute;top:10px;left:-19px}.route a:hover{color:var(--fg)}.route a.on{color:var(--accent);font-weight:600}.route a.on:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--soft)}.route span{color:var(--faint);cursor:default}.strip{border-bottom:1px solid var(--rule);z-index:30;background:var(--bg);height:46px;color:var(--dim);align-items:center;gap:14px;padding:0 26px;font-size:12.5px;display:flex;position:sticky;top:0}.strip .crumb{flex:1}.strip .crumb b{color:var(--fg);font-weight:600}.strip button,.strip .source{border:1px solid var(--rule);color:var(--dim);cursor:pointer;background:0 0;border-radius:5px;padding:3px 9px;font-size:11.5px}.strip button:hover,.strip .source:hover{color:var(--fg);border-color:var(--dim)}.strip .source{align-items:center;min-height:calc(1.6em + 8px);display:inline-flex}.strip .source svg{width:14px;height:14px;display:block}.theme-name:after{content:"system"}:root[data-theme=light] .theme-name:after{content:"light"}:root[data-theme=dark] .theme-name:after{content:"dark"}.md{max-width:66ch}.md h1{letter-spacing:-.032em;text-wrap:balance;margin:0 0 12px;font-size:33px;font-weight:700}.md h2{letter-spacing:-.016em;text-wrap:balance;margin:42px 0 8px;scroll-margin-top:60px;font-size:20px;font-weight:700}.md h3{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin:28px 0 7px;scroll-margin-top:60px;font-size:12px}.md p,.md li{font-size:14.8px;line-height:1.68}.md a{color:var(--accent);text-underline-offset:3px}.md code{font-family:var(--mono);background:var(--code);border-radius:3px;padding:1px 5px;font-size:.86em}.md pre{background:var(--term);color:var(--termfg);font:12.5px/1.6 var(--mono);border-radius:6px;padding:14px 16px;overflow-x:auto}.md pre code{background:0 0;padding:0}.md blockquote{border-left:3px solid var(--accent);color:var(--dim);margin:0;padding:2px 0 2px 16px}.md table{width:100%;font-size:13.4px;line-height:normal}.md th{text-align:left;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--rule);padding:0 16px 6px 0;font-size:10.5px}.md td{border-bottom:1px solid var(--hair);vertical-align:top;padding:7px 16px 7px 0}.tablewrap{overflow-x:auto}.pagehead h1{letter-spacing:-.032em;text-wrap:balance;margin:0 0 6px;font-size:32px;font-weight:700}.pagehead p{color:var(--dim);max-width:56ch;margin:0 0 24px}.term{background:var(--term);color:var(--termfg);flex-direction:column;min-height:0;display:flex}.page.three>.term{border-left:1px solid var(--rule);height:100vh;position:sticky;top:0}.term .bar{border-bottom:1px solid var(--termrule);font:10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--termdim);flex:none;align-items:center;gap:8px;padding:9px 15px;display:flex}.term .bar .dot{background:#2e3338;border-radius:50%;flex:none;width:7px;height:7px}.term .out{font:12.4px/1.66 var(--mono);white-space:pre-wrap;flex:1;margin:0;padding:16px 18px 48px;overflow:auto}.term .out .cmd{color:var(--caret)}.term .out .cmd:before{content:"$ ";color:#4c555c}.term .out .cm{color:var(--termdim)}.term .out .ok{color:#6fcf97}.hero h1{letter-spacing:-.038em;text-wrap:balance;max-width:13ch;margin:6px 0 16px;font-size:clamp(36px,5.2vw,58px);font-weight:700;line-height:1.04}.hero .sub{color:var(--dim);max-width:50ch;margin:0 0 26px;font-size:17px}.installblock{background:var(--term);color:var(--termfg);font:13px/2 var(--mono);border-radius:8px;margin-bottom:34px;padding:16px 18px}.installblock .step+.step{margin-top:13px}.installblock .p{color:#4c555c}.installblock .c{color:var(--caret)}.installblock .note{font:13px/1.55 var(--body);color:var(--termdim);max-width:64ch;margin:1px 0 0}.split2{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:26px;margin-bottom:8px;display:grid}.panel{border:1px solid var(--rule);background:var(--paper);border-radius:9px;padding:18px 20px 6px}.panel.add{border-color:var(--accent);background:var(--soft)}.panel .it{border-top:1px solid var(--rule);padding:12px 0}.panel.add .it{border-top-color:#1f7a6b40}.panel .hh{padding-bottom:8px}.hh{margin-bottom:4px}.hh .ix{font:10px var(--mono);letter-spacing:.18em;color:var(--accent);margin-bottom:6px;display:block}.hh b{letter-spacing:-.015em;margin-bottom:3px;font-size:17px;display:block}.hh .nt{color:var(--dim);font-size:13px;display:block}.it h4{margin:0 0 4px;font-size:14.2px}.it p{color:var(--dim);margin:0;font-size:13.4px}.outlink{color:var(--dim);margin-top:34px;font-size:13.6px}.outlink a{color:var(--accent)}.cheattable{width:100%;font-size:12.6px;line-height:normal}.cheattable th{text-align:left;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--fg);padding:0 14px 5px 0;font-size:9.5px}.cheattable td{border-bottom:1px solid var(--hair);vertical-align:top;padding:4px 14px 4px 0}.cheattable td.k{font-family:var(--mono);white-space:nowrap}.cheattable td.g{letter-spacing:.12em;text-transform:uppercase;color:var(--faint);white-space:nowrap;font-size:10px}.cheattable td.d{color:var(--dim)}.cheattable tr.first td{border-top:1px solid var(--rule);padding-top:16px}.fixture{border:1px solid var(--rule);background:var(--paper);color:var(--dim);border-radius:7px;margin:0 0 16px;padding:11px 15px;font-size:12.5px}.fixture code{font-family:var(--mono);font-size:.92em}.stdout{background:var(--term);color:var(--termfg);border-radius:7px}.stdout .head{border-bottom:1px solid var(--termrule);font:10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--termdim);background:var(--term);z-index:4;border-radius:7px 7px 0 0;align-items:center;gap:10px;padding:9px 15px;display:flex;position:sticky;top:46px}.stdout .head .grow{flex:1}.stdout .head button{border:1px solid var(--termrule);color:var(--termdim);font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:4px;padding:3px 8px}.stdout .head button:hover{color:var(--termfg);border-color:var(--termdim)}.stdout .tHead{color:var(--tHead)}.stdout .tCode{color:var(--tCode)}.stdout .tDim{color:var(--tDim)}.stdout .numbered{font:12.4px/1.66 var(--mono);border-radius:0 0 7px 7px;padding:14px 0 30px}.stdout .numbered .l{grid-template-columns:56px 1fr;display:grid}.stdout .numbered .l>i{color:#454c48;text-align:right;font-variant-numeric:tabular-nums;user-select:none;padding-right:14px;font-style:normal}.stdout .numbered .l>span{white-space:pre-wrap;padding-right:20px}@media (width<=1100px){.page.three{grid-template-columns:254px minmax(0,1fr)}.page.three>.term{border-left:0;border-top:1px solid var(--rule);height:300px;position:static}}@media (width<=860px){.page,.page.three{grid-template-columns:minmax(0,1fr)}.side{border-right:0;border-bottom:1px solid var(--rule);height:auto;padding-bottom:24px;position:static}.pad{padding:24px 20px 90px}}
