@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-italic.CBjNughH.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-italic.B4oTjJdl.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-italic.CBJ8pzag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-italic.2syK4fUT.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-italic.DRuN92E5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-italic.D6eaYXMU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-italic.B7_fu1kp.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-italic.Bg0ZHwF4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-italic.BqAiT5Ww.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-italic.66oory27.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fff;--fg:#000;--muted:#555;--line:#ddd;--link:#00e;--visited:#551a8b;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:.15s ease-out both vt-out}::view-transition-new(root){animation:.15s ease-in both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}::view-transition-group(hero-title){animation-duration:.38s;animation-timing-function:cubic-bezier(.19,1,.22,1)}::view-transition-old(hero-title),::view-transition-new(hero-title){object-fit:none;object-position:left top;height:100%}::view-transition-old(hero-title):only-child{animation:.15s ease-out both vt-out}}.feel-slow::view-transition-group(*),.feel-slow::view-transition-old(*),.feel-slow::view-transition-new(*){animation-duration:3s!important}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{transition:text-decoration-thickness .12s ease-out,text-underline-offset .12s ease-out,color .12s ease-out}a:active{text-underline-offset:1px;text-decoration-thickness:3px}.brand:active,.nav a[aria-current=page]:active{opacity:.6}body{background:var(--bg);color:var(--fg);font-family:var(--mono);margin:0;padding:24px 16px 64px;font-size:15px;line-height:1.55}@media (width>=720px){body{padding:32px 24px 80px;font-size:16px}}a{color:var(--link);text-underline-offset:2px;text-decoration:underline}a:visited{color:var(--visited)}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.skip{background:var(--fg);color:var(--bg);padding:6px 10px;position:absolute;top:8px;left:-999px}.skip:focus{left:16px}.wrap,.prose-wrap{max-width:760px;margin:0}h1,h2,h3{margin:1.6em 0 .5em;font-family:inherit;font-weight:600;line-height:1.25}h1{margin-top:.4em;font-size:1.75em}h2{font-size:1.25em}h3{font-size:1em}p,ul,ol{margin:0 0 1em}ul,ol{padding-left:1.4em}li+li{margin-top:.25em}hr{border:0;border-top:1px solid var(--line);margin:2em 0}img{max-width:100%;height:auto}.eyebrow{color:var(--muted);margin:0 0 .25em;font-size:.875em}.meta{color:var(--muted);font-size:.875em}.meta a{color:var(--link)}.summary{margin:0 0 1em}.notice{color:var(--muted);border-left:3px solid var(--line);padding-left:12px}.site-header{margin-bottom:32px}.site-header .wrap{flex-wrap:wrap;align-items:baseline;gap:6px 20px;display:flex}.brand{color:var(--fg);font-weight:600;text-decoration:none}.brand b{font-weight:600}.nav{flex-wrap:wrap;gap:6px 16px;display:flex}.nav a{padding:4px 0;display:inline-block}.nav a[aria-current=page]{color:var(--fg);text-decoration:none}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:64px;padding-top:16px;font-size:.875em}.site-footer .wrap{gap:16px;display:grid}.site-footer ul{margin:0;padding:0;list-style:none}.hero{gap:20px;margin-bottom:8px;display:grid}.hero h1{margin-top:0}.hero h1 em{font-style:italic}.portrait{margin:0}.portrait img{object-fit:cover;width:160px;height:160px;display:block}.portrait figcaption{color:var(--muted);margin-top:6px;font-size:.8125em}.actions{flex-wrap:wrap;gap:4px 16px;display:flex}.button{color:var(--link);text-decoration:underline}.button.ghost{color:var(--link)}.section{margin-top:32px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.section-head h2{margin:0 0 .5em}.grid,.list{gap:0;display:grid}.card,.row{margin:0 0 1.1em;display:block}.card h3,.row h3,.card h2,.row h2{margin:0;font-size:1em;font-weight:400}.card p,.row p{margin:.15em 0 0}.row time,.row>.meta,.row>div,.card .meta{display:block}.feature{gap:8px 32px;display:grid}@media (width>=720px){.feature{grid-template-columns:1fr 1fr}}.feature h2{margin-top:0}.feature ul{margin:0}.chips{flex-wrap:wrap;gap:0 12px;margin:0;padding:0;font-size:.875em;list-style:none;display:flex}.chips li{margin:0}.chips li:before{content:"#";color:var(--muted)}.cta{border-top:1px solid var(--line);margin-top:40px;padding-top:16px}.cta h2{margin-top:0}.article-head{margin-bottom:24px}.article-head .meta{flex-wrap:wrap;gap:4px 16px;display:flex}.prose{max-width:70ch}.prose h2{font-size:1.1em}.prose blockquote{border-left:3px solid var(--line);color:var(--muted);margin:1em 0;padding-left:12px}.prose code{background:0 0;font-family:inherit}.prose h3{margin-top:1.4em;font-size:1em}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.2em;font-size:.9em}.prose th,.prose td{border-top:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 10px 6px 0}.prose tr:last-child td{border-bottom:1px solid var(--line)}.prose th{font-weight:600}.prose ol ol,.prose ol ul,.prose ul ul{margin-top:.25em}.keypoints{margin:24px 0}.keypoints h2{margin:0 0 .5em;font-size:1em}.keypoints ol{margin:0}.video{aspect-ratio:16/9;background:#f2f2f2;max-width:640px;margin:20px 0;position:relative}.video .yt-link{display:block;position:absolute;inset:0}.video img{object-fit:cover;width:100%;height:100%;display:block}.video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video button{cursor:pointer;width:100%;height:100%;font:inherit;color:#fff;background:0 0;border:0;place-items:center;display:grid;position:absolute;inset:0}.video button span{background:#000;padding:8px 14px;transition:transform .12s ease-out}.video button:active span{transform:translateY(1px)scale(.98)}.video button,.video iframe{opacity:1;transition:opacity .24s ease-out}@starting-style{.video button,.video iframe{opacity:0}}.timestamps{margin:0;padding:0;list-style:none}.timestamps li{grid-template-columns:72px 1fr;gap:8px;display:grid}.timestamps a{font-variant-numeric:tabular-nums}.aside{margin-top:32px}.aside h2{font-size:1em}.source{color:var(--muted);margin-top:24px;font-size:.875em}.about{gap:24px;display:grid}@media (width>=720px){.about{grid-template-columns:1fr 160px}.about .portrait{order:2}}.timeline{margin:0 0 1em;padding:0;list-style:none}.timeline li{grid-template-columns:1fr;gap:0;margin-bottom:.6em;display:grid}@media (width>=720px){.timeline li{grid-template-columns:140px 1fr;gap:16px}}.timeline .when{color:var(--muted);font-variant-numeric:tabular-nums}.timeline b{font-weight:600}.timeline p{color:var(--muted);margin:.15em 0 0;font-size:.9em}.breadcrumbs{color:var(--muted);margin:0 0 12px;font-size:.875em}.breadcrumbs ol{flex-wrap:wrap;gap:0 8px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{margin:0}.breadcrumbs li+li:before{content:"/";color:var(--muted);margin-right:8px}@media screen and (prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(10px)}.reveal.is-in{opacity:1;transition:opacity .45s ease-out,transform .45s ease-out;transform:none}}
