.blog-article-wrap[data-v-34f52a73]{max-width:100%;position:relative}.progress-bar[data-v-34f52a73]{background:oklch(var(--p));height:2px;left:0;pointer-events:none;position:fixed;top:var(--header-height,3rem);transition:width .1s linear;z-index:50}.article-page[data-v-34f52a73]{margin:0 auto;max-width:960px;padding:2rem 0 4rem;width:100%}.breadcrumb[data-v-34f52a73]{align-items:center;color:oklch(var(--bc)/.5);display:flex;flex-wrap:wrap;font-size:.82rem;gap:6px;margin-bottom:2rem}.breadcrumb a[data-v-34f52a73]{color:oklch(var(--bc)/.6);transition:color .15s ease}.breadcrumb a[data-v-34f52a73]:hover{color:oklch(var(--p))}.breadcrumb .current[data-v-34f52a73]{color:oklch(var(--bc)/.75)}.article-title[data-v-34f52a73]{color:oklch(var(--bc));font-size:clamp(1.6rem,4vw,2.2rem);font-weight:900;line-height:1.35;margin-bottom:.75rem}.article-summary[data-v-34f52a73]{border-left:3px solid oklch(var(--p)/.2);color:oklch(var(--bc)/.7);font-size:1rem;line-height:1.8;margin-bottom:1.25rem;padding-left:1rem}.article-meta[data-v-34f52a73]{border-bottom:1px solid oklch(var(--bc)/.08);border-top:1px solid oklch(var(--bc)/.08);color:oklch(var(--bc)/.55);flex-wrap:wrap;font-size:.82rem;gap:1rem;margin-bottom:2rem;padding:.75rem 0}.article-meta[data-v-34f52a73],.meta-author[data-v-34f52a73]{align-items:center;display:flex}.meta-author[data-v-34f52a73]{gap:8px}.meta-avatar[data-v-34f52a73]{align-items:center;background:oklch(var(--p));border-radius:50%;color:oklch(var(--pc));display:flex;flex-shrink:0;font-size:.82rem;font-weight:800;height:32px;justify-content:center;overflow:hidden;text-transform:uppercase;width:32px}.meta-avatar-img[data-v-34f52a73]{background:#fff;height:100%;-o-object-fit:contain;object-fit:contain;padding:3px;width:100%}.meta-name[data-v-34f52a73]{color:oklch(var(--bc));font-size:.88rem;font-weight:800;line-height:1.2}.article-cover[data-v-34f52a73]{border:1px solid oklch(var(--bc)/.08);border-radius:12px;margin:0 0 2rem;overflow:hidden}.article-cover img[data-v-34f52a73]{display:block;height:auto;width:100%}.prose[data-v-34f52a73]{color:oklch(var(--bc)/.82);font-size:1rem;line-height:1.85;max-width:none}.prose[data-v-34f52a73] h1,.prose[data-v-34f52a73] h2{border-bottom:1px solid oklch(var(--bc)/.08);color:oklch(var(--bc));font-size:1.4rem;font-weight:900;line-height:1.4;margin:2.5rem 0 .75rem;padding-bottom:.4rem}.prose[data-v-34f52a73] h3{color:oklch(var(--bc));font-size:1.15rem;font-weight:800;line-height:1.45;margin:1.75rem 0 .5rem}.prose[data-v-34f52a73] h4{color:oklch(var(--bc));font-size:1rem;font-weight:800;margin:1.5rem 0 .4rem}.prose[data-v-34f52a73] p{margin-bottom:1rem}.prose[data-v-34f52a73] strong{color:oklch(var(--bc));font-weight:700}.prose[data-v-34f52a73] em{font-style:italic}.prose[data-v-34f52a73] a{color:oklch(var(--p));font-weight:700;text-decoration:underline;text-decoration-color:oklch(var(--p)/.3);text-underline-offset:2px;transition:text-decoration-color .15s ease}.prose[data-v-34f52a73] a:hover{text-decoration-color:oklch(var(--p))}.prose[data-v-34f52a73] ol,.prose[data-v-34f52a73] ul{margin:.75rem 0 1.25rem;padding-left:1.5rem}.prose[data-v-34f52a73] li{margin-bottom:.4rem}.prose[data-v-34f52a73] li::marker{color:oklch(var(--p))}.prose[data-v-34f52a73] blockquote{background:oklch(var(--p)/.06);border-left:3px solid oklch(var(--p));border-radius:0 12px 12px 0;color:oklch(var(--bc)/.75);font-style:italic;margin:1.25rem 0;padding:1rem 1.25rem}.prose[data-v-34f52a73] code{background:oklch(var(--b2));border-radius:4px;color:oklch(var(--p));font-family:JetBrains Mono,ui-monospace,monospace;font-size:.88em;padding:1px 6px}.prose[data-v-34f52a73] pre{background:oklch(var(--b2));border:1px solid oklch(var(--bc)/.08);border-radius:10px;font-size:.88rem;line-height:1.6;margin:1.25rem 0;overflow-x:auto;padding:1rem 1.25rem}.prose[data-v-34f52a73] pre code{background:transparent;color:oklch(var(--bc));font-size:inherit;padding:0}.prose[data-v-34f52a73] img{border-radius:10px;margin:1.5rem auto}.prose[data-v-34f52a73] hr{border:none;border-top:1px solid oklch(var(--bc)/.1);margin:2rem 0}.prose[data-v-34f52a73] table{border-collapse:collapse;font-size:.92rem;margin:1.25rem 0;width:100%}.prose[data-v-34f52a73] td,.prose[data-v-34f52a73] th{border:1px solid oklch(var(--bc)/.12);padding:.6rem .8rem;text-align:left}.prose[data-v-34f52a73] th{background:oklch(var(--b2));font-weight:700}.prose[data-v-34f52a73] .tip{background:oklch(var(--b2));border-left:3px solid oklch(var(--bc)/.35);border-radius:0 12px 12px 0;margin:1.25rem 0;padding:1rem 1.25rem}.prose[data-v-34f52a73] .tip>p:last-child{margin-bottom:0}.prose[data-v-34f52a73] .tip-label{color:oklch(var(--bc));font-size:.82rem;font-weight:800;line-height:1.4;margin-bottom:.4rem}.prose[data-v-34f52a73] .tip.tip-warning{background:oklch(var(--wa)/.1);border-left-color:oklch(var(--wa))}.prose[data-v-34f52a73] .example{background:oklch(var(--b2));border:1px solid oklch(var(--bc)/.08);border-radius:12px;margin:1.25rem 0;padding:1.25rem}.prose[data-v-34f52a73] .example>p:last-child{margin-bottom:0}.prose[data-v-34f52a73] .example-label{color:oklch(var(--p));font-size:.82rem;font-weight:800;line-height:1.4;margin-bottom:.5rem}.prose[data-v-34f52a73] .example .en{color:oklch(var(--bc));font-style:italic;line-height:1.7;margin-bottom:.5rem}.prose[data-v-34f52a73] .example .cn{color:oklch(var(--bc)/.6);font-size:.85rem}.prose[data-v-34f52a73] .table-wrap{border-radius:10px;margin:1.25rem 0;overflow-x:auto}.prose[data-v-34f52a73] .table-wrap table{margin:0;min-width:100%}.course-cta[data-v-34f52a73]{margin:2.5rem 0 2rem}.course-cta-kicker[data-v-34f52a73]{align-items:center;color:oklch(var(--bc)/.65);display:inline-flex;font-size:.88rem;font-weight:800;gap:8px;letter-spacing:.02em;margin-bottom:.85rem;padding-left:2px}.kicker-dot[data-v-34f52a73]{background:oklch(var(--p));border-radius:50%;box-shadow:0 0 0 3px oklch(var(--p)/.15);height:8px;width:8px}.course-cta-card[data-v-34f52a73]{align-items:center;background:oklch(var(--b1));border:2px solid oklch(var(--bc));border-radius:12px;box-shadow:4px 4px oklch(var(--bc));color:inherit;display:grid;gap:1.25rem;grid-template-columns:120px 1fr auto;padding:1.15rem;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.course-cta-card[data-v-34f52a73]:hover{box-shadow:6px 6px oklch(var(--bc));transform:translate(-2px,-2px)}.course-cta-cover[data-v-34f52a73]{align-items:center;background:oklch(var(--b2));border:1.5px solid oklch(var(--bc)/.12);border-radius:8px;display:flex;height:160px;justify-content:center;overflow:hidden;position:relative;width:120px}.course-cta-cover img[data-v-34f52a73]{display:block;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.course-cta-info[data-v-34f52a73]{display:flex;flex-direction:column;gap:6px;justify-content:center;min-width:0}.course-cta-labels[data-v-34f52a73]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.cta-badge[data-v-34f52a73]{align-items:center;border-radius:4px;display:inline-flex;font-size:.7rem;font-weight:800;letter-spacing:.03em;line-height:1.4;padding:2px 8px}.cta-badge-pro[data-v-34f52a73]{background:#c9a86c;color:#fff}.cta-badge-free[data-v-34f52a73]{background:#7b9e87;color:#fff}.cta-badge-outline[data-v-34f52a73]{background:transparent;border:1.5px solid oklch(var(--p));color:oklch(var(--p))}.course-cta-title[data-v-34f52a73]{color:oklch(var(--bc));font-size:1.1rem;font-weight:800;line-height:1.35;margin:0}.course-cta-card:hover .course-cta-title[data-v-34f52a73]{color:oklch(var(--p))}.course-cta-desc[data-v-34f52a73]{color:oklch(var(--bc)/.55);display:-webkit-box;font-size:.85rem;-webkit-line-clamp:2;line-height:1.55;margin:0;-webkit-box-orient:vertical;overflow:hidden}.course-cta-stats[data-v-34f52a73]{align-items:center;color:oklch(var(--bc)/.55);display:flex;flex-wrap:wrap;font-size:.78rem;gap:10px;margin-top:4px}.course-cta-stats span+span[data-v-34f52a73]:before{color:oklch(var(--bc)/.4);content:"·";margin-right:10px}.course-cta-action[data-v-34f52a73]{align-items:center;display:flex;justify-content:center;min-width:120px}.course-cta-action .btn-primary[data-v-34f52a73]{background:oklch(var(--p));border-radius:6px;color:oklch(var(--pc));font-size:.9rem;font-weight:800;padding:10px 18px;transition:background .15s ease;white-space:nowrap}.course-cta-card:hover .btn-primary[data-v-34f52a73]{background:oklch(var(--p)/.88)}@media(max-width:720px){.course-cta-card[data-v-34f52a73]{gap:.75rem;grid-template-columns:100px 1fr;padding:1rem}.course-cta-cover[data-v-34f52a73]{height:134px;width:100px}.course-cta-action[data-v-34f52a73]{grid-column:1/-1;width:100%}.course-cta-action .btn-primary[data-v-34f52a73]{display:block;text-align:center;width:100%}}.article-tags[data-v-34f52a73]{display:flex;flex-wrap:wrap;gap:6px;margin:2rem 0 1.5rem}.tag[data-v-34f52a73]{background:oklch(var(--b2));border-radius:4px;color:oklch(var(--bc)/.7);font-size:.78rem;font-weight:700;padding:3px 12px;transition:color .15s ease}.tag[data-v-34f52a73]:hover{color:oklch(var(--p))}.author-box[data-v-34f52a73]{align-items:flex-start;background:oklch(var(--b2));border-radius:12px;display:flex;gap:1rem;margin:1.5rem 0;padding:1.25rem}.author-box-avatar[data-v-34f52a73]{align-items:center;background:oklch(var(--p));border-radius:50%;color:oklch(var(--pc));display:flex;flex-shrink:0;font-size:1.1rem;font-weight:900;height:44px;justify-content:center;overflow:hidden;text-transform:uppercase;width:44px}.author-box-avatar-img[data-v-34f52a73]{background:#fff;height:100%;-o-object-fit:contain;object-fit:contain;padding:4px;width:100%}.author-box-name[data-v-34f52a73]{color:oklch(var(--bc));font-weight:800;margin-bottom:2px}.author-box-bio[data-v-34f52a73]{color:oklch(var(--bc)/.55);font-size:.85rem;line-height:1.6}.back-link[data-v-34f52a73]{margin:2rem 0 0;text-align:center}.back-link a[data-v-34f52a73]{color:oklch(var(--p));font-size:.88rem;font-weight:700;transition:opacity .15s ease}.back-link a[data-v-34f52a73]:hover{opacity:.8;text-decoration:underline}@media(max-width:640px){.article-page[data-v-34f52a73]{padding:1rem 0 3rem}.article-title[data-v-34f52a73]{font-size:1.5rem}.article-meta[data-v-34f52a73]{font-size:.78rem;gap:.75rem}.prose[data-v-34f52a73]{font-size:.95rem}.prose[data-v-34f52a73] h2{font-size:1.25rem}.prose[data-v-34f52a73] h3{font-size:1.05rem}}
