:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fbfaf7;--ink:#151515;--muted:#77746d;--line:#e0ddd5;--soft:#efede7;--soft-2:#e9e7e1;--code-bg:#f3f1eb;--accent:#b4442a;--danger:#a3352c;--warn-line:#d9c39a;--warn-bg:#f7f0e0;--icon-sun:none;--icon-moon:inline-block;--font-sans:var(--font-inter), Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--font-meta:var(--font-mono)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161513;--ink:#ece9e2;--muted:#9b978e;--line:#2b2926;--soft:#1e1d1a;--soft-2:#22211e;--code-bg:#1c1b18;--accent:#e07a5a;--danger:#f08c7a;--warn-line:#5c4a24;--warn-bg:#26211a;--icon-sun:inline-block;--icon-moon:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161513;--ink:#ece9e2;--muted:#9b978e;--line:#2b2926;--soft:#1e1d1a;--soft-2:#22211e;--code-bg:#1c1b18;--accent:#e07a5a;--danger:#f08c7a;--warn-line:#5c4a24;--warn-bg:#26211a;--icon-sun:inline-block;--icon-moon:none}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}main{display:block}::selection{background:color-mix(in srgb, var(--accent) 24%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.page{max-width:1080px;margin:auto;padding:34px 28px 90px}.header{justify-content:space-between;align-items:center;display:flex}.name{letter-spacing:-.02em;font-size:17px;font-weight:650}.headerRight{align-items:center;gap:20px;display:flex}.links{color:var(--muted);gap:20px;font-size:13px;display:flex}.links a:hover,.links a[aria-current=page]{color:var(--ink)}.themeToggle{color:var(--muted);cursor:pointer;background:0 0;border:0;margin:-4px;padding:4px;line-height:0;display:inline-flex}.themeToggle:hover{color:var(--ink)}.themeToggle .sun{display:var(--icon-sun)}.themeToggle .moon{display:var(--icon-moon)}.hero{padding:116px 0 96px}.hero h1{letter-spacing:-.06em;max-width:920px;margin:0;font-size:68px;font-weight:650;line-height:1.02}.hero p{color:var(--muted);max-width:540px;margin:26px 0 0;font-size:16px;line-height:1.65}.selectedLabel{font-family:var(--font-meta);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:20px;font-size:12px}.feature{grid-template-columns:1.1fr .9fr;align-items:center;gap:28px;margin-bottom:80px;display:grid}.cover-link{display:block}.visual{aspect-ratio:16/10;background:var(--soft-2);border:1px solid var(--line);position:relative;overflow:hidden}.visual img,.mini img{object-fit:cover}.feature h2{letter-spacing:-.045em;margin:12px 0;font-size:40px;line-height:1.08}.feature h2 a:hover{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.meta{font-family:var(--font-meta);color:var(--muted);font-size:12px}.meta a:hover{color:var(--accent)}.desc{color:var(--muted);max-width:430px;font-size:15px;line-height:1.65}.more{margin-top:28px;font-size:14px;font-weight:600}.more a{color:var(--accent)}.more a:hover{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.list{border-top:1px solid var(--line)}.entry{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.5fr 130px;align-items:start;gap:28px;padding:30px 0;display:grid}.mini{aspect-ratio:16/10;background:var(--soft);position:relative;overflow:hidden}.entry h3{letter-spacing:-.03em;margin:0 0 8px;font-size:23px;line-height:1.2}.entry h3 a:hover{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.entry p{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.entry .right{font-family:var(--font-meta);color:var(--muted);text-align:right;font-size:12px}.empty{color:var(--muted);padding:30px 0}.footer{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:24px;margin-top:90px;padding-top:24px;display:grid}.footer p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.footer .colophon{font-family:var(--font-meta);grid-column:1/-1;margin-top:24px;font-size:12px}.footer .colophon a:hover{color:var(--accent)}.subscribe,.form{flex-direction:column;gap:8px;display:flex}.formRow{gap:8px;display:flex}.turnstile:empty{display:none}.form input{border:1px solid var(--line);min-width:220px;font:inherit;color:var(--ink);background:0 0;border-radius:0;padding:10px 12px;font-size:14px}.form input:focus-visible{border-color:var(--accent);outline:none}.form input::placeholder{color:var(--muted)}.form button{background:var(--ink);color:var(--bg);font:inherit;cursor:pointer;border:0;border-radius:0;padding:10px 14px;font-size:14px}.form button:focus-visible{outline-offset:2px}.form button:disabled,.form input:disabled{opacity:.6;cursor:default}.form-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.form-error{color:var(--danger)}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pageHead{padding:72px 0 40px}.pageHead h1{letter-spacing:-.05em;margin:0;font-size:52px;font-weight:650;line-height:1.02}.pageHead>p{color:var(--muted);max-width:540px;margin:18px 0 0;font-size:16px;line-height:1.65}.pageHead>p a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}.pageHead>p a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.pageHead .tags,.pageForm{margin-top:28px}.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag{color:var(--muted);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;transition:color .15s,border-color .15s;display:inline-flex}.tag:hover{color:var(--accent);border-color:var(--accent)}.tag-count{font-variant-numeric:tabular-nums;opacity:.7}.badge{border:1px solid var(--line);font-family:var(--font-meta);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);vertical-align:middle;border-radius:999px;margin-left:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.article{max-width:720px;margin:0 auto;padding-top:72px}.article-head h1{letter-spacing:-.05em;margin:14px 0 20px;font-size:52px;font-weight:650;line-height:1.04}.summary{color:var(--muted);letter-spacing:-.01em;margin:0 0 18px;font-size:19px;line-height:1.55}.byline{font-family:var(--font-meta);color:var(--muted);margin:0 0 40px;font-size:12px}.byline a{color:var(--ink)}.byline a:hover{color:var(--accent)}.article-cover{margin:0 0 40px}.article-body{max-width:720px;margin:0 auto}.takeaways{border-top:1px solid var(--ink);margin:0 0 40px;padding-top:18px}.takeaways h2{font-family:var(--font-meta);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 12px;font-size:12px;font-weight:500}.takeaways ul{margin:0;padding-left:20px;font-size:16px;line-height:1.6}.takeaways li+li{margin-top:6px}.toc{margin:0 0 48px;font-size:14px}.toc-title{font-family:var(--font-meta);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px;font-size:12px}.toc ol{margin:0;padding:0;list-style:none}.toc li{padding:4px 0}.toc a{color:var(--muted)}.toc a:hover{color:var(--accent)}.prose{font-size:17px;line-height:1.75}.prose>:first-child{margin-top:0}.prose p{margin:0 0 24px}.prose h2{letter-spacing:-.035em;margin:56px 0 16px;font-size:28px;font-weight:650;line-height:1.15}.prose h3{letter-spacing:-.025em;margin:40px 0 12px;font-size:21px;font-weight:650;line-height:1.25}.prose h4{margin:32px 0 8px;font-size:17px;font-weight:650}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}.prose a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.prose :is(h2,h3,h4) .heading-link{color:inherit;text-decoration:none}.prose :is(h2,h3,h4):hover .heading-link:after{content:" #";color:var(--accent);font-weight:400}.prose strong{font-weight:650}.prose ul,.prose ol{margin:0 0 24px;padding-left:24px}.prose li{margin-bottom:6px}.prose li>p{margin-bottom:8px}.prose blockquote{border-left:2px solid var(--ink);color:var(--muted);margin:0 0 24px;padding:2px 0 2px 20px}.prose blockquote p:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:48px 0}.prose img,.prose video{max-width:100%;height:auto;display:block}.prose figure,.figure{margin:0 0 28px}.prose figcaption{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.5}.prose table{border-collapse:collapse;width:100%;margin:0 0 28px;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 10px 10px 0}.prose th{font-family:var(--font-meta);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;font-weight:500}.prose code{font-family:var(--font-mono);background:var(--soft);border-radius:3px;padding:.15em .4em;font-size:.88em}.prose pre{background:var(--code-bg);border:1px solid var(--line);margin:0 0 28px;padding:18px 20px;font-size:13.5px;line-height:1.65;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0;display:grid}.prose code[data-theme*=\ ],.prose code[data-theme*=\ ] span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .prose :is(code[data-theme*=\ ],code[data-theme*=\ ] span){color:var(--shiki-dark)}}:root[data-theme=dark] .prose :is(code[data-theme*=\ ],code[data-theme*=\ ] span){color:var(--shiki-dark)}.prose [data-rehype-pretty-code-figure]{margin:0 0 28px}.prose [data-rehype-pretty-code-figure] pre{margin:0}.prose [data-rehype-pretty-code-title]{font-family:var(--font-mono);color:var(--muted);background:var(--soft);border:1px solid var(--line);border-bottom:0;padding:8px 14px;font-size:12px}.prose [data-highlighted-line]{background:color-mix(in srgb, var(--ink) 7%, transparent);margin:0 -20px;padding:0 20px}.prose code[data-line-numbers]{counter-reset:line}.prose code[data-line-numbers]>[data-line]:before{counter-increment:line;content:counter(line);text-align:right;width:2ch;color:var(--muted);margin-right:1.5ch;display:inline-block}.codeWrap{position:relative}.copyBtn{font-family:var(--font-mono);color:var(--muted);background:var(--bg);border:1px solid var(--line);cursor:pointer;opacity:0;padding:3px 8px;font-size:11px;transition:opacity .15s,color .15s;position:absolute;top:8px;right:8px}.codeWrap:hover .copyBtn,.copyBtn[data-copied=true]{opacity:1}.copyBtn:focus-visible{opacity:1}.copyBtn:hover{color:var(--ink)}@media (hover:none){.copyBtn{opacity:1}}.mermaid{min-height:80px;margin:0 0 28px}.mermaid svg{max-width:100%;height:auto}.mermaid-error{white-space:pre-wrap}.prose .katex-display{margin:0 0 24px;padding:2px 0;overflow:auto hidden}.comments{max-width:720px;margin:64px auto 0}.callout{border:1px solid var(--line);background:var(--soft);margin:0 0 28px;padding:16px 18px;font-size:15px;line-height:1.6}.callout-warning{border-color:var(--warn-line);background:var(--warn-bg)}.callout-title{font-family:var(--font-meta);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:500}.callout-body>:last-child{margin-bottom:0}.faq{border-top:1px solid var(--line);margin-top:56px;padding-top:24px}.faq h2{font-family:var(--font-meta);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:500}.faq dl{margin:0}.faq dt{letter-spacing:-.015em;margin-top:22px;font-size:17px;font-weight:650}.faq dd{color:var(--muted);margin:8px 0 0;font-size:15px;line-height:1.65}.article-foot{border-top:1px solid var(--line);margin-top:56px;padding-top:24px}.article-foot .more{margin-top:24px}.related{max-width:720px;margin:80px auto 0}.related .entry{grid-template-columns:.8fr 1.6fr 110px}@media (max-width:760px){.page{padding:24px 18px 60px}.links,.headerRight{gap:12px}.hero{padding:80px 0 60px}.hero h1{font-size:46px}.feature,.entry,.related .entry,.footer{grid-template-columns:1fr}.entry .right{text-align:left}.form input{flex:1;min-width:0}.pageHead{padding:56px 0 32px}.pageHead h1,.article-head h1{font-size:38px}.article{padding-top:56px}.summary{font-size:17px}.prose{font-size:16px}.prose h2{font-size:24px}.prose [data-highlighted-line]{margin:0 -18px;padding:0 18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
