@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fira-code-latin-400-normal.DGosTW8U.woff2) format("woff2"),url(/_astro/fira-code-latin-400-normal.C-QZfXAs.woff) format("woff")}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-code-latin-600-normal.CvYZpPHg.woff2) format("woff2"),url(/_astro/fira-code-latin-600-normal.BmSSHshu.woff) format("woff")}:root{--bg: #f6f8fb;--surface: #ffffff;--surface-2: #eef2f7;--text: #0b1220;--muted: #4a5568;--border: #d5dce6;--accent: #0050d0;--accent-ink: #ffffff;--accent-soft: #e3edff;--warn-bg: #fff4dc;--warn-border: #e0a82e;--warn-text: #5a3b00;--code-bg: #0f172a;--code-text: #e5edf9;--radius: 12px;--shadow: 0 1px 2px rgba(11,18,32,.06), 0 6px 18px rgba(11,18,32,.06);--font-head: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--wrap: 1120px}:root[data-theme=dark]{--bg: #0b1017;--surface: #121a24;--surface-2: #19232f;--text: #f1f5fb;--muted: #aab6c6;--border: #2a3646;--accent: #6cb0ff;--accent-ink: #06101f;--accent-soft: #14304f;--warn-bg: #2b2208;--warn-border: #b5891d;--warn-text: #ffe2a0;--code-bg: #070b11;--code-text: #e5edf9;--shadow: none}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.7 var(--font-body)}img{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;line-height:1.25;letter-spacing:-.01em}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:8px;z-index:100}.skip:focus{left:8px}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.site-header .wrap{display:flex;align-items:center;gap:18px;min-height:64px}.brand{font:600 18px var(--font-head);color:var(--text);text-decoration:none}.brand b{color:var(--accent);font-weight:600}.nav{display:flex;gap:4px;margin-left:auto;align-items:center}.nav a{font:600 14px var(--font-head);color:var(--text);text-decoration:none;padding:8px 12px;border-radius:8px}.nav a:hover,.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;cursor:pointer}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.icon-btn svg{width:20px;height:20px}.menu-btn,.theme-sun{display:none}[data-theme=dark] .theme-sun{display:block}[data-theme=dark] .theme-moon{display:none}@media(max-width:760px){.menu-btn{display:inline-grid;margin-left:auto}.nav{display:none;position:absolute;left:0;right:0;top:64px;flex-direction:column;align-items:stretch;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 20px 16px;margin:0}.nav.open{display:flex}.nav a{padding:12px}}.btn{display:inline-flex;align-items:center;gap:8px;font:600 15px var(--font-head);padding:12px 20px;border-radius:10px;text-decoration:none;border:2px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer}.btn:hover{filter:brightness(1.08);text-decoration:none}.btn.ghost{background:transparent;color:var(--accent)}.chip{display:inline-block;font:600 13px var(--font-head);padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-decoration:none;cursor:pointer}.chip:hover,.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.badge{font:600 12px var(--font-head);padding:3px 9px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}.badge.warn{background:var(--warn-bg);color:var(--warn-text)}.hero{padding:64px 0 40px}.hero .wrap{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center}.eyebrow{font:600 13px var(--font-head);color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.hero h1{font-size:clamp(34px,5vw,54px);margin:10px 0 16px}.hero h1 span{color:var(--accent)}.lead{font-size:19px;color:var(--muted);max-width:56ch;margin:0 0 26px}.cta{display:flex;flex-wrap:wrap;gap:12px}.paths{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.paths-head{display:flex;gap:7px;align-items:center;padding:10px 14px;background:var(--code-bg);color:var(--code-text);font:600 13px var(--font-head)}.paths-head i{width:10px;height:10px;border-radius:50%;background:#3b4a5f}.paths ul{list-style:none;margin:0;padding:6px}.paths li a{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:8px;color:var(--text);text-decoration:none;font:600 15px var(--font-head)}.paths li a:hover{background:var(--accent-soft);color:var(--accent)}.paths li small{font:600 13px var(--font-head);color:var(--muted)}.stats{display:flex;flex-wrap:wrap;gap:12px 36px;padding:18px 0 8px;font:600 14px var(--font-head);color:var(--muted)}.stats b{color:var(--text);font-size:22px;display:block}@media(max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero{padding-top:40px}}.section{padding:36px 0}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px}.section-head h2{margin:0;font-size:26px}.section-head a{font:600 14px var(--font-head)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.card{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);transition:border-color .15s,transform .15s}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card h3{margin:0;font-size:18px}.card h3 a{color:var(--text);text-decoration:none}.card h3 a:after{content:"";position:absolute;inset:0}.card{position:relative}.card p{margin:0;color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.meta{display:flex;flex-wrap:wrap;gap:4px 14px;font:600 12.5px var(--font-head);color:var(--muted);margin-top:auto}.card-top{display:flex;gap:8px;flex-wrap:wrap}.research{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.research h2{margin-top:0}.research ul{margin:0;padding-left:20px;color:var(--muted)}@media(max-width:760px){.research{grid-template-columns:1fr}}.page-head{padding:44px 0 16px}.page-head h1{margin:0 0 8px;font-size:clamp(28px,4vw,40px)}.page-head p{margin:0;color:var(--muted);max-width:64ch}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0 22px}.input{font:16px var(--font-body);padding:11px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);min-width:240px;flex:1;max-width:420px}.input:focus{border-color:var(--accent)}select.input{flex:0 0 auto;min-width:0}.empty{color:var(--muted);padding:30px 0}[hidden]{display:none!important}.crumbs{font:600 13px var(--font-head);color:var(--muted);padding-top:28px}.crumbs a{color:var(--muted)}.crumbs span{margin:0 6px}.article-head{max-width:780px;padding:12px 0 8px}.article-head h1{font-size:clamp(28px,4.2vw,42px);margin:10px 0 14px}.article-head .lede{font-size:19px;color:var(--muted);margin:0 0 16px}.article-meta{display:flex;flex-wrap:wrap;gap:6px 18px;font:600 13px var(--font-head);color:var(--muted);padding-bottom:14px;border-bottom:1px solid var(--border)}.notice{max-width:780px;margin:18px 0 0;padding:14px 18px;border-left:5px solid var(--warn-border);background:var(--warn-bg);color:var(--warn-text);border-radius:8px;font-size:15.5px}.notice strong{font-family:var(--font-head)}.article-grid{display:grid;grid-template-columns:minmax(0,780px) 260px;gap:48px;align-items:start;padding:20px 0 40px}.article-grid.no-toc{grid-template-columns:minmax(0,780px)}.toc{position:sticky;top:88px;font-size:14px;max-height:calc(100vh - 110px);overflow:auto}.toc h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--border)}.toc a{display:block;padding:5px 12px;color:var(--muted);text-decoration:none;line-height:1.4;margin-left:-2px;border-left:2px solid transparent}.toc a:hover,.toc a.active{color:var(--accent);border-left-color:var(--accent)}.toc .d3 a{padding-left:26px;font-size:13.5px}.toc-mobile{display:none;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px 14px;margin-bottom:18px}.toc-mobile summary{font:600 14px var(--font-head);cursor:pointer}@media(max-width:960px){.article-grid{grid-template-columns:minmax(0,1fr)}.toc{display:none}.toc-mobile{display:block}}.progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--accent);z-index:60}.prose{overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose h2{font-size:26px;margin:2.2em 0 .6em}.prose h3{font-size:21px;margin:1.9em 0 .5em}.prose h4{font-size:18px;margin:1.6em 0 .4em}.prose p,.prose ul,.prose ol{margin:0 0 1.1em}.prose li{margin:.25em 0}.prose img{display:block;margin:1.2em auto;border-radius:8px;border:1px solid var(--border);background:#fff}.prose p>img:only-child{margin:1.2em auto}.prose table{display:block;overflow-x:auto;border-collapse:collapse;margin:1.2em 0;font-size:15.5px}.prose th,.prose td{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top}.prose th{background:var(--surface-2)}.prose blockquote{margin:1.2em 0;padding:12px 18px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0}.prose blockquote p{margin:0}.prose code{font:500 .9em var(--font-head);background:var(--surface-2);padding:.15em .4em;border-radius:5px}.prose pre{position:relative;background:var(--code-bg);color:var(--code-text);padding:18px;border-radius:10px;overflow-x:auto;font-size:14.5px;line-height:1.6}.prose pre code{background:none;padding:0;color:inherit;font-weight:400}.copy-btn{position:absolute;top:8px;right:8px;font:600 12px var(--font-head);padding:4px 10px;border-radius:6px;border:1px solid #3b4a5f;background:#1b2635;color:#e5edf9;cursor:pointer}.copy-btn:hover{background:#26354a}.prose hr{border:0;border-top:1px solid var(--border);margin:2em 0}.prose iframe,.prose video{max-width:100%}.after{border-top:1px solid var(--border);padding:28px 0 8px;margin-top:8px}.after h2{font-size:22px;margin:0 0 16px}.cta-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-top:28px}.cta-box p{margin:0;font-weight:600}.text-page{max-width:760px;padding-bottom:60px}.text-page h2{margin-top:1.8em}.links{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none}.site-footer{border-top:1px solid var(--border);background:var(--surface);margin-top:40px;padding:32px 0;font-size:15px;color:var(--muted)}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:20px 48px;justify-content:space-between}.site-footer a{color:var(--text)}.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.site-footer h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;color:var(--muted)}@media print{.site-header,.site-footer,.toc,.toc-mobile,.progress,.copy-btn,.after{display:none!important}body{background:#fff;color:#000}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
