@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-ext-wght-normal.EocZY2iu.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");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{color-scheme:light dark;--accent:#6d28d9;--accent-pressed:#5b21b6;--accent-soft:#6d28d91a;--accent-ring:#6d28d959;--on-accent:#fff;--brand-indigo:#312e81;--canvas:#fff;--parchment:#f5f5f7;--card:#f5f5f7;--card-on-alt:#fff;--fill-subtle:#0000000a;--fill-hover:#00000012;--hairline:#00000014;--ink:#1d1d1f;--ink-2:#6e6e73;--ink-3:#86868b;--success:#248a3d;--shadow-shot:0 32px 80px -24px #312e8159, 0 0 0 .5px #0000001a;--glow:radial-gradient(60% 60% at 50% 40%, #6d28d929, transparent 70%);--font-ui:"Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI Variable", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:18px;--ease:cubic-bezier(.32, .72, 0, 1);--header-h:56px}@media (prefers-color-scheme:dark){:root{--accent:#8b5cf6;--accent-pressed:#7c3aed;--accent-soft:#8b5cf62e;--accent-ring:#8b5cf673;--canvas:#1c1c1e;--parchment:#161618;--card:#232326;--card-on-alt:#1c1c1e;--fill-subtle:#ffffff0f;--fill-hover:#ffffff1a;--hairline:#ffffff1a;--ink:#f5f5f7;--ink-2:#a1a1a6;--ink-3:#8e8e93;--success:#30d158;--shadow-shot:0 32px 80px -24px #000000b3, 0 0 0 .5px #ffffff1f;--glow:radial-gradient(60% 60% at 50% 40%, #8b5cf638, transparent 70%)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{background:var(--canvas);color:var(--ink);font-family:var(--font-ui);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.55}img,svg,picture{max-width:100%;display:block}h1,h2,h3,p,ul,figure{margin:0}h1,h2,h3{text-wrap:balance;font-weight:600}p{text-wrap:pretty}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}code,kbd,pre{font-family:var(--font-mono)}:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--accent-soft)}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:9999px;padding:8px 16px;font-weight:600;position:absolute;top:-48px;left:16px}.skip-link:focus{top:8px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{width:min(1120px,100% - 32px);margin-inline:auto}.narrow{width:min(760px,100% - 32px);margin-inline:auto}.section{padding-block:clamp(64px,10vw,120px)}.section-alt{background:var(--parchment)}.section-alt .card{background:var(--card-on-alt)}.stack>*+*{margin-top:16px}.eyebrow{color:var(--accent);letter-spacing:0;font-size:15px;font-weight:600}.display{letter-spacing:-.035em;font-size:clamp(40px,7vw,72px);line-height:1.04}.title{letter-spacing:-.03em;font-size:clamp(32px,5vw,52px);line-height:1.08}.h2{letter-spacing:-.025em;font-size:clamp(28px,4vw,44px);line-height:1.1}.lead{color:var(--ink-2);font-size:clamp(18px,2.1vw,21px);line-height:1.5}.muted{color:var(--ink-2)}.small{font-size:14px;line-height:1.5}.btn{letter-spacing:-.01em;white-space:nowrap;border-radius:9999px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 22px;font-size:16px;font-weight:600;transition:background-color .12s,transform .12s;display:inline-flex}.btn:hover{text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-pressed)}.btn-secondary{background:var(--fill-subtle);color:var(--ink)}.btn-secondary:hover{background:var(--fill-hover)}.btn-sm{min-height:32px;padding:0 14px;font-size:14px}.btn-lg{min-height:52px;padding:0 28px;font-size:17px}.btn-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.link-arrow{align-items:center;gap:6px;font-weight:600;display:inline-flex}.site-header{z-index:50;background:color-mix(in srgb, var(--canvas) 78%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);box-shadow:inset 0 -.5px 0 var(--hairline);position:sticky;top:0}@media (prefers-reduced-transparency:reduce){.site-header{background:var(--canvas);backdrop-filter:none}}.header-inner{min-height:var(--header-h);align-items:center;gap:24px;display:flex}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:600;display:inline-flex}.brand:hover{text-decoration:none}.nav{gap:4px;margin-right:auto;display:flex}.nav a{color:var(--ink-2);border-radius:9999px;padding:6px 12px;font-size:15px}.nav a:hover{color:var(--ink);background:var(--fill-subtle);text-decoration:none}.nav a[aria-current=page]{color:var(--ink);font-weight:600}.header-actions{align-items:center;gap:8px;display:flex}.lang-switch{min-width:36px;height:32px;color:var(--ink-2);letter-spacing:.02em;border-radius:9999px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.lang-switch:hover{background:var(--fill-subtle);color:var(--ink);text-decoration:none}@media (width<=720px){.header-inner{flex-wrap:wrap;gap:0 12px;padding-top:8px}.brand{margin-right:auto}.nav{order:3;width:100%;margin:0 0 4px -12px}}.site-footer{box-shadow:inset 0 .5px 0 var(--hairline);color:var(--ink-2);padding-block:40px;font-size:14px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;display:flex}.footer-brand{align-items:center;gap:10px;display:flex}.footer-links{flex-wrap:wrap;gap:8px 20px;padding:0;list-style:none;display:flex}.footer-links a{color:var(--ink-2)}.footer-links a:hover{color:var(--ink)}.shot img{width:100%;height:auto;box-shadow:var(--shadow-shot);background:var(--canvas);border-radius:12px}.hero{text-align:center;padding-top:clamp(48px,9vw,104px);overflow-x:clip}.hero .lead{max-width:680px;margin-inline:auto}.hero .btn-row{justify-content:center}.hero-icon{filter:drop-shadow(0 12px 24px #312e814d);margin:0 auto 24px}.hero-platforms{color:var(--ink-3);margin-top:16px;font-size:14px}.hero-shot{margin-top:clamp(40px,7vw,72px);position:relative}.hero-shot:before{content:"";background:var(--glow);z-index:-1;pointer-events:none;position:absolute;inset:-12% -8% -4%}.grid{gap:16px;display:grid}.grid>*,.gallery>*,.spotlight-head>*{min-width:0}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}.card{border-radius:var(--r-xl);background:var(--card);padding:28px}.card h3,.card .card-title{letter-spacing:-.015em;margin-top:16px;font-size:19px;line-height:1.3}.card p{color:var(--ink-2);margin-top:8px;font-size:16px}.icon-tile{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;place-items:center;display:inline-grid}.check-list{color:var(--ink-2);margin-top:14px;padding:0;font-size:15px;list-style:none}.check-list li{padding-left:18px;position:relative}.check-list li+li{margin-top:6px}.check-list li:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.66em;left:2px}.spotlight-head{align-items:end;gap:16px 48px;margin-bottom:clamp(32px,5vw,48px);display:grid}@media (width>=900px){.spotlight-head{grid-template-columns:1fr 1fr}}.spotlight-head p:not(.eyebrow){color:var(--ink-2);font-size:18px}.terminal{border-radius:var(--r-md);background:var(--fill-subtle);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:16px;padding:12px 16px;font-size:13.5px;line-height:1.6;display:block}.terminal:before{content:"$ ";color:var(--ink-3)}.section-head{max-width:720px;margin-bottom:clamp(32px,5vw,56px)}.section-head.center{text-align:center;margin-inline:auto}.section-head .lead{margin-top:16px}.page-hero{padding-block:clamp(48px,8vw,96px) clamp(32px,5vw,56px)}.page-hero .lead{max-width:640px;margin-top:16px}.cta{text-align:center}.cta .btn-row{justify-content:center;margin-top:28px}.cta p{margin-top:12px}.gallery{gap:48px 32px;display:grid}@media (width>=900px){.gallery{grid-template-columns:1fr 1fr}}.gallery figcaption{color:var(--ink-2);margin-top:20px;font-size:15px}.status-line{color:var(--ink-3);min-height:1.5em;margin-top:12px;font-size:15px}.recommended{border-radius:var(--r-xl);background:var(--accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px;margin-bottom:16px;padding:28px;display:flex}.recommended[hidden]{display:none}.recommended-label{color:var(--accent);font-size:14px;font-weight:600}.recommended-title{letter-spacing:-.02em;margin-top:4px;font-size:22px}.recommended-meta{color:var(--ink-2);margin-top:4px;font-size:15px}.platform{flex-direction:column;display:flex}.platform.is-current{box-shadow:inset 0 0 0 1.5px var(--accent)}.platform-head{align-items:center;gap:12px;display:flex}.platform-head h2{letter-spacing:-.02em;font-size:22px}.platform-req{color:var(--ink-2);margin-top:6px;font-size:15px}.dl-list{gap:8px;margin-top:20px;padding:0;list-style:none;display:grid}.dl-item{border-radius:var(--r-md);background:var(--canvas);min-height:48px;box-shadow:inset 0 0 0 .5px var(--hairline);color:var(--ink);align-items:center;gap:12px;padding:8px 14px;transition:background-color .12s;display:flex}.section-alt .dl-item,.card .dl-item{background:var(--canvas)}.dl-item:hover{background:var(--accent-soft);text-decoration:none}.dl-item .dl-name{flex:1;font-size:15px;font-weight:600}.dl-item .dl-size{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.dl-item svg{color:var(--accent);flex:none}.platform-notes{color:var(--ink-2);margin-top:20px;padding:0;font-size:14px;list-style:none}.platform-notes li+li{margin-top:8px}.release{box-shadow:inset 0 -.5px 0 var(--hairline);padding-block:40px}.release:first-child{padding-top:0}.release-head{flex-wrap:wrap;align-items:baseline;gap:8px 16px;display:flex}.release-head h2{letter-spacing:-.02em;font-size:28px}.release-date{color:var(--ink-3);font-size:15px}.badge{background:var(--fill-subtle);height:22px;color:var(--ink-2);border-radius:9999px;align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.prose{color:var(--ink);overflow-wrap:anywhere;margin-top:16px;font-size:16px;line-height:1.6}.prose>*+*{margin-top:12px}.prose h1,.prose h2,.prose h3,.prose h4{letter-spacing:-.01em;margin-top:24px;font-size:18px}.prose ul,.prose ol{padding-left:22px}.prose li+li{margin-top:4px}.prose code{background:var(--fill-subtle);border-radius:6px;padding:1px 6px;font-size:.88em}.prose pre{border-radius:var(--r-md);background:var(--fill-subtle);padding:12px 16px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{border-radius:var(--r-md);height:auto}.prose .anchor,.prose .octicon{display:none}.release-link{margin-top:16px;font-size:15px;display:inline-flex}.notice{border-radius:var(--r-xl);background:var(--card);color:var(--ink-2);padding:28px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.btn:active{transform:none}}
