:root{--bg:#fff;--bg-soft:#f7f8fa;--bg-inset:#eef1f5;--fg:#16202c;--fg-muted:#566173;--fg-faint:#7d8798;--border:#dfe4ec;--accent:#ea580c;--accent-fg:#fff;--link:#b8460b;--c-warn-bg:#fdecea;--c-warn-line:#d9534f;--c-tip-bg:#ecfdf5;--c-tip-line:#059669;--c-note-bg:#f5f3ff;--c-note-line:#7c3aed;--c-info-bg:#f0f7ff;--c-info-line:#2271b1;--c-caution-bg:#fefce8;--c-caution-line:#ca8a04;--c-key-bg:#fff7ed;--c-key-line:#ea580c;--c-plain-bg:#f5f5f5;--c-plain-line:#c8ced8;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--measure:46rem;--radius:8px}@media (prefers-color-scheme:dark){:root{--bg:#0e141b;--bg-soft:#151d26;--bg-inset:#1c2632;--fg:#e6ebf2;--fg-muted:#a3b0c0;--fg-faint:#7d8b9c;--border:#263241;--accent:#fb923c;--accent-fg:#0e141b;--link:#fdba74;--c-warn-bg:#2c1614;--c-warn-line:#e06b66;--c-tip-bg:#0e241d;--c-tip-line:#34d399;--c-note-bg:#1d1830;--c-note-line:#a78bfa;--c-info-bg:#10202f;--c-info-line:#60a5fa;--c-caution-bg:#241f0d;--c-caution-line:#eab308;--c-key-bg:#2a1a0e;--c-key-line:#fb923c;--c-plain-bg:#171f29;--c-plain-line:#33404f}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.7}a{color:var(--link);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--accent)}img{max-width:100%;height:auto}.wrap{width:100%;max-width:68rem;margin-inline:auto;padding-inline:1.25rem}.skip{position:absolute;left:-9999px}.skip:focus{z-index:10;background:var(--accent);color:var(--accent-fg);border-radius:var(--radius);padding:.6rem 1rem;top:1rem;left:1rem}.site-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:5;position:sticky;top:0}.site-header .wrap{flex-wrap:wrap;align-items:center;gap:1.5rem;min-height:4rem;display:flex}.brand{letter-spacing:-.02em;color:var(--fg);align-items:baseline;gap:.1rem;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.brand span{color:var(--accent)}.brand small{color:var(--fg-faint);letter-spacing:0;font-size:.7rem;font-weight:500;display:block}.nav{flex-wrap:wrap;gap:1.1rem;margin-left:auto;font-size:.925rem;display:flex}.nav a{color:var(--fg-muted);font-weight:500;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--accent)}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);color:var(--fg-muted);margin-top:5rem;padding-block:2.5rem;font-size:.9rem}.site-footer .wrap{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.25rem;display:grid}.site-footer a{color:var(--fg-muted)}.site-footer h3{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-faint);margin:0 0 .6rem;font-size:.8rem}.site-footer ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.hero{border-bottom:1px solid var(--border);padding-block:3.5rem 2.5rem}.hero h1{letter-spacing:-.03em;max-width:20ch;margin:0 0 .75rem;font-size:clamp(2rem,5vw,3rem);line-height:1.1}.hero p{color:var(--fg-muted);max-width:55ch;margin:0;font-size:1.15rem}.grid{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1.75rem;padding-block:2.5rem;display:grid}.card{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card img{aspect-ratio:1200/630;object-fit:cover;background:var(--bg-inset);width:100%;display:block}.card-body{flex-direction:column;flex:1;gap:.5rem;padding:1.1rem 1.2rem 1.3rem;display:flex}.card h2{letter-spacing:-.01em;margin:0;font-size:1.1rem;line-height:1.35}.card h2 a{color:var(--fg);text-decoration:none}.card h2 a:hover{color:var(--accent)}.card p{color:var(--fg-muted);margin:0;font-size:.925rem;line-height:1.6}.meta{color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:auto;padding-top:.4rem;font-size:.8rem;display:flex}.tag{text-transform:uppercase;letter-spacing:.06em;background:var(--bg-inset);color:var(--fg-muted);border-radius:999px;padding:.2rem .5rem;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-block}.tag:hover{background:var(--accent);color:var(--accent-fg)}.article{max-width:var(--measure);margin-inline:auto;padding-block:2.5rem 1rem}.article-head h1{letter-spacing:-.025em;margin:.6rem 0 .75rem;font-size:clamp(1.9rem,4.5vw,2.6rem);line-height:1.15}.article-head .lede{color:var(--fg-muted);margin:0 0 1rem;font-size:1.1rem}.article-hero{border:1px solid var(--border);border-radius:12px;margin-block:1.5rem}.prose>*+*{margin-top:1.15rem}.prose h2{letter-spacing:-.02em;border-top:1px solid var(--border);margin-top:2.75rem;padding-top:.4rem;font-size:1.6rem;line-height:1.25}.prose h3{margin-top:2rem;font-size:1.2rem;line-height:1.35}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.4rem}.prose img{border:1px solid var(--border);border-radius:10px;margin-inline:auto;display:block}.prose blockquote{border-left:3px solid var(--accent);color:var(--fg-muted);margin-inline:0;padding-left:1.1rem;font-style:italic}.prose code{font-family:var(--font-mono);background:var(--bg-inset);border-radius:4px;padding:.15em .4em;font-size:.875em}.prose pre{border:1px solid var(--border);background:#0d1117;border-radius:10px;padding:1rem 1.1rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.925rem;display:block;overflow-x:auto}.prose thead th{background:var(--bg-inset);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-size:.8rem}.prose th,.prose td{border:1px solid var(--border);vertical-align:top;padding:.6rem .85rem}.prose tbody tr:nth-child(2n){background:var(--bg-soft)}.callout{background:var(--c-plain-bg);border-left:4px solid var(--c-plain-line);border-radius:var(--radius);margin-block:1.5rem;padding:1rem 1.25rem}.callout>*+*{margin-top:.7rem}.callout>:first-child{margin-top:0}.callout>p:first-child strong:only-child,.callout>p:first-child:not(:last-child){font-weight:700}.callout-warn{background:var(--c-warn-bg);border-left-color:var(--c-warn-line)}.callout-tip{background:var(--c-tip-bg);border-left-color:var(--c-tip-line)}.callout-note{background:var(--c-note-bg);border-left-color:var(--c-note-line)}.callout-info{background:var(--c-info-bg);border-left-color:var(--c-info-line)}.callout-caution{background:var(--c-caution-bg);border-left-color:var(--c-caution-line)}.callout-key{background:var(--c-key-bg);border-left-color:var(--c-key-line)}.compare{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin-block:1.5rem;display:grid}.compare>*{border-radius:var(--radius);border-left:4px solid var(--c-plain-line);background:var(--c-plain-bg);padding:.9rem 1.1rem}.compare>*>*{margin:0}.compare>*>*+*{margin-top:.5rem}.compare .pro{background:var(--c-tip-bg);border-left-color:var(--c-tip-line)}.compare .con{background:var(--c-warn-bg);border-left-color:var(--c-warn-line)}.step{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:1.1rem;margin-block:1.5rem;padding:1.2rem 1.4rem;display:flex}.step>*{margin:0}.step-num{color:#f97316;background:#1e293b;border-radius:50%;flex:0 0 3.25rem;place-items:center;width:3.25rem;height:3.25rem;font-size:1.5rem;font-weight:800;display:grid}.section-title{letter-spacing:-.02em;margin:0;padding-top:2.5rem;font-size:1.35rem}.pill-row{flex-wrap:wrap;gap:.5rem;padding-top:1rem;display:flex}.related{max-width:var(--measure);border-top:1px solid var(--border);margin-inline:auto;margin-top:3rem;padding-top:1.5rem}.related ul{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.related a{color:var(--fg);font-weight:600;text-decoration:none}.related a:hover{color:var(--accent)}.notice{max-width:var(--measure);color:var(--fg-faint);border-top:1px solid var(--border);margin:2rem auto 0;padding-top:1rem;font-size:.85rem}@media (width<=640px){.prose table{white-space:normal}.step{flex-direction:column;gap:.75rem}}
