.fade-enter-active,.fade-leave-active{transition:opacity .15s ease}.fade-enter-from,.fade-leave-to{opacity:0}:root{--bg: #f7f3ea;--bg-soft: #fbf7ee;--surface: #ffffff;--surface-2: #f3eddc;--ink: #1f2430;--ink-soft: #3a4150;--muted: #6b6f7c;--rule: #d9d0bc;--rule-soft: #ebe3d0;--accent: #1f3a8a;--accent-2: #b45309;--accent-3: #047857;--gold: #b08a3e;--warn-bg: #fff7e6;--warn-border: #f1c27d;--tip-bg: #ecf3ff;--tip-border: #6b8fd1;--star: #c2410c;--code-bg: #1f2430;--code-ink: #e9e3d3;--shadow: 0 6px 24px rgba(31, 36, 48, .08);--radius: 10px;--max-w: 920px;--side-w: 280px;--serif: "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", "Georgia", serif;--sans: "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;--mono: "JetBrains Mono", "Fira Code", Consolas, "Courier New", monospace}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;border-bottom:1px dashed transparent;transition:border-color .15s ease}a:hover{border-bottom-color:var(--accent)}button{font-family:inherit;cursor:pointer}.app-header{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--rule);box-shadow:0 1px #00000005}.app-header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:16px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);border:none}.brand:hover{border:none}.brand-mark{width:38px;height:38px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:20px;box-shadow:var(--shadow)}.brand-title{font-family:var(--serif);font-weight:700;font-size:18px;letter-spacing:.04em;color:var(--ink)}.brand-sub{font-size:12px;color:var(--muted);letter-spacing:.08em}.header-progress{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.progress-bar{width:180px;height:6px;background:var(--rule-soft);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-3));transition:width .3s ease}.btn{border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:8px;padding:8px 14px;font-size:13px;transition:all .15s ease}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:#16306f;color:#fff}.app-shell{display:grid;grid-template-columns:var(--side-w) 1fr;gap:0;max-width:1280px;margin:0 auto;min-height:calc(100vh - 67px)}.sidebar{position:sticky;top:67px;align-self:start;height:calc(100vh - 67px);overflow-y:auto;border-right:1px solid var(--rule);background:var(--bg-soft);padding:20px 16px 40px}.sidebar h3{font-family:var(--serif);font-size:14px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:18px 8px 8px}.sidebar h3:first-child{margin-top:0}.chapter-list{list-style:none;padding:0;margin:0 0 12px}.chapter-item a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--ink-soft);font-size:14px;line-height:1.4;border:none;transition:background .15s ease,color .15s ease}.chapter-item a:hover{background:var(--surface-2);color:var(--ink)}.chapter-item .no{font-family:var(--serif);color:var(--gold);font-weight:700;font-size:13px;width:26px;flex:0 0 26px}.chapter-item .t{flex:1}.chapter-item .dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--rule);background:var(--surface);flex:0 0 8px}.chapter-item.is-done .dot{background:var(--accent-3);border-color:var(--accent-3)}.chapter-item.is-active a{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}.chapter-item.is-active .no{color:var(--accent)}.content{padding:36px 36px 80px;max-width:var(--max-w);width:100%;margin:0 auto}.footer-bar{display:flex;justify-content:space-between;gap:12px;margin-top:56px;padding-top:24px;border-top:1px solid var(--rule);font-size:14px;color:var(--muted)}.hero{padding:64px 8px 24px;text-align:center;border-bottom:1px solid var(--rule);margin-bottom:32px}.hero .eyebrow{font-family:var(--serif);letter-spacing:.32em;color:var(--gold);font-size:12px;text-transform:uppercase;margin-bottom:16px}.hero h1{font-family:var(--serif);font-size:44px;line-height:1.2;margin:0 0 16px;color:var(--ink);letter-spacing:.02em}.hero h1 .accent{color:var(--accent)}.hero p.lead{max-width:640px;margin:0 auto;color:var(--ink-soft);font-size:16px}.hero .meta{margin-top:24px;display:inline-flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:13px;color:var(--muted)}.hero .meta span{display:inline-flex;gap:6px;align-items:center}.hero .meta b{color:var(--ink);font-weight:600}.cta{margin-top:28px;display:inline-flex;gap:12px;justify-content:center}.section-title{font-family:var(--serif);font-size:24px;color:var(--ink);margin:40px 0 16px;border-left:4px solid var(--accent);padding-left:12px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:18px 18px 16px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;gap:8px;color:var(--ink);border-bottom:1px solid var(--rule)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent);border-bottom:1px solid var(--accent)}.card .no{font-family:var(--serif);font-size:13px;color:var(--gold);letter-spacing:.1em}.card .title{font-family:var(--serif);font-size:17px;color:var(--ink);font-weight:600;line-height:1.35}.card .summary{font-size:13.5px;color:var(--muted);line-height:1.55}.card .foot{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:auto;padding-top:8px}.card .tag{background:var(--surface-2);color:var(--ink-soft);border-radius:4px;padding:2px 6px;font-size:11.5px}.toc-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:20px 22px;margin-top:24px}.toc-card h3{font-family:var(--serif);margin:0 0 10px;color:var(--ink);font-size:17px}.toc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px;font-size:13.5px}.toc-grid a{color:var(--ink-soft);border:none}.toc-grid a:hover{color:var(--accent)}.toc-grid a .no{color:var(--gold);font-weight:700;margin-right:6px}.markdown{font-family:var(--sans);color:var(--ink);font-size:16px;line-height:1.85}.markdown h1{font-family:var(--serif);font-size:36px;text-align:center;letter-spacing:.04em;margin:0 0 8px;color:var(--ink)}.markdown h1+p{text-align:center}.markdown .chapter-eyebrow{text-align:center;font-family:var(--serif);letter-spacing:.3em;color:var(--gold);font-size:12px;text-transform:uppercase;margin-bottom:10px}.markdown h2{font-family:var(--serif);font-size:24px;color:var(--ink);margin:44px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--rule);position:relative}.markdown h2:before{content:"";position:absolute;left:0;bottom:-2px;width:64px;height:2px;background:var(--accent)}.markdown h3{font-family:var(--serif);font-size:18px;color:var(--accent);margin:28px 0 10px}.markdown h4{font-size:15.5px;color:var(--ink);margin:20px 0 8px;font-weight:700}.markdown p{margin:12px 0}.markdown ul,.markdown ol{padding-left:1.6em;margin:12px 0}.markdown li{margin:4px 0}.markdown strong{color:var(--ink)}.markdown em{color:var(--accent-2);font-style:normal;font-weight:600}.markdown blockquote{margin:18px 0;padding:12px 16px;background:var(--tip-bg);border-left:4px solid var(--tip-border);border-radius:0 8px 8px 0;color:var(--ink-soft);font-size:15px}.markdown blockquote p{margin:4px 0}.markdown blockquote p:first-child{display:flex;gap:8px;align-items:baseline}.markdown blockquote strong{color:var(--accent)}.markdown table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14.5px;background:var(--surface);border-radius:6px;overflow:hidden}.markdown th{background:var(--accent);color:#fff;padding:10px 12px;text-align:left;font-weight:600;letter-spacing:.04em}.markdown td{padding:10px 12px;border-top:1px solid var(--rule-soft);vertical-align:top}.markdown tr:nth-child(2n) td{background:var(--bg-soft)}.markdown code{font-family:var(--mono);background:#ece6d3;color:#1f2430;padding:1px 6px;border-radius:4px;font-size:.92em}.markdown pre{background:var(--code-bg);color:var(--code-ink);padding:16px 18px;border-radius:8px;overflow-x:auto;font-size:14px;line-height:1.6}.markdown pre code{background:transparent;color:inherit;padding:0;font-size:14px}.markdown hr{border:none;border-top:1px dashed var(--rule);margin:32px 0}.example{background:var(--bg-soft);border:1px solid var(--rule);border-left:4px solid var(--accent-3);border-radius:8px;padding:12px 16px;margin:12px 0;font-size:15px}.example .en{color:var(--ink);font-weight:500}.example .zh{color:var(--muted);font-size:14px;margin-top:4px}.markdown blockquote.warn{background:var(--warn-bg);border-color:var(--warn-border);border-left:4px solid var(--warn-border)}.markdown blockquote.warn strong{color:var(--accent-2)}.markdown .stars{color:var(--star);letter-spacing:.06em}.chapter-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:48px 0 0;padding-top:20px;border-top:1px solid var(--rule)}.chapter-nav .nav-card{flex:1;display:flex;flex-direction:column;gap:4px;padding:14px 18px;border:1px solid var(--rule);border-radius:8px;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--rule);text-decoration:none;max-width:48%}.chapter-nav .nav-card:hover{border-color:var(--accent);border-bottom-color:var(--accent)}.chapter-nav .nav-card.next{text-align:right;align-items:flex-end}.chapter-nav .label{font-size:12px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.chapter-nav .title{font-family:var(--serif);font-size:15px;color:var(--ink)}.chapter-nav .nav-card.disabled{opacity:.45;pointer-events:none}.complete-bar{position:sticky;bottom:16px;display:flex;justify-content:center;margin-top:32px;z-index:5}.complete-bar button{background:var(--surface);border:1px solid var(--rule);padding:10px 22px;border-radius:999px;font-size:14px;color:var(--ink-soft);box-shadow:var(--shadow);display:inline-flex;gap:8px;align-items:center}.complete-bar button.is-done{background:var(--accent-3);color:#fff;border-color:var(--accent-3)}.complete-bar button:hover{transform:translateY(-1px)}.menu-toggle{display:none}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;width:80%;max-width:320px;height:100vh;z-index:100;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 24px #00000014}.sidebar.is-open{transform:translate(0)}.menu-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--rule);background:var(--surface);color:var(--ink-soft);border-radius:8px;padding:7px 12px;font-size:13px}.content{padding:24px 18px 80px}.markdown h1{font-size:28px}.markdown h2{font-size:20px}.hero h1{font-size:30px}.toc-grid{grid-template-columns:1fr}.header-progress{display:none}}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121966;z-index:99;display:none}.backdrop.is-open{display:block}
