.ed-root{--ed-bg:#fff;--ed-ink:#111;--ed-ink-2:#2a2a2a;--ed-muted:#565f6e;--ed-muted-2:#4b5563;--ed-rule:#e5e7eb;--ed-rule-2:#f3f4f6;--ed-code-bg:#0b0b0d;--ed-code-bg-2:#16161a;--ed-code-ink:#e5e7eb;--ed-code-mute:#9aa1ad;--ed-code-key:#d1d5db;--ed-code-str:#b6bcc7;--ed-accent:#cbf24e;--ed-accent-dk:#b3d93a;--ed-accent-ink:#111;--ed-maxw:1240px;--ed-sidebar-w:260px;--ed-content-w:720px;--ed-gutter:80px;--ed-sans:var(--font-sans-fallback), ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--ed-mono:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace}.ed-root .ed-topbar{z-index:30;border-bottom:1px solid var(--ed-rule);background:var(--ed-bg);color:var(--ed-ink);position:relative}.ed-root .ed-topbar-inner{max-width:var(--ed-maxw);justify-content:space-between;align-items:center;gap:24px;height:64px;margin:0 auto;padding:0 32px;display:flex}.ed-root .ed-topnav{align-items:center;gap:28px;font-size:15px;display:flex}.ed-root .ed-navlink,.ed-root .ed-navtrigger{font:inherit;color:var(--ed-ink);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:4px;padding:6px 0;font-size:15px;font-weight:500;transition:color .15s,border-color .15s;display:inline-flex}.ed-root .ed-navlink:hover,.ed-root .ed-navtrigger:hover{color:var(--ed-muted)}.ed-root .ed-navlink[aria-current=page]{border-bottom-color:var(--ed-ink)}.ed-root .ed-navlink:focus-visible,.ed-root .ed-navtrigger:focus-visible{outline:2px solid var(--ed-ink);outline-offset:3px;border-radius:2px}.ed-root .ed-actions{align-items:center;gap:20px;display:flex}@media (max-width:720px){.ed-root .ed-topbar-inner{height:56px;padding:0 20px}}.ed-root .ed-btn{font-family:var(--ed-sans);letter-spacing:-.005em;color:var(--ed-accent-ink);background:var(--ed-accent);border:1px solid var(--ed-ink);cursor:pointer;border-radius:5px;align-items:center;gap:9px;padding:13px 22px;font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,transform .12s;display:inline-flex}.ed-root .ed-btn:hover{background:var(--ed-accent-dk)}.ed-root .ed-btn:active{transform:translateY(1px)}.ed-root .ed-btn:focus-visible{outline:2px solid var(--ed-ink);outline-offset:3px}.ed-root .ed-btn-ghost{color:var(--ed-ink);border-color:var(--ed-rule);background:0 0}.ed-root .ed-btn-ghost:hover{background:var(--ed-rule-2)}.ed-root .ed-layout{max-width:var(--ed-maxw);grid-template-columns:var(--ed-sidebar-w) minmax(0,1fr);column-gap:var(--ed-gutter);color:var(--ed-ink);font-family:var(--ed-sans);align-items:start;margin:0 auto;padding:0 32px;display:grid}.ed-root .ed-sidebar{max-height:calc(100vh - 96px);padding:72px 0 32px;position:sticky;top:96px;overflow-y:auto}.ed-root .ed-content{max-width:var(--ed-content-w);min-width:0;padding:72px 0 80px}@media (max-width:960px){.ed-root .ed-layout{grid-template-columns:1fr;padding:0 20px}.ed-root .ed-sidebar{display:none}.ed-root .ed-content{padding:40px 0 64px}}.ed-root .ed-toc{padding-left:28px;position:relative}.ed-root .ed-toc:before{content:"";background:var(--ed-rule);width:3px;position:absolute;top:0;bottom:0;left:0}.ed-root .ed-toc-fill{background:var(--ed-ink);width:3px;transition:top .25s,height .25s,opacity .2s;position:absolute;left:0}.ed-root .ed-toc ol{margin:0;padding:0;list-style:none}.ed-root .ed-toc ol ol{margin:2px 0 8px;padding-left:16px}.ed-root .ed-toc a{color:var(--ed-muted);padding:7px 0;font-size:14px;line-height:1.45;transition:color .25s;display:block}.ed-root .ed-toc ol ol a{padding:5px 0;font-size:13px}.ed-root .ed-toc a:hover,.ed-root .ed-toc a[data-active=true]{color:var(--ed-ink)}.ed-root .ed-toc a[data-active=true]{font-weight:600}.ed-root .ed-kicker{font-family:var(--ed-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ed-muted);margin:0 0 18px;font-size:12px;font-weight:500}.ed-root .ed-title{letter-spacing:-.03em;margin:0 0 24px;font-size:calc(clamp(34px,5vw,52px));font-weight:800;line-height:1.05}.ed-root .ed-lead{letter-spacing:-.015em;margin:0 0 28px;font-size:calc(clamp(20px,2.3vw,26px));line-height:1.38}.ed-root .ed-section{padding:64px 0 24px;scroll-margin-top:96px}.ed-root .ed-section-title{letter-spacing:-.025em;margin:0 0 24px;font-size:calc(clamp(26px,3vw,34px));font-weight:700;line-height:1.2}.ed-root .ed-num{color:var(--ed-muted-2);font-variant-numeric:tabular-nums;margin-right:6px}.ed-root .ed-prose p{max-width:65ch;color:var(--ed-ink-2);margin:0 0 18px;font-size:16px;line-height:1.65}.ed-root .ed-prose strong{color:var(--ed-ink);font-weight:600}.ed-root .ed-prose a{border-bottom:1px solid}.ed-root .ed-callout{border-left:4px solid var(--ed-accent);background:var(--ed-rule-2);border-radius:0 4px 4px 0;margin:28px 0;padding:18px 22px}.ed-root .ed-callout-title{margin:0 0 6px;font-size:14px;font-weight:700}.ed-root .ed-callout-body,.ed-root .ed-callout-body p{color:var(--ed-ink-2);margin:0;font-size:15px;line-height:1.6}.ed-root .ed-quote{border-left:4px solid var(--ed-ink);margin:40px 0;padding:4px 0 4px 24px}.ed-root .ed-quote p{letter-spacing:-.02em;margin:0;font-size:calc(clamp(22px,2.6vw,28px));font-weight:600;line-height:1.3}.ed-root .ed-quote cite{font-family:var(--ed-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ed-muted);margin-top:12px;font-size:12px;font-style:normal;display:block}.ed-root .ed-tablewrap{margin:28px 0;overflow-x:auto}.ed-root .ed-table{border-collapse:collapse;width:100%;font-size:15px}.ed-root .ed-table caption{text-align:left;font-family:var(--ed-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ed-muted);padding:0 0 10px;font-size:12px}.ed-root .ed-table td,.ed-root .ed-table th{text-align:left;vertical-align:top;border-bottom:1px solid var(--ed-rule);padding:12px 14px}.ed-root .ed-table thead th{border-bottom:2px solid var(--ed-ink);font-size:13px;font-weight:700}.ed-root .ed-table tbody th{font-weight:600}.ed-root .ed-table td{color:var(--ed-ink-2)}.ed-root .ed-code{background:var(--ed-code-bg);border-radius:4px;margin:22px 0 16px;overflow:hidden}.ed-root .ed-code-head{border-bottom:1px solid var(--ed-code-bg-2);font-family:var(--ed-mono);color:var(--ed-code-mute);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;font-size:12px;display:flex}.ed-root .ed-code pre{font-family:var(--ed-mono);color:var(--ed-code-ink);white-space:pre;tab-size:2;margin:0;padding:20px 22px;font-size:13.5px;line-height:1.7;overflow-x:auto}.ed-root .ed-code pre:focus-visible{outline:2px solid var(--ed-accent);outline-offset:-2px}.ed-root .ed-copy{font-family:var(--ed-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ed-code-ink);cursor:pointer;background:0 0;border:1px solid #2a2a30;border-radius:3px;padding:5px 12px;font-size:11px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.ed-root .ed-copy:hover,.ed-root .ed-copy[data-copied=true]{color:var(--ed-accent-ink);background:var(--ed-accent);border-color:var(--ed-accent)}.ed-root .ed-copy:focus-visible{outline:2px solid var(--ed-accent);outline-offset:2px}.ed-root .ed-faq{border-top:1px solid var(--ed-rule);margin:0}.ed-root .ed-faq-item{border-bottom:1px solid var(--ed-rule);padding:22px 0}.ed-root .ed-faq dt{letter-spacing:-.01em;margin:0 0 8px;font-size:17px;font-weight:700}.ed-root .ed-faq dd{max-width:65ch;color:var(--ed-ink-2);margin:0;font-size:15.5px;line-height:1.65}.ed-root .ed-cta{border:1px solid var(--ed-ink);border-radius:6px;margin:56px 0 0;padding:36px 32px}.ed-root .ed-cta h2{letter-spacing:-.02em;margin:0 0 10px;font-size:calc(clamp(24px,2.8vw,30px));font-weight:700;line-height:1.2}.ed-root .ed-cta p{max-width:56ch;color:var(--ed-ink-2);margin:0 0 22px;font-size:16px;line-height:1.6}.ed-root .ed-cta-actions{flex-wrap:wrap;gap:12px;display:flex}.ed-root .ed-footer{border-top:1px solid var(--ed-rule);color:var(--ed-muted);margin-top:80px;padding:40px 0 48px;font-size:14px}.ed-root .ed-footer-inner{max-width:var(--ed-maxw);grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px;margin:0 auto;padding:0 32px;display:grid}.ed-root .ed-footer-blurb{max-width:32ch;margin:12px 0 0;line-height:1.55}.ed-root .ed-footer h2{font-family:var(--ed-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ed-ink);margin:0 0 12px;font-size:12px;font-weight:500}.ed-root .ed-footer ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ed-root .ed-footer a:hover{color:var(--ed-ink)}.ed-root .ed-footer-bottom{border-top:1px solid var(--ed-rule);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:16px;padding-top:24px;display:flex}@media (max-width:720px){.ed-root .ed-footer-inner{grid-template-columns:1fr 1fr;padding:0 20px}}.ed-root .ed-prose ol,.ed-root .ed-prose ul{max-width:65ch;color:var(--ed-ink-2);margin:0 0 18px;padding-left:1.4em;font-size:16px;line-height:1.65}.ed-root .ed-prose ul{list-style:outside}.ed-root .ed-prose ol{list-style:decimal}.ed-root .ed-prose li{margin-bottom:6px}.ed-root .ed-prose h3{letter-spacing:-.015em;margin:32px 0 12px;font-size:20px;font-weight:700}.ed-root .ed-prose blockquote{border-left:3px solid var(--ed-rule);color:var(--ed-muted-2);margin:24px 0;padding-left:18px}.ed-root .ed-prose code{background:var(--ed-rule-2);font-family:var(--ed-mono);border-radius:4px;padding:1px 5px;font-size:.9em}.ed-root .ed-crumbs ol{font-family:var(--ed-mono);color:var(--ed-muted);flex-wrap:wrap;gap:6px;margin:0 0 22px;padding:0;font-size:12px;list-style:none;display:flex}.ed-root .ed-crumbs li+li:before{content:"/";margin-right:6px}.ed-root .ed-crumbs a:hover,.ed-root .ed-postlist a:hover h2{text-decoration:underline}.ed-root .ed-byline{font-family:var(--ed-mono);color:var(--ed-muted);flex-wrap:wrap;gap:4px 18px;margin:0 0 28px;font-size:12px;display:flex}.ed-root .ed-draft-banner{border:1px dashed var(--ed-muted);font-family:var(--ed-mono);color:var(--ed-ink-2);margin:0 0 24px;padding:10px 14px;font-size:12px}.ed-root .ed-related{border-top:1px solid var(--ed-rule);margin:40px 0 0;padding-top:20px;font-size:16px}.ed-root .ed-related a{border-bottom:1px solid;font-weight:600}.ed-root .ed-postlist{gap:28px;margin:0;padding:0;list-style:none;display:grid}.ed-root .ed-postlist h2{letter-spacing:-.02em;margin:0 0 6px;font-size:22px;font-weight:700}.ed-root .ed-postlist p{color:var(--ed-ink-2);margin:0}