.article-cta-wrapper[data-v-b5f9f7dd]{flex-direction:column;gap:24px;max-width:760px;margin:48px auto 0;padding:0 24px;display:flex}.matched-projects-card[data-v-b5f9f7dd]{background:var(--bg-surface,#ffffff08);border:1px solid var(--border-default,#ffffff14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;padding:24px}.cta-header[data-v-b5f9f7dd]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.cta-badge[data-v-b5f9f7dd]{color:var(--text-primary,#ffffffeb);align-items:center;gap:6px;font-size:13px;font-weight:650;display:inline-flex}.cta-tip[data-v-b5f9f7dd]{color:var(--text-tertiary,#ffffff80);font-size:11.5px}.projects-grid[data-v-b5f9f7dd]{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.project-card[data-v-b5f9f7dd]{background:var(--bg-elevated,#ffffff05);border:1px solid var(--border-subtle,#ffffff0f);border-radius:10px;flex-direction:column;justify-content:space-between;padding:14px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.project-card[data-v-b5f9f7dd]:hover{border-color:var(--accent-indigo,#0ea5e9);transform:translateY(-2px);box-shadow:0 8px 24px #00000040}.card-top[data-v-b5f9f7dd]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.p-icon[data-v-b5f9f7dd]{font-size:20px;line-height:1}.p-meta[data-v-b5f9f7dd]{flex-direction:column;gap:2px;display:flex}.p-title[data-v-b5f9f7dd]{color:var(--text-primary,#fff);margin:0;font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;font-weight:600}.p-tag[data-v-b5f9f7dd]{color:var(--accent-indigo-light,#67e8f9);font-size:10px;font-weight:500}.p-desc[data-v-b5f9f7dd]{color:var(--text-secondary,#ffffffb3);flex:1;margin:0 0 14px;font-size:11.5px;line-height:1.45}.card-bottom[data-v-b5f9f7dd]{gap:6px;margin-top:auto;display:flex}.action-btn[data-v-b5f9f7dd]{text-align:center;border-radius:5px;flex:1;justify-content:center;align-items:center;padding:4px 8px;font-size:10.5px;font-weight:550;text-decoration:none;transition:all .15s;display:inline-flex}.action-btn.primary[data-v-b5f9f7dd]{background:var(--accent-indigo,#0ea5e9);color:#fff;border:1px solid #0000}.action-btn.primary[data-v-b5f9f7dd]:hover{background:var(--accent-violet,#38bdf8)}.action-btn.secondary[data-v-b5f9f7dd]{color:var(--text-secondary,#fffc);border:1px solid var(--border-default,#ffffff1a);background:#ffffff0d}.action-btn.secondary[data-v-b5f9f7dd]:hover{color:var(--text-primary,#fff);background:#ffffff1a}.author-sponsor-card[data-v-b5f9f7dd]{border:1px solid var(--border-emphasized,#ffffff1f);background:linear-gradient(135deg,#0ea5e90d 0%,#38bdf808 100%);border-radius:14px;flex-direction:column;gap:16px;padding:24px;display:flex}.author-info[data-v-b5f9f7dd]{align-items:center;gap:14px;display:flex}.avatar-ring[data-v-b5f9f7dd]{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-radius:50%;flex-shrink:0;width:44px;height:44px;padding:2px}.avatar-img[data-v-b5f9f7dd]{object-fit:contain;background:#0a0a0f;border-radius:50%;width:100%;height:100%}.author-name[data-v-b5f9f7dd]{color:var(--text-primary,#fff);margin:0 0 3px;font-size:14px;font-weight:650}.author-bio[data-v-b5f9f7dd]{color:var(--text-secondary,#ffffffb3);margin:0;font-size:12px;line-height:1.4}.sponsor-actions[data-v-b5f9f7dd]{border-top:1px solid var(--border-subtle,#ffffff0f);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.sponsor-btn[data-v-b5f9f7dd]{background:var(--bg-surface,#ffffff0a);border:1px solid var(--border-default,#ffffff14);color:var(--text-primary,#ffffffe6);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:11.5px;font-weight:550;text-decoration:none;transition:all .15s;display:inline-flex}.sponsor-btn[data-v-b5f9f7dd]:hover{border-color:var(--accent-indigo,#0ea5e9);color:#fff;transform:translateY(-1px)}.sponsor-btn.github[data-v-b5f9f7dd]{background:#ffffff14}.article-search[data-v-69e489c4]{margin:0 0 var(--space-lg);gap:var(--space-xs);flex-direction:column;display:flex}.search-label[data-v-69e489c4]{font-size:var(--font-size-label);letter-spacing:var(--tracking-label);color:var(--text-tertiary)}.search-controls[data-v-69e489c4]{align-items:center;gap:var(--space-md);border-bottom:1px solid var(--border-color);transition:border-color var(--duration-fast) var(--ease-out,ease);display:flex}.search-controls[data-v-69e489c4]:focus-within{border-color:var(--brand-ink);box-shadow:0 2px 0 var(--brand-ink)}.article-search-input[data-v-69e489c4]{box-sizing:border-box;min-width:0;padding:var(--space-md) 0;font-size:var(--font-size-body);color:var(--text-primary);box-shadow:none;background:0 0;border:0;border-radius:0;outline:none;flex:auto;font-family:inherit}.article-search-input[data-v-69e489c4]:focus-visible{outline:none}.article-search-input[data-v-69e489c4]::placeholder{color:var(--text-secondary)}.article-search-count[data-v-69e489c4]{font-size:var(--font-size-small);color:var(--text-tertiary);margin:0}.article-search-empty[data-v-69e489c4]{margin:var(--space-lg) 0 0;padding:var(--space-lg) 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.article-search-empty h2[data-v-69e489c4]{margin:0 0 var(--space-xs);font-family:var(--font-display);font-size:var(--font-size-body-lg);font-weight:var(--weight-strong);color:var(--text-primary)}.article-search-empty p[data-v-69e489c4]{margin:0 0 var(--space-md);font-size:var(--font-size-small);color:var(--text-secondary)}.search-reset[data-v-69e489c4]{min-height:var(--control-height-sm);padding:0 var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font:inherit;font-size:var(--font-size-small);cursor:pointer;transition:var(--transition-fast);background:0 0;flex:none}.search-reset[data-v-69e489c4]:active{transform:translateY(var(--press-offset))}.search-reset[data-v-69e489c4]:hover{border-color:var(--brand-ink);color:var(--brand-ink)}.search-reset[data-v-69e489c4]:focus-visible{outline:var(--focus-width) solid var(--brand-ink);outline-offset:var(--focus-offset)}.language-notice[data-v-69e489c4]{color:var(--text-secondary);border-left:2px solid var(--border-strong);margin:16px 0;padding:12px 16px;line-height:1.7}.language-notice a[data-v-69e489c4]{text-decoration:underline}.articles-page[data-v-69e489c4]{max-width:var(--container-narrow);padding:clamp(48px, 8vh, 96px) var(--gutter) var(--space-3xl);min-height:60vh;margin:0 auto}.articles-page.is-index[data-v-69e489c4]{max-width:min(1520px,100%);padding-top:clamp(44px,5vh,64px)}.articles-page.is-detail[data-v-69e489c4]{max-width:100%;padding-top:clamp(36px,5vh,64px)}@media (width>=821px){.is-index .hero-section[data-v-69e489c4]{margin-bottom:24px}.is-index .article-cover[data-v-69e489c4]{aspect-ratio:2}}.hero-section[data-v-69e489c4]{margin-bottom:var(--space-xl)}.index-kicker[data-v-69e489c4]{font-size:var(--font-size-label);font-family:var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-tertiary);margin:0}.hero-container[data-v-69e489c4]{gap:var(--space-sm);flex-direction:column;display:flex}.hero-title[data-v-69e489c4]{font-family:var(--font-serif);font-weight:400;font-size:var(--font-size-display);letter-spacing:.015em;color:var(--text-primary)}.hero-subtitle[data-v-69e489c4]{color:var(--text-secondary);font-size:var(--font-size-body-lg)}.section-divider[data-v-69e489c4]{background:var(--border-color);height:1px;margin-bottom:var(--space-lg)}.article-cover[data-v-69e489c4]{aspect-ratio:16/9;object-fit:cover;width:100%;margin-bottom:var(--space-lg);border-radius:var(--radius-lg);display:block}.article-list[data-v-69e489c4]{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,30px) clamp(28px,4vw,72px);margin:0;padding:0;list-style:none;display:grid}.article-link[data-v-69e489c4]{color:inherit;padding:var(--space-lg) 0;border-bottom:1px solid var(--border-color);transition:var(--transition-fast);text-decoration:none;display:block}.article-link[data-v-69e489c4]:hover{color:inherit}.article-link:hover .article-title[data-v-69e489c4]{color:var(--brand-ink)}.article-title[data-v-69e489c4]{font-size:var(--font-size-heading);font-family:var(--font-display);color:var(--text-primary);transition:var(--transition-fast);margin:0 0 6px;font-weight:600}.article-meta[data-v-69e489c4]{font-size:var(--font-size-label)}.muted[data-v-69e489c4]{color:var(--text-secondary)}.article-excerpt[data-v-69e489c4]{font-size:var(--font-size-small);color:var(--text-secondary);max-width:62ch;margin:8px 0 0;line-height:1.7}.article-detail[data-v-69e489c4]{padding-block:var(--space-lg)}.article-header[data-v-69e489c4]{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-color)}.article-container[data-v-69e489c4]{max-width:100%;margin:0}.back-btn[data-v-69e489c4]{font-size:var(--font-size-small);color:var(--text-tertiary);transition:var(--transition-fast);border-radius:var(--radius-xs);outline:none;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.back-btn[data-v-69e489c4]:hover{color:var(--color-primary)}.back-btn[data-v-69e489c4]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.article-h1[data-v-69e489c4]{font-size:clamp(28px,3.2vw + 18px,40px);font-family:var(--font-display);letter-spacing:var(--tracking-tight);margin:var(--space-md) 0 var(--space-sm);color:var(--text-primary);font-weight:600;line-height:1.25}.article-subtitle[data-v-69e489c4]{color:var(--text-secondary);margin:0 0 var(--space-sm);font-size:17px;line-height:1.55}.article-cover-figure[data-v-69e489c4]{margin:0 0 var(--space-xl);max-width:100%}.article-cover-img[data-v-69e489c4]{aspect-ratio:2;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;display:block}.article-layout[data-v-69e489c4]{gap:var(--space-2xl);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1100px){.article-layout[data-v-69e489c4]{grid-template-columns:minmax(0,1fr) 260px;gap:clamp(32px,3vw,72px)}.article-toc[data-v-69e489c4]{align-self:start;max-height:calc(100vh - 160px);position:sticky;top:96px;overflow-y:auto}}.article-toc[data-v-69e489c4]{border-left:1px solid var(--border-color);padding-left:var(--space-md);flex-direction:column;gap:2px;display:flex}.toc-title[data-v-69e489c4]{font-size:var(--font-size-label);font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-tertiary);text-transform:uppercase;margin:0 0 8px}.toc-link[data-v-69e489c4]{font-size:var(--font-size-small);color:var(--text-secondary);border-left:2px solid #0000;margin-left:-13px;padding:5px 0 5px 12px;line-height:1.5;text-decoration:none;transition:color .15s,border-color .15s;display:block}.toc-link[data-v-69e489c4]:hover{color:var(--text-primary)}.toc-link.is-active[data-v-69e489c4]{color:var(--brand-ink);border-left-color:var(--brand-ink);font-weight:500}@media (width<=1099px){.article-toc[data-v-69e489c4]{display:none}}.mobile-toc[data-v-69e489c4]{margin:0 0 var(--space-xl);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-muted)}.mobile-toc>summary[data-v-69e489c4]{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md);font-size:var(--font-size-body);font-weight:var(--weight-medium);color:var(--text-primary);cursor:pointer;list-style:none;display:flex}.mobile-toc>summary[data-v-69e489c4]::-webkit-details-marker{display:none}.mobile-toc>summary[data-v-69e489c4]:after{content:"＋";font-family:var(--font-mono);color:var(--text-tertiary)}.mobile-toc[open]>summary[data-v-69e489c4]:after{content:"－"}.mobile-toc>summary[data-v-69e489c4]:focus-visible{outline:var(--focus-width) solid var(--brand-ink);outline-offset:-2px}.mobile-toc>summary span[data-v-69e489c4]{font-size:var(--font-size-label);color:var(--text-tertiary);margin-left:auto}.mobile-toc nav[data-v-69e489c4]{padding:0 var(--space-md) var(--space-md);border-top:1px solid var(--border-color);max-height:40vh;overflow-y:auto}.mobile-toc .toc-link[data-v-69e489c4]{padding:var(--space-xs) 0 var(--space-xs) var(--space-sm);min-height:var(--control-height-sm);border-left:2px solid #0000;margin-left:0}.mobile-toc .toc-link.is-active[data-v-69e489c4]{border-left-color:var(--brand-ink)}@media (width>=1100px){.mobile-toc[data-v-69e489c4]{display:none}}.article-content[data-v-69e489c4] h2[id]{scroll-margin-top:calc(var(--nav-height) + var(--space-lg))}@media (width<=480px){.article-layout[data-v-69e489c4]{padding-bottom:84px}}.article-content[data-v-69e489c4]{max-width:100%;font-size:var(--font-size-body-lg);color:var(--text-primary);margin:0;line-height:1.85}.article-content[data-v-69e489c4] p,.article-content[data-v-69e489c4] ul,.article-content[data-v-69e489c4] ol,.article-content[data-v-69e489c4] blockquote,.article-content[data-v-69e489c4] h2,.article-content[data-v-69e489c4] h3,.article-content[data-v-69e489c4] h4{max-width:var(--measure-copy)}.article-content[data-v-69e489c4] h2{font-size:var(--font-size-heading);font-weight:var(--weight-strong);line-height:var(--leading-heading);margin:var(--space-2xl) 0 var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-display)}.article-content[data-v-69e489c4] h2:before{content:"";background:var(--brand-ink);vertical-align:-1px;border-radius:1px;width:3px;height:17px;margin-right:9px;display:inline-block}.article-content[data-v-69e489c4] h3{font-size:var(--font-size-body-lg);font-weight:var(--weight-strong);line-height:var(--leading-heading);margin:var(--space-xl) 0 var(--space-sm);color:var(--text-primary)}.article-content[data-v-69e489c4] p{margin:var(--space-md) 0;color:var(--text-secondary)}.article-content[data-v-69e489c4] h2[id]:focus-visible{outline:var(--focus-width) solid var(--brand-ink);outline-offset:var(--focus-offset);border-radius:var(--radius-xs)}.article-content[data-v-69e489c4] a{color:var(--color-primary);text-underline-offset:3px;font-weight:500;text-decoration:underline}.article-content[data-v-69e489c4] a:hover{color:var(--color-primary-hover)}.article-content[data-v-69e489c4] code{background:var(--bg-muted);border-radius:var(--radius-xs);font-size:13.5px;font-family:var(--font-mono);color:var(--text-primary);padding:2px 6px}.article-content[data-v-69e489c4] pre{background:var(--bg-muted);color:var(--text-primary);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--border-color);margin:var(--space-lg) 0;overflow-x:auto}.article-content[data-v-69e489c4] pre code{background:0 0;border:none;padding:0;font-size:13.5px;line-height:1.65}.article-content[data-v-69e489c4] blockquote{border-left:2px solid var(--brand-ink);padding:4px 0 4px var(--space-lg);color:var(--text-secondary);margin:var(--space-lg) 0;font-style:normal}.article-content[data-v-69e489c4] ul,.article-content[data-v-69e489c4] ol{margin:var(--space-md) 0;color:var(--text-secondary);padding-left:24px}.article-content[data-v-69e489c4] li{margin:6px 0}.article-content[data-v-69e489c4] hr{border:0;border-top:1px solid var(--border-color);margin:var(--space-2xl) 0}.article-content[data-v-69e489c4] table{border-collapse:collapse;width:100%;margin:var(--space-lg) 0;font-size:14px}@media (width>=1280px){.article-content[data-v-69e489c4] table{font-size:var(--font-size-small)}}.article-content[data-v-69e489c4] th,.article-content[data-v-69e489c4] td{border-bottom:1px solid var(--border-color);text-align:left;padding:10px 14px}.article-content[data-v-69e489c4] th{background:var(--bg-muted);color:var(--text-primary);font-weight:600}.article-content[data-v-69e489c4] img{border-radius:var(--radius-md);max-width:100%}.action-btn[data-v-69e489c4]{height:42px;margin-top:var(--space-lg);border-radius:var(--radius-md);background:var(--brand-ink);color:var(--text-inverse);font-size:var(--font-size-small);align-items:center;padding-inline:22px;font-weight:500;display:inline-flex}.action-btn[data-v-69e489c4]:hover{background:var(--brand-ink-hover);color:var(--text-inverse)}@media (width<=820px){.article-list[data-v-69e489c4]{grid-template-columns:1fr}.articles-page.is-index[data-v-69e489c4]{max-width:740px}}@media (prefers-reduced-motion:reduce){.article-link[data-v-69e489c4],.article-title[data-v-69e489c4],.toc-link[data-v-69e489c4],.search-reset[data-v-69e489c4]{transition:none!important}.article-content[data-v-69e489c4] *{scroll-behavior:auto!important}}
