:root{--bg:#0b1020;--panel:#121a2e;--panel-2:#172138;--line:#26324d;--ink:#e8edf7;--ink-2:#a9b4cc;--accent:#6aa9ff;--accent-bg:#4a90ff;--on-accent:#06101f;--link:#8bbcff;--head:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--w:1100px;--r:6px}@media (prefers-color-scheme:light){:root{--bg:#f6f8fc;--panel:#fff;--panel-2:#eef2fa;--line:#d3dbea;--ink:#0d1426;--ink-2:#44506a;--accent:#1f5fd6;--accent-bg:#1f5fd6;--on-accent:#fff;--link:#1a55c0}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:17px/1.65 var(--body);margin:0}a{color:var(--link);text-underline-offset:3px}img,svg{max-width:100%;height:auto}.wrap{max-width:var(--w);margin:0 auto;padding:0 18px}.skip{position:absolute;left:-999px}.skip:focus{background:var(--accent-bg);color:var(--on-accent);z-index:9;padding:6px 10px;top:8px;left:8px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}h1,h2,h3,h4{font-family:var(--body);letter-spacing:-.015em;margin:1.5em 0 .45em;font-weight:700;line-height:1.2}h1{margin-top:.25em;font-size:clamp(27px,4.6vw,42px)}h2{font-size:23px}h3{font-size:18px}h2.small{font-family:var(--head);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:14px}code,pre,kbd{font-family:var(--head);font-size:.88em}:not(pre)>code{background:var(--panel-2);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:4px;padding:1px 5px}pre{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px;line-height:1.5;overflow-x:auto}.mast{border-bottom:1px solid var(--line);background:var(--bg);z-index:5;position:sticky;top:0}.bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px;display:flex}.brand{font:700 22px var(--head);min-height:44px;color:var(--ink);letter-spacing:-.02em;align-items:center;text-decoration:none;display:inline-flex}.brand span{color:var(--accent)}.nav{font:600 15px var(--body);flex-wrap:wrap;gap:0 6px;display:flex}.nav a{color:var(--ink-2);border-bottom:2px solid #0000;align-items:center;min-height:44px;padding:0 10px;text-decoration:none;display:inline-flex}.nav a:hover{color:var(--ink)}.nav a[aria-current]{color:var(--accent);border-bottom-color:var(--accent)}.kick{font:600 13px var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0}.lede{color:var(--ink-2);max-width:62ch;margin:.5em 0 0;font-size:19px}.crumbs{font:500 14px var(--body);color:var(--ink-2);flex-wrap:wrap;gap:8px;padding:16px 0 0;display:flex}.crumbs a{color:var(--ink-2);align-items:center;min-height:32px;display:inline-flex}.prose{max-width:760px;margin-left:auto;margin-right:auto}.prose.static{padding-bottom:40px}.hub-head{max-width:none;margin:0;padding:22px 0 14px}.hub-head h1{max-width:24ch}.btn{background:var(--accent-bg);min-height:48px;color:var(--on-accent);font:700 16px var(--body);border-radius:var(--r);border:2px solid var(--accent-bg);align-items:center;padding:0 22px;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn.alt{color:var(--ink);border-color:var(--line);background:0 0}.btn.alt:hover{border-color:var(--accent)}.cta{flex-wrap:wrap;gap:10px;margin:22px 0 0;display:flex}.cols{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin:14px 0 28px;display:grid}@media (width>=960px){.cols.hub{grid-template-columns:repeat(3,1fr)}.cols.hub .story:last-child:nth-child(3n+1){grid-column:1/-1}.cols.hub .story:last-child:nth-child(3n+2){grid-column:span 2}}@media (width>=600px) and (width<=959px){.cols.hub{grid-template-columns:repeat(2,1fr)}.cols.hub .story:last-child:nth-child(odd){grid-column:1/-1}}.story{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);padding:16px;text-decoration:none;display:block}.story:hover{border-color:var(--accent)}.story h2,.story h3{margin:.35em 0 .3em;font-size:19px;line-height:1.25}.story p{color:var(--ink-2);margin:0;font-size:15.5px}.story .code{font:700 13px var(--head);color:var(--accent)}.hero{border-bottom:1px solid var(--line);background:linear-gradient(180deg, var(--panel-2), var(--bg))}.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:28px;padding-top:44px;padding-bottom:40px;display:grid}.hero h1{margin:.2em 0 .35em;font-size:clamp(30px,5vw,50px);line-height:1.08}.hero-art{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px}.hero-art figcaption{font:400 14px var(--body);color:var(--ink-2);padding:8px 6px 2px}.stats{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;margin:28px 0;display:grid}.stats div{border-right:1px solid var(--line);padding:14px 16px}.stats div:last-child{border-right:0}.stats dt{font:500 13px var(--head);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}.stats dd{font:700 26px var(--head);margin:4px 0 0}.stats dd.date{padding-top:7px;font-size:16px}.band-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;margin-top:34px;display:flex}.band-head h2{margin:0 0 8px;font-size:20px}.band-head a{font:600 12px var(--head)}.trust{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:34px 0 48px;display:grid}.trust div{border-left:3px solid var(--accent-bg);color:var(--ink-2);padding:4px 0 4px 14px;font-size:16px}.trust b{color:var(--ink);font:700 16px var(--body);margin-bottom:3px;display:block}.art-head{padding-top:10px}.dek{color:var(--ink-2);margin:.3em 0 .8em;font-size:19px}.by{color:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:12px 0 18px;padding:9px 0;font-size:15px}.by a{color:var(--ink)}.answer{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent-bg);border-radius:var(--r);margin:0 0 18px;padding:14px 18px}.answer .label,.affiliate .label{font:700 13px var(--head);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.answer p{margin:.35em 0 0;font-size:18.5px}.glance{background:var(--line);border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;margin:0 0 22px;display:grid;overflow:hidden}.glance div{background:var(--panel);padding:10px 14px}.glance dt{font:600 13px var(--head);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.glance dd{overflow-wrap:anywhere;margin:2px 0 0;font-size:15.5px}.toc{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin:0 0 22px;padding:10px 16px}.toc summary{font:700 14px var(--head);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;min-height:32px;color:var(--accent)}.toc ol{margin:8px 0 4px;padding-left:20px;font-size:16px}.toc a{color:var(--ink)}.body>:first-child{margin-top:0}.body h2{border-top:1px solid var(--line);margin-top:1.9em;padding-top:.6em;scroll-margin-top:70px}.body ul,.body ol{padding-left:22px}.body li{margin:.3em 0}.tbl{border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(to right, var(--bg) 30%, transparent) left center / 40px 100% no-repeat local, linear-gradient(to left, var(--bg) 30%, transparent) right center / 40px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #6aa9ff59, transparent) left center / 14px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #6aa9ff59, transparent) right center / 14px 100% no-repeat scroll;margin:1em 0;overflow-x:auto}.tbl table{border-collapse:collapse;width:100%;font-size:15.5px}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px}.tbl th{background:var(--panel-2);font:700 13px var(--head);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.tbl tr:last-child td{border-bottom:0}blockquote{border-left:3px solid var(--accent-bg);color:var(--ink-2);background:var(--panel);margin:1em 0;padding:4px 16px}figure{margin:1.2em 0}figure.lead,figure.diagram{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px}figcaption{color:var(--ink-2);margin-top:6px;font-size:14px}.faq details{border-bottom:1px solid var(--line);padding:10px 0}.faq summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.faq p{color:var(--ink-2);margin:.5em 0 0}.sources ol{padding-left:22px;font-size:16px}.sources li{overflow-wrap:anywhere;margin:.4em 0}.src-domain{color:var(--ink-2);font-size:14px}.editor{border-left:3px solid var(--accent-bg);color:var(--ink);margin:22px 0;padding:2px 0 2px 18px;font-size:17px;font-style:italic}[data-layout=reference] .editor{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r);background:var(--panel);margin:18px 0;padding:10px 14px;font-size:15px;font-style:normal}[data-layout=story] .editor{border-left:0;border-top:2px solid var(--accent);margin:36px 0 12px;padding:18px 0 0;font-size:19px}.editor span{font:600 12.5px/1.4 var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;font-style:normal;display:block}.readon{border-top:1px solid var(--line);color:var(--ink-2);margin-top:30px;padding-top:14px}.hub-num{font:700 44px/1 var(--head);color:var(--accent);opacity:.35;margin-bottom:4px;display:block}.endnote{color:var(--ink-2);border-top:1px solid var(--line);margin-top:28px;padding-top:14px;font-size:15px}.next{margin-top:34px}.foot{border-top:1px solid var(--line);color:var(--ink-2);margin-top:40px;padding:26px 0 36px;font-size:15px}.foot-name{font:700 16px var(--head);color:var(--ink);margin:0 0 8px}.foot-links{font:500 15px var(--body);flex-wrap:wrap;gap:0 14px;display:flex}.foot-links a{color:var(--ink-2);align-items:center;min-height:44px;display:inline-flex}.foot-tag{color:var(--ink-2);max-width:60ch;margin:0 0 4px}.copy{margin:12px 0 0}@media (width<=800px){body{font-size:17px}.answer{padding:12px 14px}.answer p{font-size:17px;line-height:1.55}.nav a{padding:0 8px}.btn{justify-content:center;width:100%}.hero-grid{grid-template-columns:1fr;padding-top:28px}.stats div{border-right:0;border-bottom:1px solid var(--line)}.mast{position:static}}.trustbox{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent-bg);border-radius:var(--r);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0;padding:14px 16px;display:grid}.trustbox p{margin:0;font-size:16px}.trustbox b{font:700 13px var(--head);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:2px;display:block}.route{margin:30px 0 6px}.route ol{max-width:760px;margin:8px 0 0;padding-left:22px}.route li{margin:.6em 0}.note{color:var(--ink-2);border-left:3px solid var(--accent-bg);max-width:760px;margin:28px 0 48px;padding-left:14px}.body ol.steps{padding-left:24px}.body ol.steps li{margin:.55em 0;padding-left:4px}.by .checked{color:var(--ink);font-weight:700}.story-lede{color:var(--ink);max-width:62ch;margin:0 0 22px;font-size:21px;line-height:1.55}.rows{border-top:1px solid var(--line);margin:14px 0 28px;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--line);gap:2px;padding:14px 0;display:grid}.rows a{font:700 19px var(--body)}.rows span{color:var(--ink-2);font-size:15.5px}.hero .intro{max-width:58ch;color:var(--ink);border-left:3px solid var(--accent-bg);margin:14px 0 0;padding-left:14px;font-size:17px}.chain{counter-reset:c;max-width:760px;margin:14px 0 0;padding:0;list-style:none;position:relative}.chain:before{content:"";background:var(--line);width:2px;position:absolute;top:18px;bottom:18px;left:17px}.chain li{counter-increment:c;gap:2px;margin:0;padding:8px 0 12px 54px;display:grid;position:relative}.chain li:before{content:counter(c);box-sizing:border-box;background:var(--panel-2);border:2px solid var(--accent);width:36px;height:36px;font:700 15px var(--head);color:var(--accent);border-radius:6px;place-items:center;display:grid;position:absolute;top:6px;left:0}.chain b{font:700 19px var(--body)}.chain span{color:var(--ink-2);font-size:16.5px}.rows .code{font:700 13px var(--head);color:var(--accent);margin-right:6px}.rows a span.code{color:var(--accent)}.body .today{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--accent-bg);border-radius:var(--r);margin:26px 0;padding:4px 20px 10px}.body .today h2{border:0;margin:12px 0 8px;padding:0}.body .today ol{counter-reset:t;margin:12px 0 4px;padding:0;list-style:none}.body .today li{counter-increment:t;margin:10px 0;padding:4px 0 4px 44px;position:relative}.body .today li:before{content:counter(t);background:var(--accent-bg);width:30px;height:30px;color:var(--on-accent);font:700 15px var(--head);border-radius:50%;place-items:center;display:grid;position:absolute;top:2px;left:0}.body p,.body li{overflow-wrap:anywhere}.diagram svg{width:100%;max-width:420px;margin:0 auto;display:block}.dg-b{fill:var(--panel-2);stroke:var(--ink-2);stroke-width:1.5px}.dg-h{fill:var(--panel-2);stroke:var(--accent);stroke-width:2px}.dg-t{fill:var(--ink);font:700 13.5px var(--body)}.dg-s{fill:var(--ink-2);font:400 13px var(--body)}.dg-a{stroke:var(--accent);stroke-width:2.5px;fill:none}.dg-f{fill:var(--accent)}.dg-bar{fill:var(--accent-bg)}.dg-bar2{fill:var(--ink-2)}details.cmd{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin:10px 0;padding:0 14px}details.cmd>summary{cursor:pointer;font:700 15px var(--head);min-height:48px;color:var(--accent);align-items:center;display:flex}details.cmd[open]>summary{border-bottom:1px solid var(--line);margin-bottom:8px}.answer.spec{border:0;border-top:2px solid var(--accent-bg);border-bottom:1px solid var(--line);background:0 0;border-radius:0;padding:10px 0}.answer.spec p{font-size:17px}.relist{border-top:1px solid var(--line);flex-wrap:wrap;gap:4px 18px;margin-top:30px;padding-top:14px;display:flex}.relist b{font:700 13px var(--head);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}@media (width<=600px){.tbl.stack{background:0 0;border:0;overflow:visible}.tbl.stack table,.tbl.stack tbody,.tbl.stack tr,.tbl.stack td{width:100%;display:block}.tbl.stack thead{position:absolute;left:-999px}.tbl.stack tr{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin:0 0 10px;padding:6px 0}.tbl.stack td{border:0;padding:3px 12px}.tbl.stack td:before{content:attr(data-label);font:700 12px var(--head);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);display:block}.tbl.stack td:first-child{font-weight:700}.tbl.stack td:first-child:before{display:none}}
