:root{
  --primary:#4db8a4;
  --primary-dark:#3a9e8c;
  --primary-light:#6fcfbe;
  --accent:#45a899;
  --accent-light:#a8e6db;
  --danger:#e8564a;
  --warning:#d98900;
  --gradient-main:linear-gradient(135deg,#4db8a4,#5ec6b4);
  --gradient-soft:linear-gradient(135deg,#4db8a4 0%,#5ec6b4 50%,#7dd4c6 100%);
  --gradient-header:linear-gradient(135deg,#4db8a4,#5ec6b4,#7dd4c6);
  --bg-page:#f6f8fa;
  --bg-white:#ffffff;
  --bg-gray-50:#f8f9fb;
  --bg-gray-100:#f0f2f5;
  --bg-green-50:#edf9f5;
  --bg-teal-50:#f0faf7;
  --text:#1f2937;
  --text-primary:#1f2937;
  --text-secondary:#4b5563;
  --muted:#4b5563;
  --text-muted:#9ca3af;
  --line:#e5e7eb;
  --border-light:#e5e7eb;
  --border-default:#d1d5db;
  --white:#ffffff;
  --code-bg:#0f172a;
  --code-border:#1f2d45;
  --code-text:#e5eefb;
  --soft-danger-bg:#fef0ef;
  --soft-warning-bg:#fff7ed;
  --shadow:0 1px 3px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.03);
  --shadow-hover:0 4px 12px rgba(77,184,164,.12),0 2px 4px rgba(0,0,0,.04);
  --shadow-card:0 1px 3px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.03);
  --shadow-card-hover:0 4px 12px rgba(77,184,164,.12),0 2px 4px rgba(0,0,0,.04);
  --press-shadow:0 1px 2px rgba(0,0,0,.05);
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:12px;
  --radius-xl:16px;
  /* legacy index aliases retained here so old hardcoded roots are removed cleanly. */
  --mint:#4db8a4;
  --mint2:#6fcfbe;
  --cream:#fff7df;
  --cream2:#fffdf4;
  --soft:#fff7ed;
  --pink:#fef0ef;
  --pink-text:#e8564a;
  --blue:#3a9e8c;
  --blue2:#4db8a4;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{max-width:100%;overflow-x:hidden;}
img,svg,canvas,video{max-width:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  color:var(--text);
  line-height:1.8;
  font-size:15px;
  padding:28px 18px 48px;
  background:var(--bg-page);
  -webkit-font-smoothing:antialiased;
}
.container{width:min(100%,980px);max-width:980px;margin:0 auto;background:var(--bg-white);border-radius:var(--radius-xl);padding:34px 40px 44px;box-shadow:var(--shadow);border:1px solid var(--line);}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;flex-wrap:wrap;}
.back-btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--primary-dark);font-weight:700;padding:8px 14px;border-radius:var(--radius-md);background:var(--bg-green-50);border:1px solid rgba(77,184,164,.22);box-shadow:var(--shadow);}
.course-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--bg-teal-50);color:var(--primary-dark);font-size:.9rem;font-weight:700;border:1px solid rgba(77,184,164,.20);}
.course-chip::before{content:"📘";}
.hero{overflow:hidden;border-radius:var(--radius-lg);padding:28px 32px;margin-bottom:28px;position:relative;background:var(--gradient-header);color:#fff;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.38);}
.hero::before{content:"";position:absolute;top:-60%;right:-15%;width:220px;height:220px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);border-radius:50%;}
.hero::after{content:"";position:absolute;bottom:-40%;left:-8%;width:180px;height:180px;background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 70%);border-radius:50%;}
.sec-no-line{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-width:72px;height:34px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.22);color:#fff;font-size:1rem;font-weight:800;margin-bottom:14px;border:1px solid rgba(255,255,255,.30);}
.hero h1{position:relative;z-index:1;font-size:1.75rem;line-height:1.42;color:#fff;font-weight:800;letter-spacing:.4px;margin-bottom:12px;overflow-wrap:anywhere;word-break:break-word;}
.chapter-brief{position:relative;z-index:1;display:inline-block;max-width:100%;padding:8px 12px;border-radius:var(--radius-md);background:rgba(255,255,255,.18);color:rgba(255,255,255,.92);font-size:.96rem;font-weight:600;border:1px solid rgba(255,255,255,.22);}

.chapter-guide{margin:-8px 0 28px;padding:18px 20px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#fbfffd 0%,var(--bg-green-50) 100%);border:1px solid rgba(77,184,164,.22);box-shadow:var(--shadow);}
.guide-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.guide-kicker{font-weight:900;color:#226b60;letter-spacing:.08em;}
.guide-pill-group{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;}
.guide-difficulty,.guide-type{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;background:#dff4ef;color:#226b60;font-weight:850;font-size:.88rem;}
.guide-type{background:#fffaf0;color:#8a5b00;border-color:rgba(217,137,0,.18);}
.guide-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px;align-items:stretch;}
.guide-grid-balanced{grid-template-columns:1.25fr 1fr 1fr;}
.guide-item{padding:13px 14px;border-radius:var(--radius-md);background:rgba(255,255,255,.76);border:1px solid rgba(77,184,164,.16);}
.guide-item strong{display:block;margin-bottom:7px;color:#226b60;background:none;padding:0;}
.guide-item p{margin:0;color:var(--text-secondary);font-size:.96rem;line-height:1.7;}
.guide-gain{background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,250,240,.72));}
.guide-tags,.guide-outputs{display:flex;flex-wrap:wrap;gap:7px;}
.guide-tag,.guide-output{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--bg-teal-50);border:1px solid rgba(77,184,164,.18);color:#2f7d73;font-weight:760;font-size:.88rem;}
.guide-output{background:#fffaf0;color:#8a5b00;border-color:rgba(217,137,0,.18);}


.intro-overview-card{margin:-12px 0 28px;padding:20px 22px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff 0%,var(--bg-teal-50) 100%);border:1px solid rgba(77,184,164,.24);box-shadow:var(--shadow);}
.intro-overview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.intro-overview-head span{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#dff4ef;color:#226b60;font-size:.84rem;font-weight:900;letter-spacing:.08em;}
.intro-overview-head strong{font-size:1.05rem;color:#1f4f48;}
.intro-overview-body{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:stretch;}
.intro-overview-step{position:relative;padding:15px 12px;border-radius:14px;background:#fff;border:1px solid rgba(77,184,164,.20);min-height:82px;display:flex;flex-direction:column;gap:9px;justify-content:center;align-items:flex-start;}
.intro-overview-step span{font-size:.78rem;font-weight:950;color:#2f7d73;letter-spacing:.08em;}
.intro-overview-step strong{font-size:.96rem;color:#213b38;line-height:1.35;}

.intro-main-diagram{margin:-12px 0 28px;padding:20px 22px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff 0%,var(--bg-teal-50) 100%);border:1px solid rgba(77,184,164,.24);box-shadow:var(--shadow);break-inside:avoid;}
.intro-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.intro-main-head span{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#dff4ef;color:#226b60;font-size:.84rem;font-weight:900;letter-spacing:.08em;}
.intro-main-head strong{font-size:1.08rem;color:#1f4f48;background:none;padding:0;}
.intro-main-body{position:relative;display:grid;gap:12px;align-items:stretch;}
.intro-main-diagram-route .intro-main-body{grid-template-columns:repeat(5,minmax(0,1fr));}
.intro-route-node,.intro-delivery-card,.intro-layer,.intro-wheel-node,.intro-matrix-col{border-radius:14px;background:#fff;border:1px solid rgba(77,184,164,.20);box-shadow:0 8px 18px rgba(31,42,46,.05);}
.intro-route-node{position:relative;min-height:86px;padding:15px 12px;display:flex;flex-direction:column;gap:8px;justify-content:center;}
.intro-route-node:not(:last-child)::after{content:"→";position:absolute;right:-15px;top:50%;transform:translateY(-50%);color:#75b9ad;font-weight:950;z-index:2;}
.intro-route-node span,.intro-delivery-card span,.intro-layer span,.intro-wheel-node span{font-size:.78rem;font-weight:950;color:#2f7d73;letter-spacing:.08em;}
.intro-route-node strong,.intro-delivery-card strong,.intro-layer strong,.intro-wheel-node strong{font-size:.96rem;color:#213b38;line-height:1.35;background:none;padding:0;}
.intro-main-diagram-layers .intro-main-body{grid-template-columns:1fr;}
.intro-layer{padding:12px 16px;display:grid;grid-template-columns:48px 1fr;align-items:center;min-height:58px;}
.intro-layer.layer-1{margin-left:0}.intro-layer.layer-2{margin-left:34px}.intro-layer.layer-3{margin-left:68px}.intro-layer.layer-4{margin-left:102px}.intro-layer.layer-5{margin-left:136px}
.intro-main-diagram-flywheel .intro-main-body{min-height:260px;display:block;}
.intro-wheel-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:110px;height:110px;border-radius:999px;background:#fffaf0;border:1px solid rgba(217,137,0,.25);display:flex;align-items:center;justify-content:center;color:#8a5b00;font-weight:950;box-shadow:0 10px 22px rgba(31,42,46,.08);}
.intro-wheel-node{position:absolute;width:138px;min-height:64px;padding:11px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.intro-wheel-node.node-1{left:50%;top:0;transform:translateX(-50%);}.intro-wheel-node.node-2{right:2%;top:28%;}.intro-wheel-node.node-3{right:16%;bottom:0;}.intro-wheel-node.node-4{left:16%;bottom:0;}.intro-wheel-node.node-5{left:2%;top:28%;}
.intro-main-diagram-matrix .intro-main-body{grid-template-columns:1fr 64px 1fr;align-items:center;}
.intro-matrix-col{padding:14px 16px;display:flex;flex-direction:column;gap:9px;min-height:160px;}
.intro-matrix-col em{font-style:normal;color:#8a5b00;font-weight:900;}.intro-matrix-col span{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--bg-teal-50);color:#226b60;font-weight:800;}
.intro-matrix-mid{display:flex;align-items:center;justify-content:center;color:#75b9ad;font-size:2.4rem;font-weight:950;}
.intro-main-diagram-delivery .intro-main-body{grid-template-columns:repeat(5,minmax(0,1fr));}
.intro-main-diagram[data-intro-main-source="fixed-svg"] .intro-main-body{display:block !important;min-height:300px;}
.intro-main-diagram[data-intro-main-source="fixed-svg"] .intro-main-svg{display:block;width:100%;height:auto;min-height:300px;}
.section2-main-diagram[data-section2-main-diagram="fixed-svg"] .section2-main-body{display:block !important;}
.section2-main-diagram[data-section2-main-diagram="fixed-svg"] .section2-main-svg{display:block;width:100%;height:auto;min-height:304px;}
.intro-delivery-card{padding:14px 12px;min-height:104px;display:flex;flex-direction:column;gap:6px;justify-content:center;}
.intro-delivery-card small{color:var(--text-secondary);font-size:.82rem;line-height:1.35;}
.section2-main-diagram{margin:-12px 0 28px;padding:20px 22px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff 0%,var(--bg-teal-50) 100%);border:1px solid rgba(77,184,164,.24);box-shadow:var(--shadow);break-inside:avoid;}
.section2-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.section2-main-head span{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#dff4ef;color:#226b60;font-size:.84rem;font-weight:900;letter-spacing:.08em;}
.section2-main-head strong{font-size:1.08rem;color:#1f4f48;background:none;padding:0;}
.section2-main-body{display:block;min-height:304px;}
.section2-main-svg{display:block;width:100%;height:auto;min-height:304px;}
.code-reading-tip{margin:-6px 0 14px;color:var(--text-secondary);font-size:.92rem;line-height:1.65;}
.course-section table pre,.course-section table pre.code-block{display:inline !important;margin:0 !important;padding:0 !important;border:none !important;background:transparent !important;box-shadow:none !important;color:inherit !important;white-space:normal !important;}
 .course-section table .copy-code-btn{display:none !important;}
.course-section table code,.course-section table code.inline-code-plain{display:inline !important;background:#f1f5f9 !important;color:#334155 !important;border:1px solid #cbd5e1 !important;padding:2px 6px !important;border-radius:6px !important;white-space:normal !important;word-break:break-word !important;}

.mini-diagram{margin:-12px 0 28px;padding:18px 20px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff 0%,var(--bg-teal-50) 100%);border:1px solid rgba(77,184,164,.20);box-shadow:var(--shadow);}
.mini-diagram-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.mini-diagram-head span{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#dff4ef;color:#226b60;font-size:.84rem;font-weight:900;letter-spacing:.08em;}
.mini-diagram-head strong{font-size:1.04rem;color:#1f4f48;background:none;padding:0;}
.mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:stretch;}
.mini-step,.mini-scenario,.mini-lane,.mini-arch-node,.mini-arch-core{border-radius:var(--radius-md);border:1px solid rgba(77,184,164,.18);background:rgba(255,255,255,.82);box-shadow:0 8px 18px rgba(31,42,46,.05);}
.mini-step{position:relative;padding:14px 12px 12px;text-align:center;}
.mini-step span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--primary);color:#fff;font-weight:900;font-size:.82rem;margin-bottom:8px;}
.mini-step strong,.mini-scenario strong,.mini-lane strong,.mini-arch-node{display:block;color:#226b60;background:none;padding:0;font-weight:900;line-height:1.4;}
.mini-diagram-mini-arch .mini-diagram-body{position:relative;min-height:188px;display:block;}
.mini-arch-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:138px;min-height:68px;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;color:#1f4f48;font-weight:950;background:#fffaf0;border-color:rgba(217,137,0,.22);}
.mini-arch-node{position:absolute;width:132px;min-height:54px;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;}
.mini-arch-node.node-a{left:0;top:0;}.mini-arch-node.node-b{right:0;top:0;}.mini-arch-node.node-c{left:0;bottom:0;}.mini-arch-node.node-d{right:0;bottom:0;}
.mini-diagram-scenario-grid .mini-diagram-body{grid-template-columns:repeat(2,minmax(0,1fr));}
.mini-scenario{padding:13px 14px;}.mini-scenario span{display:block;color:#8a5b00;font-size:.82rem;font-weight:900;margin-bottom:4px;}
.mini-diagram-compare-lane .mini-diagram-body,.mini-diagram-mistake-fix .mini-diagram-body{grid-template-columns:repeat(2,minmax(0,1fr));}
.mini-lane{padding:14px 15px;}.mini-lane span{display:inline-flex;margin-bottom:8px;padding:3px 8px;border-radius:999px;background:var(--soft-warning-bg);color:#9a3412;font-size:.82rem;font-weight:900;}.mini-lane.better span{background:#dff4ef;color:#226b60;}.mini-lane.mistake{border-color:rgba(232,86,74,.20);background:linear-gradient(135deg,#fff 0%,var(--soft-danger-bg) 100%);}.mini-lane em{display:block;margin-top:5px;color:var(--text-secondary);font-style:normal;font-size:.92rem;line-height:1.55;}

.insight-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 22px;}
.insight-card{padding:14px 15px;border-radius:var(--radius-md);background:rgba(255,255,255,.88);border:1px solid rgba(77,184,164,.18);box-shadow:0 8px 20px rgba(31,42,46,.06);}
.insight-card strong{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:#226b60;background:none;padding:0;font-weight:900;}
.insight-card p{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.68;}
.insight-judgement{background:linear-gradient(135deg,#fbfffd 0%,var(--bg-green-50) 100%);}
.insight-mistake{background:linear-gradient(135deg,#fffdfa 0%,var(--soft-warning-bg) 100%);border-color:rgba(217,137,0,.20);}
.insight-action{background:linear-gradient(135deg,#ffffff 0%,var(--bg-teal-50) 100%);}
.insight-judgement strong::before{content:"✓";}
.insight-mistake strong::before{content:"!";}
.insight-action strong::before{content:"→";}

/* 长图阅读组件层：参考脚本组件 clean replacement 合并，不依赖 Mermaid/SVG。 */
.concept-block,.key-point,.tip-box,.scenario-card,.learning-closure-card,.system-summary,.editor-note,.flowchart,.arch-diagram,.core-takeaways,.pain-scenario-card,.field-story-card,.study-card-group,.study-card,.code-reading-tip,.detail-note,.intro-main-diagram,.section2-main-diagram{break-inside:avoid;}
.concept-block,.key-point{margin:20px 0;padding:18px 20px;border-radius:var(--radius-lg);border:1px solid rgba(77,184,164,.18);box-shadow:0 8px 20px rgba(31,42,46,.05);}
.concept-block{background:linear-gradient(135deg,#fbfffd 0%,var(--bg-green-50) 100%);}
.key-point{background:linear-gradient(135deg,#ffffff 0%,var(--bg-teal-50) 100%);border-color:rgba(69,168,153,.18);}
.concept-block h4,.key-point h4,.flowchart h4,.arch-diagram h4{margin:0 0 10px;color:#226b60;background:none;padding:0;font-size:1rem;font-weight:900;}
.concept-block p,.key-point p{margin:6px 0;color:var(--text-secondary);}
.concept-block ul{margin:10px 0 0 22px;}
.concept-block li{margin:5px 0;color:var(--text-secondary);}
.key-point h4::before{content:"✓ ";color:var(--primary-dark);}
.tip-box{position:relative;margin:20px 0;padding:15px 18px 15px 18px;border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--bg-gray-50);border:1px solid var(--line);border-left:4px solid var(--primary);}
.tip-box::before{content:"TIP";display:inline-flex;margin-bottom:7px;padding:2px 8px;border-radius:999px;background:var(--bg-green-50);color:#226b60;font-size:.74rem;font-weight:900;letter-spacing:.12em;}
.tip-box.warning{background:var(--soft-warning-bg);border-left-color:#f59e0b;border-color:rgba(217,137,0,.20);}
.tip-box.warning::before{content:"CAUTION";background:#fff7df;color:#9a5f00;}
.tip-box.important{background:var(--soft-danger-bg);border-left-color:var(--danger);border-color:rgba(232,86,74,.18);}
.tip-box.important::before{content:"IMPORTANT";background:#fff1f0;color:#b42318;}
.tip-box p{margin:4px 0;color:var(--text-secondary);}
.scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0;}
.scenario-card{padding:16px 17px;border-radius:var(--radius-md);border-left:4px solid var(--primary);background:var(--bg-green-50);box-shadow:0 8px 18px rgba(31,42,46,.045);}
.scenario-card h4{margin:0 0 7px;background:none;padding:0;color:#226b60;font-size:.98rem;font-weight:900;}
.scenario-card p{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.65;}
.scenario-card.blue{border-color:#3b82f6;background:#eff6ff;}.scenario-card.blue h4{color:#1e40af;}
.scenario-card.green{border-color:var(--primary);background:var(--bg-green-50);}.scenario-card.green h4{color:#226b60;}
.scenario-card.purple{border-color:#8b5cf6;background:#f5f3ff;}.scenario-card.purple h4{color:#6d28d9;}
.scenario-card.orange{border-color:#f59e0b;background:#fffbeb;}.scenario-card.orange h4{color:#b45309;}
.flowchart,.arch-diagram{margin:22px 0;padding:18px 20px;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(77,184,164,.18);box-shadow:var(--shadow);}
.flow-row,.arch-row{display:flex;align-items:stretch;justify-content:center;gap:10px;flex-wrap:wrap;}
.flow-step{flex:1 1 150px;min-width:130px;padding:13px 12px;border-radius:var(--radius-md);background:var(--bg-green-50);border:1px solid rgba(77,184,164,.18);text-align:center;}
.flow-step span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--primary);color:#fff;font-weight:900;font-size:.8rem;margin-bottom:7px;}
.flow-step strong{display:block;color:#226b60;background:none;padding:0;font-weight:900;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}

/* lightweight CSS visual family.  These are intentionally cheaper than
   Mermaid/SVG and provide layout diversity for small step/path concepts. */
.css-visual{position:relative;overflow:hidden;}
.css-visual .mini-diagram-body{gap:12px;}.css-visual .mini-diagram-body>*{min-width:0;}.css-visual,.flowchart{overflow-wrap:anywhere;}
.css-step-node,.css-zig-node,.css-time-node,.css-cycle-node,.css-branch-node,.css-ba-node,.css-ladder-node,.css-lane-node,.css-check-node,.css-metric-node,.css-triage-node,.css-stack-node{min-height:58px;min-width:0;padding:12px 13px;border-radius:14px;background:#fff;border:1px solid rgba(77,184,164,.18);box-shadow:0 8px 18px rgba(31,42,46,.045);display:flex;flex-direction:column;justify-content:center;gap:6px;overflow-wrap:anywhere;word-break:break-word;}
.css-step-node span,.css-zig-node span,.css-time-node span,.css-branch-node span,.css-ba-node span,.css-ladder-node span,.css-lane-node span,.css-check-node span,.css-metric-node span,.css-triage-node span,.css-stack-node span{font-size:.72rem;font-weight:950;color:#2f7d73;letter-spacing:.06em;}
.css-step-node strong,.css-zig-node strong,.css-time-node strong,.css-cycle-node strong,.css-branch-node strong,.css-ba-node strong,.css-ladder-node strong,.css-lane-node strong,.css-check-node strong,.css-metric-node strong,.css-triage-node strong,.css-stack-node strong{display:block;max-width:100%;font-weight:950;color:#213b38;line-height:1.38;white-space:normal;overflow-wrap:anywhere;word-break:break-word;hyphens:auto;text-wrap:balance;}
.css-visual-step_cards .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
.css-visual-zigzag_flow .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;}.css-zig-node:nth-child(even){transform:translateY(14px);background:var(--bg-teal-50);}
.css-visual-vertical_timeline .mini-diagram-body{display:grid;grid-template-columns:1fr;position:relative;}.css-time-node{margin-left:22px;border-left:4px solid var(--primary);}
.css-visual-radial_cycle .mini-diagram-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}.css-cycle-node{border-radius:999px;text-align:center;background:linear-gradient(135deg,#fff,var(--bg-green-50));}
.css-visual-branch_decision .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}.css-branch-node:nth-child(1){border-color:#f59e0b;background:#fffbeb;}.css-branch-node:nth-child(4){border-color:#3b82f6;background:#eff6ff;}
.css-visual-before_after .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}.css-ba-node.before{background:#fff7ed;border-color:#fed7aa;}.css-ba-node.after{background:#ecfdf5;border-color:#a7f3d0;}
.css-visual-ladder_path .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;}.css-ladder-node{min-height:calc(48px + var(--level) * 8px);background:linear-gradient(180deg,#fff,var(--bg-green-50));}
.css-visual-mini_swimlane .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}.css-lane-node{border-top:4px solid var(--primary);}
.css-visual-check_path .mini-diagram-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}.css-check-node{flex-direction:row;align-items:center;justify-content:flex-start;}.css-check-node span{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%;background:var(--primary);color:#fff;}
.css-visual-metric_cards .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}.css-metric-node{background:#f8fafc;border-color:#cbd5e1;}
.css-visual-error_triage .mini-diagram-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}.css-triage-node{background:#fff1f0;border-color:rgba(232,86,74,.20);}
.css-visual-concept_stack .mini-diagram-body{display:grid;grid-template-columns:1fr;}.css-stack-node{flex-direction:row;align-items:center;justify-content:flex-start;background:linear-gradient(90deg,#fff,var(--bg-green-50));}
@media (max-width:900px){.css-visual-step_cards .mini-diagram-body,.css-visual-zigzag_flow .mini-diagram-body,.css-visual-radial_cycle .mini-diagram-body,.css-visual-branch_decision .mini-diagram-body,.css-visual-before_after .mini-diagram-body,.css-visual-ladder_path .mini-diagram-body,.css-visual-mini_swimlane .mini-diagram-body,.css-visual-check_path .mini-diagram-body,.css-visual-metric_cards .mini-diagram-body,.css-visual-error_triage .mini-diagram-body{grid-template-columns:1fr;}.css-zig-node:nth-child(even){transform:none;}}

.arch-node{display:inline-flex;align-items:center;justify-content:center;min-width:116px;min-height:48px;padding:9px 14px;border-radius:var(--radius-md);font-weight:900;text-align:center;line-height:1.35;}
.arch-node.primary{background:var(--bg-green-50);border:2px solid var(--primary);color:#226b60;}
.arch-node.secondary{background:#fffaf0;border:2px solid #f59e0b;color:#9a5f00;}
.arch-node.accent{background:#eff6ff;border:2px solid #3b82f6;color:#1e40af;}
.arch-connector{display:inline-flex;align-items:center;color:#75b9ad;font-weight:900;font-size:1.2rem;}
.learning-closure-card,.system-summary{margin:26px 0 4px;padding:20px 22px;border-radius:0 var(--radius-lg) var(--radius-lg) 0;box-shadow:0 8px 20px rgba(31,42,46,.05);}
.learning-closure-card{background:linear-gradient(135deg,var(--bg-teal-50) 0%,var(--bg-green-50) 100%);border:1px solid rgba(77,184,164,.24);border-left:5px solid var(--primary);}
.system-summary{background:linear-gradient(135deg,#fff7fb 0%,#ecfeff 100%);border:1px solid rgba(14,116,144,.18);border-left:5px solid #ec4899;}
.learning-closure-card h4,.system-summary h4{margin:0 0 12px;padding-bottom:8px;border-bottom:1px dashed rgba(77,184,164,.26);font-size:1.18rem;color:#226b60;font-weight:950;}
.system-summary h4{color:#312e81;border-bottom-color:rgba(236,72,153,.28);}
.learning-closure-card p,.system-summary p{margin:6px 0;color:var(--text-secondary);}
.practice-narrative,.system-summary-text{font-size:.98rem;line-height:1.82;color:var(--text-secondary);}
.tail-thought-card{display:grid;gap:10px;margin-top:6px;}
.tail-thought-card p{line-height:1.78;}
.tail-thought-card strong{color:#b45309;font-weight:950;}
.tail-continuity{margin-top:12px;color:var(--text-secondary);line-height:1.72;}
.study-card-group{margin:20px 0;padding:18px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#f8fafc,#ffffff);border:1px solid rgba(148,163,184,.26);box-shadow:0 10px 22px rgba(15,23,42,.05);}
.study-card-group h4{margin:0 0 12px;color:#1e293b;font-size:1.02rem;font-weight:950;}
.study-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.study-card{padding:13px 14px;border-radius:14px;background:#ffffff;border:1px solid rgba(203,213,225,.82);box-shadow:0 8px 16px rgba(15,23,42,.04);}
.study-card span{display:inline-flex;margin-bottom:6px;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-weight:900;font-size:.78rem;letter-spacing:.04em;}
.study-card strong{display:block;margin-bottom:5px;color:#0f172a;font-size:.96rem;}
.study-card p{margin:0;color:var(--text-secondary);font-size:.93rem;line-height:1.62;}
.editor-note{margin:20px 0;padding:13px 16px;border-radius:0 var(--radius-md) var(--radius-md) 0;background:linear-gradient(135deg,#eff6ff,#f7fbff);border:1px solid rgba(59,130,246,.16);border-left:4px solid #3b82f6;color:#1e40af;font-size:.96rem;}
.editor-note::before{content:"📖 经验之谈";display:inline-flex;margin-right:8px;padding:2px 8px;border-radius:999px;background:rgba(59,130,246,.10);color:#2563eb;font-weight:900;font-size:.78rem;letter-spacing:.08em;}
.editor-note p{display:inline;margin:0;color:#1e40af;}


/* 精品样章与观点前置：让第 1/2 节更像可展示样章，让长章节先显示核心观点。 */
.core-takeaways{margin:18px 0 24px;padding:18px 20px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#fffaf0 0%,#fbfffd 100%);border:1px solid rgba(217,137,0,.22);box-shadow:0 10px 24px rgba(31,42,46,.055);}
.core-takeaways h4{margin:0 0 10px;color:#9a5f00;background:none;padding:0;font-size:1.02rem;font-weight:950;}
.core-takeaways h4::before{content:"⭐ ";}
.core-takeaways ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;counter-reset:takeaway-counter;}
.core-takeaways li{counter-increment:takeaway-counter;margin:0;padding:12px 13px 12px 42px;position:relative;border-radius:var(--radius-md);background:rgba(255,255,255,.82);border:1px solid rgba(217,137,0,.16);color:var(--text-secondary);line-height:1.62;}
.core-takeaways li::before{content:counter(takeaway-counter);position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#f59e0b;color:#fff;font-size:.78rem;font-weight:950;}
.pain-scenario-card{margin:18px 0 24px;padding:18px 20px;border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:linear-gradient(135deg,#fff7ed 0%,#fff 100%);border:1px solid rgba(249,115,22,.20);border-left:5px solid #f97316;box-shadow:0 10px 24px rgba(31,42,46,.055);}
.pain-scenario-card h4{margin:0 0 8px;color:#c2410c;background:none;padding:0;font-size:1.02rem;font-weight:950;}
.pain-scenario-card h4::before{content:"🎯 ";}
.pain-scenario-card p{margin:7px 0;color:var(--text-secondary);line-height:1.72;}
.pain-scenario-card strong{color:#9a3412;background:linear-gradient(transparent 68%,rgba(254,215,170,.55) 0);}

.field-story-card{margin:16px 0 20px;padding:17px 19px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#f0fdf4 0%,#ffffff 100%);border:1px solid rgba(77,184,164,.24);box-shadow:0 10px 22px rgba(31,42,46,.05);}
.field-story-card h4{margin:0 0 10px;color:#16675c;background:none;padding:0;font-size:1rem;font-weight:950;}
.field-story-card h4::before{content:"🛠️ ";}
.field-story-card ul{margin:0;padding-left:18px;display:grid;gap:7px;}
.field-story-card li{color:var(--text-secondary);line-height:1.68;font-size:.95rem;}
.field-story-card strong{color:#226b60;font-weight:950;}
.detail-note{margin:20px 0;padding:14px 16px;border-radius:0 var(--radius-md) var(--radius-md) 0;background:#f8fafc;border:1px dashed rgba(100,116,139,.30);border-left:4px solid #94a3b8;color:#475569;}
.detail-note strong{display:inline-flex;margin-bottom:5px;color:#475569;background:none;padding:0;font-weight:950;}
.detail-note p{margin:0;color:#64748b;font-size:.95rem;line-height:1.68;}

.table-block{position:relative;margin:24px 0;}
.table-block table{margin:0;}
.table-type-badge{display:inline-flex;align-items:center;margin:0 0 8px;padding:4px 10px;border-radius:999px;background:#dff4ef;color:#226b60;font-size:.86rem;font-weight:850;border:1px solid rgba(77,184,164,.22);}
.table-type-troubleshooting .table-type-badge{background:var(--soft-warning-bg);color:#9a3412;border-color:rgba(217,137,0,.22);}
.table-type-risk .table-type-badge{background:var(--soft-danger-bg);color:#b42318;border-color:rgba(232,86,74,.22);}
.table-type-checklist .table-type-badge,.table-type-criteria .table-type-badge{background:#f0faf7;color:#226b60;}
section{font-size:1.02rem;}
h2{margin:30px 0 16px;padding:13px 16px;border-radius:var(--radius-md);background:var(--bg-green-50);color:#226b60;border-left:5px solid var(--primary);font-size:1.36rem;font-weight:800;display:flex;align-items:center;gap:10px;box-shadow:none;}
h2 .h2-icon{flex:0 0 auto;width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-teal-50);border:1px solid rgba(77,184,164,.22);font-size:18px;line-height:1;}
h2 .h2-text{min-width:0;display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;}
h2 .h2-label{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#dff4ef;color:#226b60;font-size:.78em;font-weight:850;line-height:1.45;}
h2 .h2-divider{color:#75b9ad;font-weight:700;}
h2 .h2-topic{color:#1f4f48;font-weight:850;}
h3{margin:18px 0 10px;padding-left:13px;border-left:3px solid var(--primary-light);color:#2f7d73;font-size:1.12rem;font-weight:750;}
p{margin:12px 0;color:var(--text);}
ul,ol{margin:12px 0 16px 24px;}
li{margin:7px 0;}
strong{color:#2f7d73;background:linear-gradient(transparent 68%,rgba(168,230,219,.42) 0);padding:0 2px;}
.card,.note,.warn,.summary-box{margin:22px 0;padding:18px 20px;border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow);}
.card{background:var(--bg-white);}
.note{background:var(--bg-green-50);border-left:5px solid var(--primary);}
.warn{background:var(--soft-warning-bg);border-left:5px solid var(--danger);}
.summary-box{background:var(--bg-teal-50);border-left:5px solid var(--accent);}
.note strong:first-child::before,.summary-box strong:first-child::before,.warn strong:first-child::before{content:"";}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;margin:24px 0;border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;}
.table-wrap table{margin:0;}
table{width:100%;border-collapse:separate;border-spacing:0;margin:24px 0;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
th,td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
th{color:#226b60;font-weight:800;background:var(--bg-green-50);}
tr:nth-child(even) td{background:var(--bg-gray-50);}
tr:hover td{background:#f3fbf8;}
.diagram-card{margin:26px 0 14px;padding:18px;border-radius:var(--radius-lg);background:var(--bg-white);border:1px solid var(--line);box-shadow:var(--shadow);}
.diagram-title{font-size:1rem;font-weight:800;color:#226b60;margin-bottom:12px;}
.diagram-title::before{content:"▸ ";color:var(--primary);}
.mermaid{padding:12px 10px 6px;border-radius:var(--radius-md);background:var(--bg-gray-50);border:1px solid var(--line);overflow-x:auto;min-height:80px;}
.mermaid-caption{text-align:center;color:var(--text-muted);font-size:.92rem;margin-top:8px;margin-bottom:4px;font-style:italic;}
.diagram-insight{margin-top:10px;padding:12px 14px 10px;border-radius:var(--radius-md);background:var(--bg-green-50);border:1px solid rgba(77,184,164,.18);}
.diagram-insight ul{margin:0 0 0 18px;}
.diagram-insight li{margin:6px 0;color:var(--muted);font-size:.94rem;}
.diagram-insight strong{color:var(--primary-dark);background:none;padding:0;}
.diagram-hover-guide{margin-top:10px;padding:12px 14px;border-radius:var(--radius-md);background:#fbfcfd;border:1px dashed var(--border-default);}
.diagram-hotspots{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.diagram-hotspot{border:none;cursor:pointer;padding:7px 12px;border-radius:999px;background:var(--bg-teal-50);color:var(--primary-dark);font-weight:750;box-shadow:var(--shadow);}
.diagram-svg{margin-top:12px;padding:14px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--line);overflow:auto;}
.diagram-hotspot:hover,.diagram-hotspot:focus,.diagram-hotspot.active{background:#dff4ef;outline:none;}
.diagram-hover-panel{margin-top:10px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-gray-50);border:1px solid var(--line);}
.diagram-hover-panel p{margin:0;color:var(--muted);line-height:1.8;}
.diagram-card.diagram-render-failed{display:none !important;}
.diagram-card svg g.node.diagram-node-active rect,.diagram-card svg g.node.diagram-node-active path,.diagram-card svg g.node.diagram-node-active polygon,.diagram-card svg g.cluster.diagram-node-active rect,.diagram-card svg g.edgeLabel.diagram-node-active rect{stroke:var(--primary-dark) !important;stroke-width:3px !important;filter:drop-shadow(0 0 4px rgba(77,184,164,.28));}
.diagram-card svg g.node.diagram-node-active text,.diagram-card svg g.cluster.diagram-node-active text,.diagram-card svg g.edgeLabel.diagram-node-active text,.diagram-card svg g.node.diagram-node-active tspan,.diagram-card svg g.cluster.diagram-node-active tspan,.diagram-card svg g.edgeLabel.diagram-node-active tspan{fill:#226b60 !important;font-weight:800 !important;}
pre,code{font-family:Consolas,"Courier New",monospace;}
.course-section pre.code-block,.course-section pre.code-block.hljs,.course-section pre.code-block code,.course-section pre.code-block code.hljs,.course-section pre.code-block > code,.course-section pre.code-block > code.hljs{background: #0f172a !important;background-color: #0f172a !important;color: #e5eefb !important;}
.course-section pre.code-block{position:relative !important;margin:18px 0 !important;padding:18px 20px !important;border-radius:12px !important;overflow:auto !important;border:1px solid #1f2d45 !important;box-shadow:0 12px 18px rgba(15,23,42,.12) !important;}
.course-section pre.code-block code,.course-section pre.code-block code.hljs{display:block !important;white-space:pre !important;word-break:normal !important;padding:0 !important;}
.course-section pre:not(.code-block){position:relative !important;margin:12px 0 !important;padding:10px 12px !important;border-radius:10px !important;overflow:auto !important;background:var(--bg-gray-50) !important;background-color:var(--bg-gray-50) !important;color:#344054 !important;border:1px solid var(--line) !important;box-shadow:none !important;}
.course-section pre:not(.code-block) > code,.course-section code.inline-code-plain,.course-section :not(pre) > code{background:#f1f5f9 !important;background-color:#f1f5f9 !important;color:#334155 !important;border:1px solid #cbd5e1 !important;padding:2px 6px !important;border-radius:6px !important;white-space:normal !important;word-break:break-word !important;}
.course-section pre:not(.code-block) > code{display:block !important;padding:0 !important;background:transparent !important;background-color:transparent !important;color:#344054 !important;}
.course-section pre:not(.code-block) .copy-code-btn{display:none !important;}
.copy-code-btn{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:none;border-radius:999px;background:rgba(255,255,255,.14);color:#f6f8ff;font-size:.82rem;font-weight:800;line-height:1;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 6px 14px rgba(0,0,0,.16);transition:transform .15s ease,background .15s ease,opacity .15s ease;z-index:2;}
.copy-code-btn:hover,.copy-code-btn:focus{background:rgba(255,255,255,.22);outline:none;transform:translateY(-1px);}
.copy-code-btn.copied{background:rgba(77,184,164,.24);color:#ecfff6;}
.svg-visual-card .diagram-insight,.svg-visual-card .diagram-hover-guide,.svg-visual-card .diagram-hotspots,.svg-visual-card .diagram-hover-panel{display:none !important;}
.page-nav{margin-top:34px;padding:18px 20px;border-radius:var(--radius-lg);background:var(--bg-white);border:1px solid var(--line);box-shadow:var(--shadow);}
.page-nav-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap;}
.progress-text{font-weight:800;color:#226b60;}
.progress-bar{width:100%;height:10px;border-radius:999px;background:var(--bg-gray-100);overflow:hidden;margin-bottom:14px;}
.progress-fill{height:100%;border-radius:999px;background:var(--gradient-main);}
.page-nav-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:center;}
.nav-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 15px;border-radius:999px;text-decoration:none;font-weight:800;color:var(--primary-dark);background:var(--bg-green-50);box-shadow:var(--shadow);border:1px solid rgba(77,184,164,.18);}
.nav-btn:hover{box-shadow:var(--shadow-hover);}
.nav-btn-center{justify-self:center;width:100%;max-width:240px;}
.page-nav-actions > :first-child{justify-self:start;width:100%;max-width:240px;}
.page-nav-actions > :last-child{justify-self:end;width:100%;max-width:240px;}
.nav-btn.disabled{color:var(--text-muted);background:var(--bg-gray-100);box-shadow:none;pointer-events:none;border-color:var(--line);}
footer{margin-top:36px;text-align:center;color:var(--text-muted);font-size:.92rem;}
@media (max-width:900px){.guide-grid,.guide-grid-balanced,.insight-cards,.study-card-grid,.scenario-grid,.core-takeaways ol,.intro-overview-body,.intro-main-diagram-route .intro-main-body,.intro-main-diagram-delivery .intro-main-body,.intro-main-diagram-matrix .intro-main-body,.mini-diagram-body,.mini-diagram-scenario-grid .mini-diagram-body,.mini-diagram-compare-lane .mini-diagram-body,.mini-diagram-mistake-fix .mini-diagram-body{grid-template-columns:1fr;}.flow-row,.arch-row{display:grid;grid-template-columns:1fr;}.arch-connector{display:none;}.mini-diagram-mini-arch .mini-diagram-body{display:grid;grid-template-columns:1fr;min-height:auto;}.mini-arch-core,.mini-arch-node,.intro-wheel-node,.intro-wheel-core{position:static;transform:none;width:auto;min-height:0;margin:0;}.intro-main-diagram-flywheel .intro-main-body{display:grid;grid-template-columns:1fr;min-height:auto;}.intro-route-node:not(:last-child)::after{display:none;}.intro-layer.layer-1,.intro-layer.layer-2,.intro-layer.layer-3,.intro-layer.layer-4,.intro-layer.layer-5{margin-left:0;}}
@media (max-width:820px){.page-nav-actions{grid-template-columns:1fr;}.nav-btn-center,.page-nav-actions > :first-child,.page-nav-actions > :last-child{justify-self:stretch;max-width:none;}}
@media (max-width:760px){.course-section h2{gap:8px;padding:12px 13px;font-size:1.22rem;}.course-section h2 .h2-icon{width:30px;height:30px;border-radius:8px;font-size:17px;}.course-section h2 .h2-label{font-size:.76em;}.container{padding:26px 20px 34px;}}

@media (max-width:640px){
  body{padding:14px 8px 28px;font-size:14px;}
  .container{border-radius:14px;padding:20px 12px 28px;}
  .hero{padding:22px 16px;margin-bottom:20px;}
  .hero h1{font-size:1.42rem;line-height:1.42;}
  .course-chip{max-width:100%;white-space:normal;overflow-wrap:anywhere;}
  .chapter-guide,.mini-diagram,.intro-main-diagram,.section2-main-diagram,.concept-block,.key-point,.scenario-card,.field-story-card,.study-card-group,.bad-good-verify,.learning-closure-card,.system-summary{padding-left:14px;padding-right:14px;max-width:100%;overflow-wrap:anywhere;}
  .course-section h2{font-size:1.12rem;line-height:1.45;}
  .course-section h3{font-size:1.03rem;}
  .table-wrap,.mermaid,.diagram-svg,.course-section pre.code-block,.course-section pre:not(.code-block){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .page-nav{padding:16px 14px;}
}

:root{
  --primary:#4db8a4;
  --primary-dark:#3a9e8c;
  --primary-light:#6fcfbe;
  --accent:#45a899;
  --accent-light:#a8e6db;
  --danger:#e8564a;
  --warning:#d98900;
  --gradient-main:linear-gradient(135deg,#4db8a4,#5ec6b4);
  --gradient-soft:linear-gradient(135deg,#4db8a4 0%,#5ec6b4 50%,#7dd4c6 100%);
  --gradient-header:linear-gradient(135deg,#4db8a4,#5ec6b4,#7dd4c6);
  --bg-page:#f6f8fa;
  --bg-white:#ffffff;
  --bg-gray-50:#f8f9fb;
  --bg-gray-100:#f0f2f5;
  --bg-green-50:#edf9f5;
  --bg-teal-50:#f0faf7;
  --text:#1f2937;
  --text-primary:#1f2937;
  --text-secondary:#4b5563;
  --muted:#4b5563;
  --text-muted:#9ca3af;
  --line:#e5e7eb;
  --border-light:#e5e7eb;
  --border-default:#d1d5db;
  --white:#ffffff;
  --code-bg:#0f172a;
  --code-border:#1f2d45;
  --code-text:#e5eefb;
  --soft-danger-bg:#fef0ef;
  --soft-warning-bg:#fff7ed;
  --shadow:0 1px 3px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.03);
  --shadow-hover:0 4px 12px rgba(77,184,164,.12),0 2px 4px rgba(0,0,0,.04);
  --shadow-card:0 1px 3px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.03);
  --shadow-card-hover:0 4px 12px rgba(77,184,164,.12),0 2px 4px rgba(0,0,0,.04);
  --press-shadow:0 1px 2px rgba(0,0,0,.05);
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:12px;
  --radius-xl:16px;
  /* legacy index aliases retained here so old hardcoded roots are removed cleanly. */
  --mint:#4db8a4;
  --mint2:#6fcfbe;
  --cream:#fff7df;
  --cream2:#fffdf4;
  --soft:#fff7ed;
  --pink:#fef0ef;
  --pink-text:#e8564a;
  --blue:#3a9e8c;
  --blue2:#4db8a4;
}

/* Step 9：SVG HTML/CSS 动画接入层
   只消费 Step7 策略字段与 Step8 class 挂点；不作用于 Mermaid。 */
.svg-visual-card.svg-animation-enabled {
  --svg-anim-fast: .95s;
  --svg-anim-normal: 1.8s;
  --svg-anim-slow: 2.8s;
  --svg-anim-ease: cubic-bezier(.22,.8,.28,1);
}

.svg-visual-card.svg-animation-enabled .svg-animation-target,
.svg-visual-card.svg-animation-enabled .svg-pulse-path,
.svg-visual-card.svg-animation-enabled .svg-reveal-step,
.svg-visual-card.svg-animation-enabled .svg-hover-target,
.svg-visual-card.svg-animation-enabled .svg-local-glow-target,
.svg-visual-card.svg-animation-enabled .svg-status-blink-target {
  transform-box: fill-box;
  transform-origin: center;
}

.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-data_flow_pulse .svg-pulse-path,
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-data-flow-pulse .svg-pulse-path {
  stroke-dasharray: 9 13;
  animation: svgDataFlowPulse var(--svg-anim-slow) linear infinite;
}

.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-data_flow_pulse:hover .svg-pulse-path,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-data-flow-pulse:hover .svg-pulse-path,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-data_flow_pulse:focus-within .svg-pulse-path,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-data-flow-pulse:focus-within .svg-pulse-path {
  stroke-dasharray: 9 13;
  animation: svgDataFlowPulse var(--svg-anim-slow) linear infinite;
}

.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-data_flow_pulse .svg-flow-path,
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-data-flow-pulse .svg-flow-path {
  filter: drop-shadow(0 0 5px rgba(56,189,248,.22));
}

.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step,
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step {
  opacity: .9;
  transform: none;
  animation: svgStepReveal var(--svg-anim-normal) var(--svg-anim-ease) forwards;
}
.svg-visual-card.static-first-frame .svg-reveal-step {
  opacity: 1;
  transform: none;
}
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-step_reveal:hover .svg-reveal-step,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-step-reveal:hover .svg-reveal-step,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-step_reveal:focus-within .svg-reveal-step,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-step-reveal:focus-within .svg-reveal-step {
  animation: svgStepReveal var(--svg-anim-normal) var(--svg-anim-ease) forwards;
}
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step:nth-of-type(1),
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step:nth-of-type(1) { animation-delay: .05s; }
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step:nth-of-type(2),
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step:nth-of-type(2) { animation-delay: .18s; }
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step:nth-of-type(3),
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step:nth-of-type(3) { animation-delay: .31s; }
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step:nth-of-type(4),
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step:nth-of-type(4) { animation-delay: .44s; }
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step:nth-of-type(5),
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step:nth-of-type(5) { animation-delay: .57s; }
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step_reveal .svg-reveal-step:nth-of-type(6),
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-step-reveal .svg-reveal-step:nth-of-type(6) { animation-delay: .70s; }

.svg-visual-card.svg-animation-enabled .svg-hover-target {
  transition: transform .22s var(--svg-anim-ease), filter .22s var(--svg-anim-ease), opacity .22s ease;
}
.svg-visual-card.svg-animation-enabled .svg-hover-target:hover,
.svg-visual-card.svg-animation-enabled .svg-hover-target:focus {
  transform: translateY(-2px) scale(1.012);
  filter: drop-shadow(0 9px 12px rgba(91,77,255,.14));
}

.svg-visual-card.svg-animation-enabled.svg-animation-type-hover_highlight .svg-hover-target,
.svg-visual-card.svg-animation-enabled.svg-animation-type-hover-highlight .svg-hover-target,
.svg-visual-card.svg-animation-enabled.svg-animation-type-local_glow .svg-local-glow-target,
.svg-visual-card.svg-animation-enabled.svg-animation-type-local-glow .svg-local-glow-target {
  cursor: default;
}

.svg-visual-card.svg-animation-enabled.svg-animation-type-local_glow .svg-local-glow-target:hover,
.svg-visual-card.svg-animation-enabled.svg-animation-type-local-glow .svg-local-glow-target:hover {
  filter: drop-shadow(0 0 10px rgba(23,201,255,.25));
}

.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-status_blink .svg-status-blink-target,
.svg-visual-card.svg-animation-enabled.svg-animation-autoplay.svg-animation-type-status-blink .svg-status-blink-target {
  animation: svgStatusBlink var(--svg-anim-slow) ease-in-out infinite;
}

.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-status_blink:hover .svg-status-blink-target,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-status-blink:hover .svg-status-blink-target,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-status_blink:focus-within .svg-status-blink-target,
.svg-visual-card.svg-animation-enabled.svg-animation-manual.svg-animation-type-status-blink:focus-within .svg-status-blink-target {
  animation: svgStatusBlink var(--svg-anim-slow) ease-in-out infinite;
}

.svg-visual-card.svg-animation-autoplay.motion-can-pause:hover .svg-animation-target,
.svg-visual-card.svg-animation-autoplay.motion-can-pause:hover .svg-pulse-path,
.svg-visual-card.svg-animation-autoplay.motion-can-pause:hover .svg-reveal-step,
.svg-visual-card.svg-animation-autoplay.motion-can-pause:hover .svg-status-blink-target,
.svg-visual-card.svg-animation-autoplay.motion-can-pause:hover .svg-local-glow-target,
.svg-visual-card.svg-animation-autoplay.motion-can-pause:hover .svg-hover-target {
  animation-play-state: paused;
}

.svg-visual-card.svg-animation-disabled .svg-animation-target,
.svg-visual-card.svg-animation-disabled .svg-pulse-path,
.svg-visual-card.svg-animation-disabled .svg-reveal-step,
.svg-visual-card.svg-animation-disabled .svg-status-blink-target,
.svg-visual-card.svg-animation-disabled .svg-local-glow-target {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

@keyframes svgDataFlowPulse {
  0% { stroke-dashoffset: 0; opacity: .78; }
  50% { opacity: 1; }
  100% { stroke-dashoffset: -44; opacity: .78; }
}

@keyframes svgStepReveal {
  0% { opacity: .9; transform: none; }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes svgStatusBlink {
  0%, 100% { opacity: .72; transform: scale(.96); }
  50% { opacity: 1; transform: scale(1.09); }
}

@media (prefers-reduced-motion: reduce) {
  .svg-visual-card.svg-animation-enabled .svg-animation-target,
  .svg-visual-card.svg-animation-enabled .svg-pulse-path,
  .svg-visual-card.svg-animation-enabled .svg-reveal-step,
  .svg-visual-card.svg-animation-enabled .svg-status-blink-target,
  .svg-visual-card.svg-animation-enabled .svg-local-glow-target,
  .svg-visual-card.svg-animation-enabled .svg-hover-target {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

@media print {
  .svg-visual-card .svg-animation-target,
  .svg-visual-card .svg-pulse-path,
  .svg-visual-card .svg-reveal-step,
  .svg-visual-card .svg-status-blink-target,
  .svg-visual-card .svg-local-glow-target,
  .svg-visual-card .svg-hover-target {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
