.article-breadcrumb{max-width:720px;margin:0 auto;padding:24px var(--page-pad) 0;font-family:var(--mono);font-size:12px;color:var(--fg-hush);display:flex;align-items:center;gap:6px}.article-breadcrumb a{color:var(--fg-dim)}.article-breadcrumb a:hover{color:var(--red)}.article-breadcrumb .sep{color:var(--border-strong)}.article-hero{max-width:720px;margin:0 auto;padding:40px var(--page-pad) 0}.article-hero h1{font-family:var(--sans);font-size:clamp(28px,4vw,40px);font-weight:900;letter-spacing:-.03em;color:var(--fg-bold);margin:0 0 16px;line-height:1.15}.article-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.article-tag{display:inline-flex;align-items:center;padding:3px 10px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--mono);font-size:11px;color:var(--fg-dim);letter-spacing:.02em}.article-date{font-family:var(--mono);font-size:12px;color:var(--fg-hush)}.article-body{max-width:720px;margin:0 auto;padding:40px var(--page-pad) 80px}.article-body p{color:var(--fg-mid);font-size:15px;line-height:1.75;margin:0 0 20px}.article-body strong{color:var(--fg-bold);font-weight:600}.article-body em{color:var(--fg)}.article-body h2{font-family:var(--sans);font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--fg-bold);margin:48px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.article-body h3{font-family:var(--sans);font-size:17px;font-weight:700;color:var(--red);margin:36px 0 12px}.article-body ul,.article-body ol{color:var(--fg-mid);font-size:15px;line-height:1.75;margin:0 0 20px;padding-left:22px}.article-body li{margin-bottom:8px}.article-body li strong{color:var(--fg)}.code-block{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;margin:20px 0 28px;overflow:hidden}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#ffffff05;border-bottom:1px solid var(--border);font-family:var(--mono);font-size:11px;color:var(--fg-dim);letter-spacing:.03em}.code-block pre{margin:0;padding:18px 22px;font-family:var(--mono);font-size:13px;line-height:1.65;color:var(--fg-bold);overflow-x:auto;white-space:pre}.code-block pre .prompt{color:var(--red);font-weight:700}.code-block pre .comment{color:var(--fg-dim)}.code-block pre .string{color:#a8db8f}.code-block pre .key{color:var(--fg-bold);font-weight:600}.code-block pre .flag{color:var(--fg-mid)}.article-body code:not(pre code){font-family:var(--mono);font-size:13px;background:var(--code-bg);color:var(--fg-bold);padding:2px 7px;border:1px solid var(--border);border-radius:2px}.callout{background:#e106000a;border-left:3px solid var(--red);padding:18px 22px;margin:20px 0 28px;border-radius:0 4px 4px 0}.callout p{margin:0;color:var(--fg);font-size:14px;line-height:1.65}.callout strong{color:var(--fg-bold)}.opts-table{width:100%;border-collapse:collapse;margin:20px 0 28px;font-size:14px}.opts-table th{text-align:left;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-1)}.opts-table td{padding:10px 16px;border-bottom:1px solid var(--border);color:var(--fg-mid);vertical-align:top;line-height:1.5}.opts-table td:first-child{font-family:var(--mono);font-size:13px;color:var(--fg-bold);white-space:nowrap}.article-nav{max-width:720px;margin:0 auto;padding:0 var(--page-pad) 64px;display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.article-nav{grid-template-columns:1fr}}.article-nav a{display:flex;flex-direction:column;gap:4px;padding:20px;background:var(--bg-1);border:1px solid var(--border);border-radius:4px;transition:border-color .2s ease,background .2s ease}.article-nav a:hover{border-color:var(--border-hover);background:var(--bg-2);color:var(--fg-bold)}.article-nav .nav-label{font-family:var(--mono);font-size:11px;color:var(--fg-hush);letter-spacing:.08em;text-transform:uppercase}.article-nav .nav-title{font-size:14px;font-weight:600;color:var(--fg-bold)}.article-nav .next{text-align:right}
