@font-face{font-family:Sora;src:url(/fonts/sora-latin.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-sans-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-sans-latin-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/plex-sans-latin-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-latin-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{color-scheme:light;--ink:#0f1b33;--slate:#5b6b84;--mist:#dce4ef;--paper:#fff;--paper-2:#f3f7fc;--blue-400:#22a8f6;--blue-500:#1e7be6;--blue-600:#1a6fd6;--blue-800:#16337f;--ok:#178a5a;--warn:#b7791f;--danger:#c2382d;--danger-bg:#fdf1f0;--focus:#ffb224;--sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;--display:Sora,"Segoe UI",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--container:1160px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5rem;overflow-x:clip}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);min-height:100vh;color:var(--ink);font:17px/1.6 var(--sans);flex-direction:column;margin:0;display:flex;overflow-x:clip}main{flex:1}img{max-width:100%;height:auto}a{color:var(--blue-600);text-underline-offset:.18em}a:hover{color:var(--blue-800)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600;line-height:1.15}h1{letter-spacing:-.02em;font-size:clamp(38px,5.5vw,56px)}h2{font-size:clamp(28px,3.2vw,34px)}h3{font-size:21px}p{margin:0 0 1em}code,kbd,pre{font-family:var(--mono);font-size:.9em}:not(pre)>code{background:var(--paper-2);border:1px solid var(--mist);overflow-wrap:anywhere;border-radius:6px;padding:.08em .35em}button,input,select{font:inherit}button{cursor:pointer}.visually-hidden{clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:100;background:var(--focus);color:var(--ink);border-radius:6px;padding:8px 16px;font-weight:600;position:absolute;top:-64px;left:16px}.skip-link:focus{top:16px}.container{width:min(100% - 48px,var(--container));margin-inline:auto}.narrow{width:min(100% - 48px,800px);margin-inline:auto}.muted{color:var(--slate)}.small{font-size:13.5px}.lead{color:var(--slate);max-width:56ch;font-size:clamp(18px,1.7vw,21px);line-height:1.5}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.btn,.btn-primary,.btn-quiet,.btn-danger{border:1px solid var(--mist);background:var(--paper);min-height:44px;color:var(--ink);font:600 15px/1 var(--display);border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 20px;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover{border-color:var(--ink);color:var(--ink)}.btn-primary{background:var(--blue-600);border-color:var(--blue-600);color:#fff}.btn-primary:hover{background:var(--blue-800);border-color:var(--blue-800);color:#fff}.btn-quiet{color:var(--slate);background:0 0;border-color:#0000}.btn-quiet:hover{color:var(--ink);text-decoration:underline}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger-bg);color:var(--danger)}.btn-lg{min-height:48px}.btn-sub{opacity:.85;font-size:13px;font-weight:400;display:block}.btn-stack{flex-direction:column;gap:4px}.btn svg{width:18px;height:18px}.code{background:var(--paper-2);border:1px solid var(--mist);border-radius:10px;align-items:flex-start;gap:12px;margin:0 0 16px;padding:14px 16px;display:flex}.code pre{min-width:0;color:var(--ink);flex:1;margin:0;line-height:1.6;overflow:auto}.code pre code{white-space:pre-wrap;overflow-wrap:anywhere}.code .comment{color:var(--slate)}.copy-btn{border:1px solid var(--mist);background:var(--paper);min-height:30px;color:var(--ink);font:500 13px/1 var(--sans);border-radius:6px;flex:none;padding:0 10px}.copy-btn:hover{border-color:var(--ink)}.copy-btn[data-copied]{color:var(--ok);border-color:var(--ok)}.tabs [role=tablist]{border-bottom:1px solid var(--mist);gap:4px;margin:16px 0 12px;display:flex}.tabs [role=tab]{color:var(--slate);font:600 14.5px/1 var(--display);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px}.tabs [role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.tabs .tab-title{margin:0 0 8px;font-size:14.5px}.tabs[data-enhanced] .tab-title{display:none}.notice{border-left:3px solid var(--blue-500);background:var(--paper-2);border-radius:10px;padding:14px 16px}.notice-error{border-left-color:var(--danger);background:var(--danger-bg)}.notice>:last-child{margin-bottom:0}.badge{border:1px solid var(--mist);color:var(--slate);vertical-align:middle;border-radius:6px;padding:2px 6px;font-size:13px;display:inline-block}.table-wrap{margin-bottom:12px;overflow-x:auto}table{border-collapse:collapse;width:100%}table th{text-align:left;font:600 13px/1.4 var(--sans);color:var(--slate);border-bottom:1px solid var(--mist);white-space:nowrap;padding:10px 12px}table td{border-bottom:1px solid var(--mist);vertical-align:top;padding:12px}table tr:last-child>*{border-bottom:0}table .num{text-align:right;font-variant-numeric:tabular-nums}.hash-cell{white-space:nowrap}.hash-cell .copy-btn{margin-left:8px}.kv{grid-template-columns:max-content 1fr;gap:8px 24px;margin:0 0 16px;font-size:15px;display:grid}.kv dt{color:var(--slate)}.kv dd{overflow-wrap:anywhere;margin:0}.section{border-top:1px solid var(--mist);padding-block:clamp(56px,9vw,112px)}.section-head{max-width:68ch;margin-bottom:40px}.section-head .lead{margin-top:16px}.page-head{padding-block:clamp(56px,9vw,96px) 40px}.legal-page{padding-block:clamp(56px,8vw,96px) 96px}.legal-page h2{margin-top:48px;font-size:26px}.legal-page li{margin-bottom:10px}.legal-page pre,.legal-page .callout{border:1px solid var(--mist);background:var(--paper-2);border-radius:10px;padding:14px 16px;overflow:auto}.legal-page .callout{color:var(--ink)}.site-header{z-index:50;backdrop-filter:blur(10px);border-bottom:1px solid var(--mist);background:#ffffffeb;position:sticky;top:0}.header-inner{align-items:center;gap:16px;min-height:64px;display:flex;position:relative}.lockup{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.lockup img{flex:none;width:28px;height:32px}.wordmark{font:600 19px/1 var(--display);letter-spacing:-.02em;color:var(--ink)}.wordmark b{font-weight:inherit;color:var(--blue-500)}.site-nav{margin-left:auto}.site-nav ul{gap:2px;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--slate);font:500 15px/1 var(--display);border-bottom:2px solid #0000;padding:12px 10px;text-decoration:none;display:block}.site-nav a:hover{color:var(--ink)}.site-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.menu{margin-left:auto;display:none}.menu>summary{cursor:pointer;border-radius:6px;place-items:center;width:44px;height:44px;list-style:none;display:grid}.menu>summary::-webkit-details-marker{display:none}.menu-icon{gap:4px;display:grid}.menu-icon i{background:var(--ink);width:22px;height:2px;display:block}.menu-icon.close{width:22px;height:22px;display:block;position:relative}.menu-icon.close i{position:absolute;top:10px;transform:rotate(45deg)}.menu-icon.close i+i{transform:rotate(-45deg)}.menu[open] .open,.menu:not([open]) .close{display:none}.menu-panel{background:var(--paper);border-bottom:1px solid var(--mist);position:absolute;top:64px;left:0;right:0;box-shadow:0 24px 40px -24px #0f1b3340}.menu-panel a{border-top:1px solid var(--mist);min-height:52px;color:var(--ink);font:500 17px/1 var(--display);align-items:center;padding:0 24px;text-decoration:none;display:flex}.menu-panel a[aria-current=page]{color:var(--blue-600);box-shadow:inset 3px 0 var(--blue-600)}@media (width<=640px){.site-nav{display:none}.menu{display:block}.site-header .container{position:static}.site-header .lockup .wordmark{display:none}}.site-footer{background:var(--paper-2);border-top:1px solid var(--mist);padding:48px 0 32px;font-size:14.5px}.footer-grid{grid-template-columns:1.4fr 2fr;gap:48px;display:grid}.footer-tagline{color:var(--slate);margin:16px 0 0}.footer-nav{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.footer-nav h2{margin:0 0 10px;font-size:14px}.footer-nav a{color:var(--slate);margin:0 0 6px;text-decoration:none;display:block}.footer-nav a:hover{color:var(--ink);text-decoration:underline}.footer-end{border-top:1px solid var(--mist);color:var(--slate);margin-top:40px;padding-top:16px;font-size:13px}.footer-end code{overflow-wrap:anywhere}@media (width<=700px){.footer-grid{grid-template-columns:1fr;gap:32px}.footer-nav{grid-template-columns:1fr 1fr;gap:24px}}@media (width<=420px){.footer-nav{grid-template-columns:1fr}}.hero-wrap{background:var(--paper-2);border-bottom:1px solid var(--mist)}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(32px,6vw,80px);padding-block:clamp(56px,9vw,112px);display:grid}.hero h1{max-width:14ch;font-size:clamp(42px,6.5vw,68px);line-height:1.02}.hero .lead{margin-top:20px}.hero .btn-row{margin-top:28px}.hero .code{max-width:520px;margin-top:20px}.hero-meta{margin-top:12px;font-size:13.5px}.stages{gap:0;padding:12px 0;display:grid;position:relative}.stage{border:1px solid var(--mist);background:var(--paper-2);border-radius:14px;width:calc(100% - 96px);padding:20px 24px 22px 56px;position:relative}.stage+.stage{margin-top:-12px}.stage.plan{z-index:2;border:2px solid var(--blue-500);background:var(--paper);margin-left:48px;box-shadow:0 24px 48px -24px #16337f59}.stage.execute{z-index:1;border-color:var(--blue-800);background:var(--blue-800);color:#fff;margin-left:96px}.stage h3{font-size:21px}.stage p{color:var(--slate);margin-top:4px;font-size:15px;line-height:1.5}.stage.execute p{color:#fffc}.stage .node{border:3px solid var(--paper-2);background:var(--blue-400);border-radius:50%;width:12px;height:12px;position:absolute;top:26px;left:22px}.stage.plan .node{border-color:var(--paper)}.stage.execute .node{border-color:var(--blue-800)}.trace{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.trace path{fill:none;stroke:var(--blue-500);stroke-width:2px;stroke-dasharray:600;stroke-dashoffset:600px;animation:.9s ease-out .2s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.trace path{stroke-dashoffset:0}}@media (width<=900px){.hero{grid-template-columns:1fr}.stages:before{content:"";background:var(--blue-500);width:2px;position:absolute;top:28px;bottom:28px;left:27px}.stage,.stage.plan,.stage.execute{z-index:2;width:100%;margin-left:0}.stage+.stage{margin-top:10px}.trace{display:none}}.flow{grid-template-columns:1fr auto 1fr auto 1fr;gap:0 20px;margin:48px 0 0;padding:0;list-style:none;display:grid}.flow h3{font-size:21px}.flow .sub{color:var(--blue-500);font:500 14.5px/1.4 var(--sans);margin:4px 0 12px}.flow p{color:var(--slate);font-size:15px}.flow .link{width:120px;color:var(--slate);text-align:center;align-self:center;padding-top:22px;font-size:13px;line-height:1.35;position:relative}.flow .link:before{content:"";background:var(--mist);height:2px;position:absolute;top:8px;left:0;right:0}.flow .link:after{content:"";background:var(--blue-400);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:calc(50% - 5px)}.features{grid-template-columns:1fr 1fr;gap:0 64px;margin:40px 0 0;padding:0;list-style:none;display:grid}.features li{border-top:1px solid var(--mist);padding:22px 0}.features h3{margin-bottom:6px;font-size:19px}.features p{color:var(--slate);font-size:15.5px}.band{background:var(--blue-800);color:#fff}.band h2{color:#fff}.band .lead{color:#ffffffd1}.band-grid{grid-template-columns:1fr 1fr;gap:64px;display:grid}.band ul{gap:18px;margin:0;padding:0;list-style:none;display:grid}.band li{padding-left:26px;position:relative}.band li:before{content:"";background:var(--blue-400);border-radius:50%;width:10px;height:10px;position:absolute;top:.6em;left:0}.start{grid-template-columns:1fr 1fr;gap:64px;display:grid}.start h3{margin-bottom:12px}@media (width<=900px){.flow,.features,.band-grid,.start{grid-template-columns:1fr}.flow .link{text-align:left;width:auto;padding:8px 0 8px 22px}.flow .link:before{width:2px;height:auto;inset:0 auto 0 4px}.flow .link:after{top:calc(50% - 5px);left:0}}.dl-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}.dl-card{border:2px solid var(--blue-500);background:var(--paper);padding:clamp(24px,4vw,40px)}.download-kicker{color:var(--slate);margin:0 0 12px;font-size:15px}.dl-platform{margin-bottom:6px;font-size:34px}.dl-arch{color:var(--slate);font:400 17px/1.4 var(--sans);margin-top:4px;display:block}.dl-version{color:var(--slate)}.dl-button{flex-direction:column;gap:4px;width:100%;max-width:28rem}.dl-links{margin:16px 0 0}.hash-row{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:20px;font-size:13.5px;display:flex}.hash-label{color:var(--slate)}.hash{overflow-wrap:anywhere;word-break:break-all}.side-install{border-left:1px solid var(--mist);padding:24px}.side-install h2{font-size:21px}.section-tight{padding-block:48px 0}.picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.field label{color:var(--ink);font:500 14.5px/1.4 var(--sans);margin-bottom:6px;display:block}.field select{border:1px solid var(--mist);background:var(--paper);width:100%;height:44px;color:var(--ink);border-radius:6px;padding:0 12px}.choice-row{flex-wrap:wrap;gap:12px;margin:16px 0;display:flex}.before-run{padding-bottom:96px}.before-grid{grid-template-columns:1fr 1fr;gap:48px;display:grid}@media (width<=900px){.dl-layout,.before-grid{grid-template-columns:1fr}}@media (width<=720px){.picker{grid-template-columns:1fr}}[data-js-only]{display:none}html.js [data-js-only]{display:block}.release-latest{border-top:2px solid var(--ink);margin-bottom:64px;padding-top:24px}.release-title{margin-bottom:6px;font-size:34px}.section-label{margin:48px 0 16px;font-size:21px}.release-previous{border-top:1px solid var(--mist);padding:20px 0}.release-previous:last-child{border-bottom:1px solid var(--mist)}.release-previous summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px 12px;list-style-position:inside;display:flex}.release-summary-tag{font:600 21px/1.3 var(--display)}.release-body{padding:24px 0 8px 28px}.prose{max-width:68ch}.prose h3,.prose h4,.prose h5,.prose h6{margin-top:28px;font-size:19px}.prose ul{padding-left:24px}.prose pre{border:1px solid var(--mist);background:var(--paper-2);border-radius:10px;padding:14px 16px;overflow:auto}.prose hr{border:0;border-top:1px solid var(--mist);margin:24px 0}.toc{border-bottom:1px solid var(--mist);flex-wrap:wrap;gap:8px 16px;margin:0 0 48px;padding:0 0 12px;font-size:14.5px;list-style:none;display:flex}.steps{counter-reset:step;margin:0 0 48px;padding:0;list-style:none;position:relative}.step{counter-increment:step;padding:0 0 48px 56px;position:relative}.step:before{content:counter(step);border:1px solid var(--mist);width:36px;height:36px;font:600 15px/1 var(--display);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0}.step:after{content:"";background:var(--mist);width:2px;position:absolute;top:40px;bottom:12px;left:17px}.step:last-child:after{background:var(--blue-400);bottom:40px}.step h2{margin-bottom:8px;font-size:26px}.checklist{padding-left:24px}.checklist li{margin-bottom:6px}.more{border-top:1px solid var(--mist);margin-top:8px;padding-top:12px}.more summary{cursor:pointer;font-weight:600}@media (width<=560px){.container,.narrow{width:min(100% - 32px,var(--container))}.hero{padding-block:56px}.step{padding-left:48px}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:8px}table{min-width:680px}table.downloads{min-width:0}table.downloads thead{display:none}table.downloads,table.downloads tbody,table.downloads tr,table.downloads th,table.downloads td{display:block}table.downloads tr{border-bottom:1px solid var(--mist);padding:16px 0}table.downloads th,table.downloads td{border:0;padding:3px 0}table.downloads .num{text-align:left}}
