@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/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:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff)format("woff")}@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")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}:root{color-scheme:light;--bg:#f6f7f4;--surface:#fff;--ink:#13201f;--muted:#3e4c4a;--muted-2:#4a5654;--line:#dce3e0;--line-strong:#c9d3d0;--button-line:#b8c4c1;--accent:#0b6e69;--accent-hover:#08524e;--dark:#10201f;--dark-line:#2c4240;--dark-ink:#e8eeec;--dark-muted:#b7c6c3;--dark-accent:#7fd3cc;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--gutter:24px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-wrap:break-word;margin:0;font-size:16px;line-height:1.5}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-hover)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3{letter-spacing:-.02em;margin:0}p{margin:0}.skip-link{z-index:10;background:var(--surface);color:var(--ink);border:2px solid var(--accent);border-radius:8px;padding:12px 16px;font-weight:600;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}.wrap{max-width:1200px;padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.eyebrow{font-family:var(--mono);letter-spacing:.04em;color:var(--accent);text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:500}.eyebrow.plain{color:var(--muted);font-weight:400}.lead{color:var(--muted);font-size:18px;line-height:1.55}.btn{text-align:center;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:0 16px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:var(--accent-hover);color:#fff}.btn-secondary{border-color:var(--button-line);color:var(--ink);background:0 0}.btn-secondary:hover{border-color:var(--ink);color:var(--ink)}.btn-lg{min-height:52px;padding:0 24px;font-size:17px}.btn-link{color:var(--ink);text-underline-offset:4px;padding:0 12px;text-decoration:underline}.btn-link:hover{color:var(--accent)}.site-header{border-bottom:1px solid var(--line);background:var(--bg)}.site-nav{flex-wrap:wrap;align-items:center;gap:12px 32px;padding-top:18px;padding-bottom:18px;display:flex}.brand{min-height:44px;color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-size:20px;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.nav-links{flex-wrap:wrap;flex:auto;gap:0 24px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.nav-links a{color:var(--ink);padding:10px 0;text-decoration:none;display:inline-block}.nav-links a:hover{color:var(--accent);text-decoration:underline}.nav-actions{flex-wrap:wrap;gap:12px;display:flex}@media (width<=720px){.site-nav{gap:8px 16px}.nav-links{flex-basis:100%;order:3;gap:0 18px}.nav-actions{margin-left:auto}.nav-actions .btn-github{display:none}}.hero{padding-top:88px;padding-bottom:56px}.hero h1{letter-spacing:-.025em;max-width:900px;font-size:clamp(40px,6vw,68px);font-weight:700;line-height:1.04}.hero .lead{max-width:720px;margin-top:24px;font-size:20px}.cta-row{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.browser{border:1px solid var(--line-strong);background:var(--surface);border-radius:14px;margin:56px 0 0;overflow:hidden;box-shadow:0 24px 60px -30px #13201f59}.browser-bar{background:#eef2f0;border-bottom:1px solid #e1e7e5;align-items:center;gap:8px;padding:12px 16px;display:flex}.browser-bar .dot{background:var(--line-strong);border-radius:50%;flex:none;width:10px;height:10px}.browser-bar .addr{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);color:var(--muted-2);margin-left:12px;font-size:12px;overflow:hidden}.shot-caption{color:var(--muted-2);border-top:1px solid #e1e7e5;padding:12px 16px;font-size:14px}.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.facts-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px;margin:0 auto;padding-top:36px;padding-bottom:36px;display:grid}.facts-grid dt{font-size:26px;font-weight:700;line-height:1.25}.facts-grid dd{color:var(--muted-2);margin:6px 0 0;font-size:15px}.built-on{padding-top:56px;padding-bottom:24px}.chips{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:10px 16px;font-size:15px;font-weight:500}.section{padding-top:72px;padding-bottom:72px}.section-lg{padding-top:96px;padding-bottom:96px}.h2-xl{font-size:40px;line-height:1.15}.h2{font-size:34px;line-height:1.2}@media (width<=720px){.h2-xl{font-size:32px}.h2{font-size:28px}.hero{padding-top:56px}.section-lg{padding-top:72px;padding-bottom:72px}}.section .lead{max-width:680px;margin-top:14px}.fit-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:24px;margin-top:36px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:32px}@media (width<=480px){.card{padding:24px}}.card h3{letter-spacing:-.01em;margin-bottom:18px;font-size:20px}.card ul{flex-direction:column;gap:12px;margin:0;padding-left:20px;font-size:16px;line-height:1.5;display:flex}.product{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.bands{flex-direction:column;gap:112px;display:flex}@media (width<=720px){.bands{gap:72px}}.band{flex-wrap:wrap;align-items:center;gap:40px 56px;display:flex}.band>*{flex:420px;min-width:0}.band.reverse{flex-direction:row-reverse}.band-copy p.body{color:var(--muted);margin-top:18px;font-size:17px;line-height:1.6}.band-copy .more{margin-top:20px;font-size:16px;font-weight:500;display:inline-block}.band-figure{margin:0}.band-figure .frame{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;overflow:hidden;box-shadow:0 18px 40px -28px #13201f66}.band-figure figcaption{color:var(--muted-2);margin-top:12px;font-size:14px}.phone-wrap{justify-content:center;display:flex}.phone{border:10px solid var(--ink);background:var(--bg);border-radius:36px;width:280px;max-width:100%;padding:28px 18px 24px}.phone-title{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:12px}.phone ol{flex-direction:column;gap:10px;margin:16px 0 0;padding:0;list-style:none;display:flex}.phone li{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:12px;padding:14px;font-size:15px;line-height:1.4;display:flex}.phone .step{background:var(--accent);color:#fff;width:26px;height:26px;font-family:var(--mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:500;display:inline-flex}.phone li strong{font-weight:600;display:block}.phone li span.note{color:var(--muted-2);font-size:14px}.code-panel{background:var(--dark);color:var(--dark-ink);border-radius:12px;padding:28px;overflow-x:auto}@media (width<=480px){.code-panel{padding:20px}}.code-panel .comment{font-family:var(--mono);color:#9fb1ae;margin:0 0 14px;font-size:12px}.code-panel pre{font-family:var(--mono);white-space:pre;margin:0;font-size:15px;line-height:1.7}.code-panel ul{font-family:var(--mono);margin:0;padding:0;font-size:14px;line-height:1.6;list-style:none}.code-panel li+li{margin-top:14px}.code-panel .path{color:var(--dark-ink);overflow-wrap:anywhere;display:block}.code-panel .what{color:#9fb1ae;font-family:var(--sans);font-size:14px;display:block}.code-panel:focus-visible{outline-color:var(--dark-accent)}.trust{background:var(--dark);color:var(--dark-ink)}.trust .eyebrow{color:var(--dark-accent)}.trust h2{color:#fff;max-width:760px}.trust-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin-top:48px;display:grid}.trust-card{border:1px solid var(--dark-line);border-radius:12px;padding:28px}.trust-card h3{letter-spacing:-.01em;color:#fff;margin-bottom:10px;font-size:19px}.trust-card p{color:var(--dark-muted);font-size:16px;line-height:1.6}.trust-links{flex-wrap:wrap;gap:12px 28px;margin-top:40px;font-size:16px;display:flex}.trust a{color:var(--dark-accent)}.trust a:hover{color:#fff}.trust :focus-visible{outline-color:var(--dark-accent)}.install .band{align-items:flex-start}.link-row{flex-wrap:wrap;gap:12px 24px;margin-top:22px;font-size:16px;font-weight:500;display:flex}.releases{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.releases-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.releases-head a{font-size:16px;font-weight:500}.release-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;margin:32px 0 0;padding:0;list-style:none;display:grid}.release-grid li{border:1px solid var(--line);border-radius:12px;padding:24px}.release-grid .meta{font-family:var(--mono);color:var(--muted-2);font-size:13px}.release-grid .meta a{color:var(--muted-2)}.release-grid .summary{margin-top:10px;font-size:16px;line-height:1.55}.closing{text-align:center}.closing h2{max-width:760px;margin:0 auto}.closing .lead{max-width:640px;margin:16px auto 0}.closing .cta-row{justify-content:center;margin-top:32px}.site-footer{border-top:1px solid var(--line)}.footer-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px;padding-top:48px;padding-bottom:48px;font-size:15px;display:grid}.footer-grid h2{letter-spacing:0;margin-bottom:4px;font-size:15px;font-weight:600}.footer-grid ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.footer-grid ul a{padding:6px 0;display:inline-block}.footer-brand{margin-bottom:8px;font-size:17px;font-weight:700}.footer-note{color:var(--muted-2);line-height:1.55}.prose{max-width:760px;padding-top:72px;padding-bottom:96px}.prose h1{letter-spacing:-.025em;font-size:clamp(34px,5vw,48px);line-height:1.1}.prose h2{margin-top:48px;font-size:26px;line-height:1.25}.prose p,.prose li{font-size:17px;line-height:1.65}.prose p{margin-top:16px}.prose ul,.prose ol{margin:16px 0 0;padding-left:22px}.prose li+li{margin-top:8px}.prose code{font-family:var(--mono);background:#e9eeec;border-radius:4px;padding:1px 5px;font-size:.92em}.prose .code-panel{margin-top:20px}.prose .code-panel code{font-size:inherit;background:0 0;padding:0}.prose .cta-row{margin-top:32px}main:focus{outline:none}@media (width<=480px){.code-panel pre{font-size:13px}.btn-link{padding:0 4px}}
