.progress-bar[data-v-e0ec36c0]{background:var(--color-blue,#2563eb);transform-origin:0;height:2px;transform:var(--v27366b6d);z-index:55;transition:transform .15s linear;position:fixed;top:68px;left:0;right:0}@media (width<=780px){.progress-bar[data-v-e0ec36c0]{top:60px}}.article[data-v-668ed1ec]{max-width:720px;margin:0 auto;padding:56px 32px 0}@media (width<=780px){.article[data-v-668ed1ec]{padding:40px 24px 0}}.crumbs[data-v-668ed1ec]{font-family:var(--font-mono,monospace);color:var(--color-muted,#64748b);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:32px;font-size:12px;display:flex}.crumbs a[data-v-668ed1ec]{color:var(--color-blue,#2563eb);text-decoration:none}.crumbs a[data-v-668ed1ec]:hover{text-decoration:underline}.post-meta[data-v-668ed1ec]{font-family:var(--font-mono,monospace);color:var(--color-muted,#64748b);text-transform:uppercase;letter-spacing:.06em;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;font-size:11px;display:flex}.post-meta .tag[data-v-668ed1ec]{color:var(--color-blue,#2563eb);background:var(--color-blue-soft,#eff4ff);border-radius:5px;padding:3px 8px}.post-meta .sep[data-v-668ed1ec]{color:var(--color-line,#e2e8f0)}.title[data-v-668ed1ec]{letter-spacing:-.025em;max-width:22ch;font-size:clamp(34px,4.5vw,52px);font-weight:700;line-height:1.1}.post-tag-line[data-v-668ed1ec]{color:var(--color-ink-2,#334155);max-width:60ch;margin-top:18px;font-size:17px;line-height:1.55}.author[data-v-668ed1ec]{border-top:1px solid var(--color-line,#e2e8f0);border-bottom:1px solid var(--color-line,#e2e8f0);align-items:center;gap:14px;margin:32px 0 0;padding:24px 0;display:flex}.author-av[data-v-668ed1ec]{border-radius:10px;flex-shrink:0;width:42px;height:42px;overflow:hidden;box-shadow:0 6px 16px -8px #0f172a4d}.author-av svg[data-v-668ed1ec]{width:100%;height:100%;display:block}.author-meta[data-v-668ed1ec]{font-family:var(--font-mono,monospace);flex-direction:column;gap:2px;font-size:12px;display:flex}.author-meta .name[data-v-668ed1ec]{color:var(--color-ink,#0f172a);font-size:13px;font-weight:500}.author-meta .role[data-v-668ed1ec]{color:var(--color-muted,#64748b)}.body[data-v-668ed1ec]{color:var(--color-ink-2,#334155);margin-top:48px;font-family:"Source Serif 4",Source Serif Pro,Georgia,serif;font-size:19px;line-height:1.75}.body[data-v-668ed1ec]>*+*{margin-top:24px}.body[data-v-668ed1ec] p strong{color:var(--color-ink,#0f172a);font-weight:600}.body[data-v-668ed1ec] p em{color:var(--color-ink,#0f172a);font-style:italic}.body[data-v-668ed1ec] p code,.body[data-v-668ed1ec] li code{font-family:var(--font-mono,"JetBrains Mono", monospace);color:var(--color-blue,#2563eb);background:var(--color-blue-soft,#eff4ff);border-radius:4px;padding:1px 6px;font-size:.85em}.body[data-v-668ed1ec] h2{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:-.02em;color:var(--color-ink,#0f172a);margin-top:56px;margin-bottom:6px;scroll-margin-top:90px;font-size:28px;font-weight:600;line-height:1.15}.body[data-v-668ed1ec] h3{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:-.01em;color:var(--color-ink,#0f172a);margin-top:32px;font-size:20px;font-weight:600;line-height:1.2}.body[data-v-668ed1ec] ul,.body[data-v-668ed1ec] ol{flex-direction:column;gap:12px;padding-left:0;list-style:none;display:flex}.body[data-v-668ed1ec] ul li,.body[data-v-668ed1ec] ol li{padding-left:28px;position:relative}.body[data-v-668ed1ec] ul li:before{content:"";background:var(--color-blue,#2563eb);border-radius:2px;width:14px;height:2px;position:absolute;top:14px;left:0}.body[data-v-668ed1ec] ol{counter-reset:olnum}.body[data-v-668ed1ec] ol li{counter-increment:olnum}.body[data-v-668ed1ec] ol li:before{content:counter(olnum) ".";color:var(--color-blue,#2563eb);font-family:var(--font-mono,monospace);font-size:14px;font-weight:500;position:absolute;top:6px;left:0}.body[data-v-668ed1ec] blockquote{border-left:3px solid var(--color-blue,#2563eb);background:var(--color-bg-2,#f8fafc);color:var(--color-ink,#0f172a);border-radius:0 8px 8px 0;margin:32px 0;padding:18px 24px;font-family:"Source Serif 4",Georgia,serif;font-size:18px;font-style:italic}.body[data-v-668ed1ec] pre{background:var(--color-bg-2,#f8fafc);border:1px solid var(--color-line,#e2e8f0);font-family:var(--font-mono,monospace);color:var(--color-ink,#0f172a);border-radius:10px;padding:18px 22px;font-size:13px;line-height:1.65;overflow-x:auto}.body[data-v-668ed1ec] pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.body[data-v-668ed1ec] hr{background:var(--color-line,#e2e8f0);border:none;max-width:60%;height:1px;margin:48px auto}.body[data-v-668ed1ec] a{color:var(--color-blue,#2563eb);border-bottom:1px solid var(--color-blue-soft-2,#dbeafe);text-decoration:none;transition:border-color .2s}.body[data-v-668ed1ec] a:hover{border-color:var(--color-blue,#2563eb)}.body[data-v-668ed1ec] .pull{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:-.015em;color:var(--color-ink,#0f172a);text-align:center;border-top:1px solid var(--color-line,#e2e8f0);border-bottom:1px solid var(--color-line,#e2e8f0);margin:32px 0;padding:32px 0;font-size:24px;font-weight:500;line-height:1.3}.body[data-v-668ed1ec] .pull em{color:var(--color-blue,#2563eb);font-style:italic;font-weight:400}.end-marker[data-v-668ed1ec]{text-align:center;font-family:var(--font-mono,monospace);color:var(--color-muted,#64748b);letter-spacing:.3em;margin:48px 0;font-size:14px}.subscribe[data-v-668ed1ec]{color:#fff;background:linear-gradient(135deg, var(--color-blue,#2563eb), #1e3a8a);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin:48px 0 0;padding:36px;display:flex;position:relative;overflow:hidden}.subscribe[data-v-668ed1ec]:before{content:"";pointer-events:none;background-image:repeating-linear-gradient(45deg,#0000 0 18px,#ffffff0d 18px 19px);position:absolute;inset:0}.subscribe h3[data-v-668ed1ec]{letter-spacing:-.015em;max-width:24ch;font-size:22px;font-weight:600;line-height:1.2;position:relative}.subscribe p[data-v-668ed1ec]{color:#ffffffd9;max-width:42ch;margin-top:6px;font-size:14px;line-height:1.55;position:relative}.subscribe a[data-v-668ed1ec]{color:#1e3a8a;white-space:nowrap;background:#fff;border-radius:11px;align-items:center;gap:10px;padding:14px 22px;font-size:14px;font-weight:600;text-decoration:none;transition:transform .2s;display:inline-flex;position:relative}.subscribe a[data-v-668ed1ec]:hover{transform:translateY(-2px)}.subscribe a[data-v-668ed1ec]:focus-visible{outline-offset:2px;outline:2px solid #fff}.article-nav[data-v-668ed1ec]{grid-template-columns:1fr 1fr;gap:14px;margin:32px 0 0;display:grid}@media (width<=680px){.article-nav[data-v-668ed1ec]{grid-template-columns:1fr}}.nav-card[data-v-668ed1ec]{border:1px solid var(--color-line,#e2e8f0);color:inherit;border-radius:14px;flex-direction:column;gap:6px;padding:20px;text-decoration:none;transition:all .2s;display:flex}.nav-card[data-v-668ed1ec]:hover{border-color:var(--color-blue,#2563eb);transform:translateY(-2px)}.nav-card[data-v-668ed1ec]:focus-visible{outline:2px solid var(--color-blue,#2563eb);outline-offset:2px}.nav-card.next[data-v-668ed1ec]{text-align:right;align-items:flex-end}.nav-card.placeholder[data-v-668ed1ec]{pointer-events:none;border:none}.nav-card .k[data-v-668ed1ec]{font-family:var(--font-mono,monospace);color:var(--color-muted,#64748b);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.nav-card .v[data-v-668ed1ec]{letter-spacing:-.01em;color:var(--color-ink,#0f172a);font-size:17px;font-weight:600}.article-footer[data-v-668ed1ec]{font-family:var(--font-mono,monospace);color:var(--color-muted,#64748b);border-top:1px solid var(--color-line,#e2e8f0);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:80px;padding:40px 32px;font-size:12px;display:flex}.article-footer a[data-v-668ed1ec]{color:var(--color-ink-2,#334155);text-decoration:none}.article-footer a[data-v-668ed1ec]:hover{color:var(--color-blue,#2563eb)}@media (width<=780px){.article-footer[data-v-668ed1ec]{padding:24px}}
