@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-serif-latin-600-normal-DAxitmSu.woff2)format("woff2"),url(/assets/ibm-plex-serif-latin-600-normal-D3rpGdkS.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:Noto Serif SC Headings;src:url(/assets/noto-serif-sc-600-_D3KF9-q.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16181d;--raise:#1e2128;--ink:#ede6d8;--mute:#9c988d;--line:#30333b;--amber:#f0a13a;--amber-ink:#f0a13a;--btn-bg:#f0a13a;--btn-fg:#16181d;--font-serif:"IBM Plex Serif", "Noto Serif SC Headings", "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", serif;--font-sans:"IBM Plex Sans", "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-h1:clamp(34px, 4.6vw, 54px);--fs-h2:30px;--fs-h3:16px;--fs-lead:18px;--fs-body:16px;--fs-small:14px;--fs-mono:13px;--fs-mono-s:12px;--lh-h1:1.12;--lh-tight:1.3;--lh-body:1.75;--track-title:-.02em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;--s-12:48px;--s-16:64px;--s-24:96px;--r-sm:4px;--r-md:8px;--r-lg:12px;--hairline:1px;--focus-ring:2px;--logo:24px;--topbar-h:64px;--page:1120px;--gutter:var(--s-8);--section-y:var(--s-24);--aside:240px;--measure:760px;--hero-text:440px;--fs-note:14.5px;--lh-mono:1.7;--dot-1:10px;--dot-2:8px;--dot-3:6px;--t-start:.3s;--t-step:.32s;--t-fade:.16s;--t-blink:1s;--t-blinks:4;--fs-fact:20px;--level-dot:8px;--tg-figure:340px}@media (prefers-color-scheme:light){:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbf8f1;--raise:#f3eee3;--ink:#16181d;--mute:#6a665c;--line:#dad3c4;--amber:#b5690f;--amber-ink:#8f4f06;--btn-bg:#8f4f06;--btn-fg:#fbf8f1}}@media (width<=720px){:root{--fs-h2:26px;--gutter:20px;--section-y:var(--s-16)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;flex-direction:column;margin:0;display:flex}main{flex:1}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration-line:underline;-webkit-text-decoration-color:var(--mute);text-decoration-color:var(--mute);text-decoration-thickness:var(--hairline);text-underline-offset:var(--s-1)}a:hover{text-decoration-color:currentColor}:focus-visible{outline:var(--focus-ring) solid var(--amber);outline-offset:var(--focus-ring)}.skip{top:var(--s-2);left:var(--s-2);z-index:1;padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--btn-bg);color:var(--btn-fg);transform:translateY(calc(-100% - var(--s-4)));font-weight:600;text-decoration:none;position:absolute}.skip:focus{transform:none}code{font-family:var(--font-mono);padding:0 var(--s-1);border:var(--hairline) solid var(--line);border-radius:var(--r-sm);background:var(--raise);font-size:.875em}.wrap{max-width:calc(var(--page) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.logo{width:var(--logo);height:var(--logo);flex:none}.logo-dot{fill:var(--amber)}.topbar{border-bottom:var(--hairline) solid var(--line)}.topbar-inner{justify-content:space-between;align-items:center;gap:var(--s-6);min-height:var(--topbar-h);display:flex}.brand{align-items:center;gap:var(--s-2);font-family:var(--font-mono);font-weight:500;text-decoration:none;display:inline-flex}.nav{align-items:center;gap:var(--s-6);font-size:var(--fs-small);display:flex}.nav a{text-decoration:none}.nav-section{color:var(--mute)}.nav-section:hover{color:var(--ink)}.nav-lang{font-family:var(--font-mono);font-size:var(--fs-mono);padding:0 var(--s-2);border:var(--hairline) solid var(--line);border-radius:var(--r-sm)}.nav-lang:hover{background:var(--raise)}.hero{padding-block:var(--section-y)}.hero-inner{grid-template-columns:var(--hero-text) minmax(0, 1fr);align-items:start;gap:var(--s-12);display:grid}.hero-text{max-width:var(--measure)}.hero h1{font-family:var(--font-serif);font-weight:600;font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--track-title);text-wrap:balance}.lead{margin-top:var(--s-6);font-size:var(--fs-lead);line-height:var(--lh-body)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.install{align-items:flex-start;gap:var(--s-2);margin-top:var(--s-8);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);background:var(--raise);border:var(--hairline) solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-mono);line-height:var(--lh-mono);display:flex;position:relative}.install-prompt{color:var(--amber-ink);-webkit-user-select:none;user-select:none}.install-cmd{min-width:0;font-size:inherit;overflow-wrap:anywhere;background:0 0;border:0;flex:1;padding:0}.copy{min-height:var(--s-6);padding:0 var(--s-3);border:var(--hairline) solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font:inherit;font-size:var(--fs-mono-s);line-height:var(--lh-mono);cursor:pointer;flex:none}.copy:hover{border-color:var(--mute)}.copy[data-state=done]{color:var(--amber-ink)}.install-note{margin-top:var(--s-4);color:var(--mute);font-size:var(--fs-note);line-height:var(--lh-body)}.facts{margin-top:var(--s-3);color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono-s)}.actions{align-items:center;gap:var(--s-3) var(--s-6);margin-top:var(--s-8);font-size:var(--fs-note);flex-wrap:wrap;display:flex}.btn{padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:var(--btn-bg);color:var(--btn-fg);font-weight:600;text-decoration:none;display:inline-block}.btn:hover{background:var(--ink);color:var(--bg)}.hero-figure{min-width:0;margin:0}.term{background:var(--raise);border:var(--hairline) solid var(--line);border-radius:var(--r-lg);overflow:hidden}.term-bar{padding:var(--s-3) var(--s-4);border-bottom:var(--hairline) solid var(--line);justify-content:space-between;align-items:center;display:flex}.term-dots{align-items:center;gap:var(--s-1);display:flex}.term-dots i{width:var(--dot-1);height:var(--dot-1);background:var(--amber);border-radius:50%}.term-dots i:nth-child(2){width:var(--dot-2);height:var(--dot-2)}.term-dots i:nth-child(3){width:var(--dot-3);height:var(--dot-3)}.term-title{color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono-s)}.term-body{padding:var(--s-4) var(--s-6) var(--s-6);color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono-s);line-height:var(--lh-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.t-mark,.t-done{color:var(--amber-ink)}.t-strong{color:var(--ink);font-weight:500}.t-cursor{width:.6em;height:1.2em;margin-left:var(--s-1);vertical-align:text-bottom;background:var(--ink);display:inline-block}@media (prefers-reduced-motion:no-preference){.t-line{animation:t-show var(--t-fade) ease-out both;animation-delay:calc(var(--t-start) + var(--i) * var(--t-step))}.t-cursor{animation:t-blink var(--t-blink) steps(1, end) var(--t-blinks);animation-delay:calc(var(--t-start) + var(--n) * var(--t-step))}}@keyframes t-show{0%{opacity:0}}@keyframes t-blink{50%{opacity:0}}figcaption{margin-top:var(--s-3);color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono-s);line-height:var(--lh-mono)}.fig-no{margin-right:var(--s-3);color:var(--ink)}.section{border-top:var(--hairline) solid var(--line);padding-block:var(--section-y)}.section-inner{grid-template-columns:var(--aside) minmax(0, 1fr);gap:var(--s-12);display:grid}.section-aside{top:var(--s-8);align-self:start;position:sticky}.section-aside h2{font-family:var(--font-serif);font-weight:600;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--track-title)}.section-aside p{margin-top:var(--s-3);color:var(--mute);font-size:var(--fs-note);line-height:var(--lh-body)}.section-body{max-width:var(--measure);min-width:0}.section-body>*+*{margin-top:var(--s-4)}.section-body h3{margin-top:var(--s-12);font-size:var(--fs-h3);font-weight:600;line-height:var(--lh-tight)}.section-body code{overflow-wrap:anywhere}.points{padding-left:var(--s-6)}.points li+li{margin-top:var(--s-1)}.points li::marker{color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono)}.say{padding:var(--s-3) var(--s-4);border:var(--hairline) solid var(--line);border-radius:var(--r-md);margin-inline:0}.say code{background:0 0;border:0;padding:0}.block,.cmds{padding:var(--s-3) var(--s-4);background:var(--raise);border:var(--hairline) solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-mono);line-height:var(--lh-mono)}.block{white-space:pre-wrap;overflow-wrap:anywhere}.block code,.cmds code{font-size:inherit;background:0 0;border:0;padding:0}.cmds{gap:var(--s-1) var(--s-6);grid-template-columns:max-content minmax(0,1fr);display:grid}.cmds div{display:contents}.cmds dt,.cmds dd{margin:0}.cmds dd{color:var(--mute)}.flow{margin:var(--s-8) 0 0}.flow-img img{width:100%;height:auto;display:block}.flow-list{display:none}.flow-steps{counter-reset:step;border-left:var(--hairline) solid var(--line);margin:0;padding:0;list-style:none}.flow-steps li{padding:0 0 var(--s-4) var(--s-8);counter-increment:step;font-size:var(--fs-note);position:relative}.flow-steps li:before{content:counter(step);left:calc(-1 * var(--s-3));width:var(--s-6);background:var(--bg);color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono);text-align:center;position:absolute;top:0}.flow-steps strong{font-weight:600;display:block}.flow-steps span{color:var(--mute);display:block}.flow-loops{margin:var(--s-2) 0 0;font-size:var(--fs-note);padding:0;list-style:none}.flow-loops li{padding-left:var(--s-8);position:relative}.flow-loops li+li{margin-top:var(--s-2)}.flow-loops li:before{content:"↺";color:var(--mute);font-family:var(--font-mono);position:absolute;left:0}.facts-grid{gap:var(--hairline);margin-top:var(--s-8);background:var(--line);border:var(--hairline) solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.fact{padding:var(--s-6);background:var(--bg)}.fact:hover{background:var(--raise)}.fact dt{font-size:var(--fs-fact);font-weight:600;line-height:var(--lh-tight)}.fact dd{margin:var(--s-2) 0 0;color:var(--mute);font-size:var(--fs-note);line-height:var(--lh-body)}.sheet{border-collapse:collapse;width:100%;font-size:var(--fs-note);line-height:var(--lh-body)}.sheet th,.sheet td{padding:var(--s-3) var(--s-4) var(--s-3) 0;border-top:var(--hairline) solid var(--line);text-align:left;vertical-align:top}.sheet th:last-child,.sheet td:last-child{padding-right:0}.sheet thead th{color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono-s);white-space:nowrap;border-top:0;padding-top:0;font-weight:400}.sheet tbody th{word-break:keep-all;font-weight:600}.sheet tbody tr:last-child>*{border-bottom:var(--hairline) solid var(--line)}.level{align-items:center;gap:var(--s-2);white-space:nowrap;display:inline-flex}.level:before{content:"";width:var(--level-dot);height:var(--level-dot);border:var(--hairline) solid var(--mute);border-radius:50%;flex:none}.level-block:before{border-color:var(--amber);background:var(--amber)}.dashes,.open-dots{margin:0;padding:0;list-style:none}.dashes li,.open-dots li{padding-left:var(--s-6);position:relative}.dashes li+li,.open-dots li+li{margin-top:var(--s-2)}.dashes li:before{content:"–";color:var(--mute);font-family:var(--font-mono);position:absolute;left:0}.open-dots li:before{content:"";left:0;top:calc((var(--lh-body) * 1em - var(--level-dot)) / 2);width:var(--level-dot);height:var(--level-dot);border:var(--hairline) solid var(--mute);border-radius:50%;position:absolute}.tg{grid-template-columns:minmax(0, 1fr) var(--tg-figure);align-items:start;gap:var(--s-8);display:grid}.tg-text>*+*{margin-top:var(--s-4)}.tg-figure{max-width:var(--tg-figure);margin:0}.tg-figure img{border:var(--hairline) solid var(--line);border-radius:var(--r-md);width:100%;height:auto;display:block}.section-body .support-cols{gap:var(--s-8);margin-top:var(--s-8);font-size:var(--fs-note);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.support-cols>div>*+*{margin-top:var(--s-3)}.section-body .support-cols h3{margin-top:0}.support-cols p{color:var(--mute)}.footer-docs{gap:var(--s-2) var(--s-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer{border-top:var(--hairline) solid var(--line);padding-block:var(--s-12);color:var(--mute);font-size:var(--fs-small)}.footer-inner{gap:var(--s-2);display:grid}.footer-brand{align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);color:var(--ink);font-family:var(--font-mono);font-weight:500;display:flex}.footer a:hover{color:var(--ink)}@media (width<=1060px){.hero-inner,.section-inner{grid-template-columns:1fr}.section-inner{gap:var(--s-6)}.section-aside{position:static}}@media (width<=720px){.tg,.facts-grid,.section-body .support-cols{grid-template-columns:minmax(0,1fr)}.nav-section{display:none}.nav{gap:var(--s-4)}.cmds{grid-template-columns:minmax(0,1fr);gap:0}.cmds div+div dt{margin-top:var(--s-2)}.flow-img{display:none}.flow-list{display:block}.fact{padding:var(--s-4)}.sheet,.sheet tbody,.sheet tr,.sheet th,.sheet td{display:block}.sheet thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sheet tbody tr{padding-block:var(--s-3);border-top:var(--hairline) solid var(--line)}.sheet tbody tr:last-child{border-bottom:var(--hairline) solid var(--line)}.sheet tbody th,.sheet tbody td,.sheet tbody tr:last-child>*{border:0;padding:0}.sheet tbody td{margin-top:var(--s-2)}.sheet tbody [data-label]:before{content:attr(data-label);color:var(--mute);font-family:var(--font-mono);font-size:var(--fs-mono-s);font-weight:400;display:block}}
