        /* ==========================================
           机器学习 — 专有样式
           宽度继承全局 85%，风格延续 part1 的温暖杂志风
           ========================================== */

        /* ---- 相关法规 ---- */
        .law-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: var(--space-md);
            margin-bottom: var(--space-xl);
        }

        .law-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            overflow: hidden;
            transition: all var(--transition-slow);
        }

        .law-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }

        .law-header {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            padding: var(--space-md);
            background: linear-gradient(135deg, var(--bg-elevated), var(--bg-card));
            border-bottom: 1px solid var(--border-subtle);
        }

        .law-flag {
            font-size: 1.5rem;
        }

        .law-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 1rem;
            font-weight: 600;
            color: var(--text-primary);
        }

        .law-list {
            list-style: none;
            padding: var(--space-md);
            margin: 0;
        }

        .law-list li {
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.7;
            padding: var(--space-xs) 0;
            padding-left: var(--space-md);
            position: relative;
        }

        .law-list li::before {
            content: '§';
            position: absolute;
            left: 0;
            color: var(--primary);
            font-weight: 600;
        }

        .law-list li strong {
            color: var(--text-primary);
        }

        /* ---- 研究现状 ---- */
        .research-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: var(--space-md);
            margin-bottom: var(--space-xl);
        }

        .research-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            transition: all var(--transition-slow);
            border-top: 3px solid var(--primary);
        }

        .research-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }

        .research-card:nth-child(2) {
            border-top-color: #3B82F6;
        }

        .research-card:nth-child(3) {
            border-top-color: #10B981;
        }

        .research-card:nth-child(4) {
            border-top-color: #F59E0B;
        }

        .research-card:nth-child(5) {
            border-top-color: #EC4899;
        }

        .research-card:nth-child(6) {
            border-top-color: #8B5CF6;
        }

        .research-card h4 {
            font-family: 'Noto Serif SC', serif;
            font-size: 0.95rem;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }

        .research-card p {
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.7;
            margin: 0;
        }

        /* ---- 现状及优、劣势 ---- */
        .pros-cons-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
            margin-bottom: var(--space-xl);
        }

        .pros-card,
        .cons-card {
            background: var(--bg-card);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            border: 1px solid var(--border-subtle);
        }

        .pros-card {
            border-top: 4px solid #10B981;
        }

        .cons-card {
            border-top: 4px solid #F59E0B;
        }

        .pros-header,
        .cons-header {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            margin-bottom: var(--space-md);
        }

        .pros-icon,
        .cons-icon {
            font-size: 1.5rem;
        }

        .pros-title,
        .cons-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--text-primary);
        }

        .pros-list,
        .cons-list {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .pros-list li,
        .cons-list li {
            font-size: 0.85rem;
            color: var(--text-secondary);
            line-height: 1.7;
            padding: var(--space-xs) 0;
            padding-left: var(--space-md);
            position: relative;
        }

        .pros-list li::before {
            content: '✓';
            position: absolute;
            left: 0;
            color: #10B981;
            font-weight: 600;
        }

        .cons-list li::before {
            content: '•';
            position: absolute;
            left: 0;
            color: #F59E0B;
            font-weight: 600;
        }

        .pros-list li strong,
        .cons-list li strong {
            color: var(--text-primary);
        }

        .status-box {
            background: linear-gradient(135deg, var(--bg-elevated), var(--bg-card));
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            border: 1px solid var(--border-subtle);
            border-left: 4px solid var(--primary);
        }

        .status-box p {
            font-size: 0.9rem;
            color: var(--text-secondary);
            line-height: 1.8;
            margin: 0;
        }

        @media (max-width: 768px) {
            .pros-cons-grid {
                grid-template-columns: 1fr;
            }
        }

        /* ---- 章节二级标题变体 ---- */
        .chapter-section h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.2rem;
            font-weight: 600;
            color: var(--primary-dark);
            margin: var(--space-lg) 0 var(--space-md);
            padding-left: var(--space-md);
            border-left: 3px solid var(--primary);
        }

        .chapter-section h4 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--text-primary);
            margin: var(--space-md) 0 var(--space-sm);
        }

        /* ---- 定义卡 ---- */
        .def-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .def-grid.problem-types {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .def-grid.problem-types .row {
            display: flex;
            justify-content: center;
            gap: var(--space-lg);
            flex-wrap: wrap;
        }

        .def-grid.problem-types .row .def-card {
            flex: 0 1 260px;
            min-width: 200px;
        }

        .def-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            text-align: center;
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
            position: relative;
            overflow: hidden;
        }

        .def-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            transition: opacity var(--transition-base);
        }

        .def-card:nth-child(1)::before {
            background: linear-gradient(90deg, #EC4899, #F472B6);
        }

        .def-card:nth-child(2)::before {
            background: linear-gradient(90deg, #3B82F6, #60A5FA);
        }

        .def-card:nth-child(3)::before {
            background: linear-gradient(90deg, #10B981, #34D399);
        }

        .def-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
        }

        .def-card:nth-child(1):hover {
            border-color: rgba(236, 72, 153, 0.3);
        }

        .def-card:nth-child(2):hover {
            border-color: rgba(59, 130, 246, 0.3);
        }

        .def-card:nth-child(3):hover {
            border-color: rgba(16, 185, 129, 0.3);
        }

        .def-card:hover::before {
            opacity: 1;
        }

        .def-label {
            display: inline-block;
            font-size: 0.65rem;
            letter-spacing: 0.1em;
            padding: 3px 12px;
            border-radius: var(--radius-xl);
            margin-bottom: var(--space-sm);
        }

        .def-card:nth-child(1) .def-label {
            background: #FDF2F8;
            color: #BE185D;
            border: 1px solid #FBCFE8;
        }

        .def-card:nth-child(2) .def-label {
            background: #EFF6FF;
            color: #1D4ED8;
            border: 1px solid #BFDBFE;
        }

        .def-card:nth-child(3) .def-label {
            background: #ECFDF5;
            color: #047857;
            border: 1px solid #A7F3D0;
        }

        .def-card h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.15rem;
            color: var(--text-primary);
            margin-bottom: 2px;
        }

        .def-en {
            font-size: 0.7rem;
            color: var(--text-muted);
            letter-spacing: 0.05em;
            margin-bottom: var(--space-sm);
        }

        .def-body {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
            text-align: left;
        }

        .def-body strong {
            color: var(--primary);
        }

        /* ---- 学者定义卡片（精简小点风格） ---- */
        .scholar-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: var(--space-lg);
            margin-bottom: var(--space-xl);
            max-width: 600px;
            margin-left: auto;
            margin-right: auto;
        }

        .scholar-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg) var(--space-md);
            text-align: left;
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
            position: relative;
        }

        .scholar-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            border-radius: var(--radius-lg) var(--radius-lg) 0 0;
            background: linear-gradient(90deg, #6366F1, #818CF8, #10B981);
        }

        .scholar-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }

        .scholar-card:nth-child(1):hover {
            border-color: rgba(99, 102, 241, 0.3);
        }

        .scholar-avatar {
            width: 48px;
            height: 48px;
            margin: 0 auto 0;
            margin-bottom: var(--space-sm);
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: 600;
            font-family: 'Noto Serif SC', serif;
            background: #EEF2FF;
            color: #4F46E5;
            border: 1.5px solid #C7D2FE;
            vertical-align: middle;
        }

        .scholar-header {
            display: flex;
            align-items: center;
            gap: var(--space-md);
            margin-bottom: var(--space-md);
        }

        .scholar-name {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.15rem;
            font-weight: 600;
            color: var(--text-primary);
        }

        .scholar-year-badge {
            font-size: 0.75rem;
            padding: 2px 12px;
            border-radius: var(--radius-xl);
            background: #EEF2FF;
            color: #6366F1;
            border: 1px solid #C7D2FE;
        }

        .scholar-quote {
            color: var(--text-secondary);
            font-size: 0.9rem;
            line-height: 1.7;
            padding: var(--space-md);
            background: var(--bg-elevated);
            border-radius: var(--radius-md);
            margin-bottom: var(--space-md);
            position: relative;
            border-left: 3px solid #6366F1;
        }

        .scholar-quote p {
            padding-left: 0;
            font-size: inherit;
            margin: 0;
        }

        .scholar-desc {
            font-size: 0.82rem;
            color: var(--text-muted);
            line-height: 1.6;
            margin-top: var(--space-xs);
        }

        @media (max-width: 768px) {
            .flow-step:not(:last-child)::after {
                display: none;
            }
        }
        .element-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .element-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            text-align: center;
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
        }

        .element-card:hover {
            transform: translateY(-5px);
            box-shadow: var(--shadow-hover);
        }

        .element-card:nth-child(1) {
            border-top: 3px solid #F59E0B;
        }

        .element-card:nth-child(2) {
            border-top: 3px solid #3B82F6;
        }

        .element-card:nth-child(3) {
            border-top: 3px solid #10B981;
        }

        .element-card:nth-child(1):hover {
            border-color: rgba(245, 158, 11, 0.3);
        }

        .element-card:nth-child(2):hover {
            border-color: rgba(59, 130, 246, 0.3);
        }

        .element-card:nth-child(3):hover {
            border-color: rgba(16, 185, 129, 0.3);
        }

        .element-icon {
            width: 56px;
            height: 56px;
            margin: 0 auto var(--space-md);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
        }

        .element-card:nth-child(1) .element-icon {
            background: #FFFBEB;
            border: 1px solid #FDE68A;
        }

        .element-card:nth-child(2) .element-icon {
            background: #EFF6FF;
            border: 1px solid #BFDBFE;
        }

        .element-card:nth-child(3) .element-icon {
            background: #ECFDF5;
            border: 1px solid #A7F3D0;
        }

        .element-card h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.1rem;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }

        .element-body {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
        }

        /* ---- 核心技术卡片 ---- */
        .tech-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .tech-grid-3col {
            grid-template-columns: repeat(3, 1fr);
        }

        @media (max-width: 768px) {
            .tech-grid-3col {
                grid-template-columns: 1fr;
            }
        }

        .tech-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
            position: relative;
        }

        .tech-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
        }

        .tech-card:nth-child(1) {
            border-top: 3px solid #6366F1;
        }

        .tech-card:nth-child(2) {
            border-top: 3px solid #F59E0B;
        }

        .tech-card:nth-child(3) {
            border-top: 3px solid #EC4899;
        }

        .tech-card:nth-child(4) {
            border-top: 3px solid #10B981;
        }

        .tech-card:nth-child(1):hover {
            border-color: rgba(99, 102, 241, 0.3);
        }

        .tech-card:nth-child(2):hover {
            border-color: rgba(245, 158, 11, 0.3);
        }

        .tech-card:nth-child(3):hover {
            border-color: rgba(236, 72, 153, 0.3);
        }

        .tech-card:nth-child(4):hover {
            border-color: rgba(16, 185, 129, 0.3);
        }

        .tech-card h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.1rem;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }

        .tech-desc {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
        }

        /* ---- 工作流步骤 ---- */
        .flow-steps {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-md);
            justify-content: center;
            margin-bottom: var(--space-lg);
        }

        .flow-step {
            flex: 1;
            min-width: 160px;
            max-width: 220px;
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            padding: var(--space-lg) var(--space-md);
            text-align: center;
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
            position: relative;
        }

        .flow-step:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }

        .flow-step:not(:last-child)::after {
            content: '→';
            position: absolute;
            right: -18px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 1.2rem;
            color: var(--primary);
            font-weight: bold;
        }

        .flow-num {
            display: inline-block;
            width: 28px;
            height: 28px;
            line-height: 28px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            color: #fff;
            font-size: 0.8rem;
            font-weight: 600;
            margin-bottom: var(--space-sm);
        }

        .flow-step h4 {
            font-size: 0.9rem;
            color: var(--text-primary);
            margin-bottom: var(--space-xs);
        }

        .flow-step p {
            font-size: 0.75rem;
            color: var(--text-secondary);
            line-height: 1.5;
        }

        /* ---- 名词定义区块 ---- */
        .term-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: var(--space-md);
            margin-bottom: var(--space-lg);
        }

        .term-item {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            padding: var(--space-md) var(--space-lg);
            transition: all var(--transition-base);
            box-shadow: var(--shadow-sm);
        }

        .term-item:hover {
            border-color: var(--border-accent);
            transform: translateX(4px);
            box-shadow: var(--shadow-hover);
        }

        .term-word {
            font-weight: 600;
            color: var(--primary-dark);
            font-size: 0.9rem;
        }

        .term-def {
            color: var(--text-secondary);
            font-size: 0.8rem;
            margin-top: 2px;
            line-height: 1.6;
        }

        /* ---- 应用场景卡片 ---- */
        .scene-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .scene-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            text-align: center;
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
        }

        .scene-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
            border-color: var(--border-accent);
        }

        .scene-icon {
            font-size: 2rem;
            margin-bottom: var(--space-sm);
        }

        .scene-card h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1rem;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }

        .scene-desc {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.6;
        }

        /* ---- 指标公式块 ---- */
        .metric-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: var(--space-md);
            margin-bottom: var(--space-lg);
        }

        .metric-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            padding: var(--space-md) var(--space-lg);
            transition: all var(--transition-base);
            box-shadow: var(--shadow-sm);
        }

        .metric-card:hover {
            border-color: var(--border-accent);
            box-shadow: var(--shadow-hover);
        }

        .metric-name {
            font-weight: 600;
            color: var(--text-primary);
            font-size: 0.9rem;
            display: flex;
            align-items: center;
            gap: var(--space-xs);
        }

        .metric-name .tag {
            font-size: 0.6rem;
            padding: 2px 8px;
            border-radius: var(--radius-sm);
            font-weight: 500;
            font-family: 'Noto Sans SC', sans-serif;
        }

        .metric-name .tag.reg {
            background: #ECFDF5;
            color: #047857;
            border: 1px solid #A7F3D0;
        }

        .metric-name .tag.cls {
            background: #EFF6FF;
            color: #1D4ED8;
            border: 1px solid #BFDBFE;
        }

        .metric-formula {
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.85rem;
            color: var(--primary);
            padding: var(--space-xs) var(--space-sm);
            background: hsl(var(--primary-hue) 60% 96%);
            border-radius: var(--radius-sm);
            margin: var(--space-xs) 0;
            display: inline-block;
            max-width: 100%;
            overflow-x: auto;
            overscroll-behavior-inline: contain;
        }

        .metric-desc {
            color: var(--text-secondary);
            font-size: 0.8rem;
            line-height: 1.6;
            margin-top: 4px;
        }

        /* ---- 算法分类大卡片 ---- */
        .algo-section-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            margin-bottom: var(--space-md);
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
        }

        .algo-section-card:hover {
            border-color: var(--border-accent);
            box-shadow: var(--shadow-hover);
        }

        .algo-section-card h4 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.05rem;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
            display: flex;
            align-items: center;
            gap: var(--space-sm);
        }

        .algo-section-card p {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
        }

        /* ---- 两栏布局 ---- */
        .two-col {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        @media (max-width: 768px) {
            .two-col {
                grid-template-columns: 1fr;
            }

            .flow-step:not(:last-child)::after {
                display: none;
            }
        }

        /* ---- 子主题列表 ---- */
        .topic-list {
            list-style: none;
            padding: 0;
        }

        .topic-list li {
            padding: var(--space-sm) var(--space-md);
            margin-bottom: var(--space-xs);
            background: var(--bg-elevated);
            border-radius: var(--radius-sm);
            border-left: 3px solid var(--accent);
            color: var(--text-secondary);
            font-size: 0.85rem;
            transition: all var(--transition-base);
        }

        .topic-list li:hover {
            border-left-color: var(--primary);
            transform: translateX(4px);
        }

        .topic-list li strong {
            color: var(--text-primary);
        }

        /* ---- 评估方法卡片 ---- */
        .eval-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .eval-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
            border-top: 3px solid var(--primary);
        }

        .eval-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
        }

        .eval-card:nth-child(1) {
            border-top-color: #6366F1;
        }

        .eval-card:nth-child(2) {
            border-top-color: #F59E0B;
        }

        .eval-card:nth-child(3) {
            border-top-color: #10B981;
        }

        .eval-card h4 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.05rem;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }

        .eval-card p {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
        }

        /* ---- 可视化卡片 (Canvas) ---- */
        .viz-card {
            background: var(--bg-elevated);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            margin: var(--space-lg) auto;
            max-width: 600px;
            box-shadow: var(--shadow-sm);
        }

        .viz-title {
            font-family: 'Noto Sans SC', sans-serif;
            font-size: 0.85rem;
            font-weight: 500;
            color: var(--text-secondary);
            text-align: center;
            margin-bottom: var(--space-sm);
        }

        .viz-container {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 100%;
        }

        .viz-container canvas {
            max-width: 100%;
            height: auto;
            border-radius: var(--radius-md);
            background: #FEFDFB;
            display: block;
        }

        .viz-controls {
            display: flex;
            justify-content: center;
            gap: var(--space-sm);
            margin-top: var(--space-sm);
            flex-wrap: wrap;
        }

        .viz-btn {
            font-family: 'Noto Sans SC', sans-serif;
            font-size: 0.75rem;
            padding: 5px 18px;
            border-radius: var(--radius-xl);
            border: 1px solid var(--border-subtle);
            background: var(--bg-card);
            color: var(--text-secondary);
            cursor: pointer;
            transition: all var(--transition-base);
            outline: none;
        }

        .viz-btn:hover {
            border-color: var(--primary);
            color: var(--primary);
            background: #FFF5F0;
        }

        .viz-btn.active {
            background: var(--primary);
            color: #fff;
            border-color: var(--primary);
        }

        .viz-slider-wrap {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            margin-top: var(--space-sm);
            justify-content: center;
        }

        .viz-slider-wrap label {
            font-family: 'Noto Sans SC', sans-serif;
            font-size: 0.7rem;
            color: var(--text-muted);
            min-width: 40px;
            text-align: center;
        }

        .viz-slider {
            -webkit-appearance: none;
            appearance: none;
            width: 200px;
            max-width: 70%;
            height: 4px;
            border-radius: 2px;
            background: var(--border-subtle);
            outline: none;
            cursor: pointer;
        }

        .viz-slider::-webkit-slider-thumb {
            -webkit-appearance: none;
            width: 16px;
            height: 16px;
            border-radius: 50%;
            background: var(--primary);
            cursor: pointer;
            border: 2px solid #fff;
            box-shadow: 0 1px 4px rgba(0,0,0,0.15);
        }

        .viz-slider::-moz-range-thumb {
            width: 16px;
            height: 16px;
            border-radius: 50%;
            background: var(--primary);
            cursor: pointer;
            border: 2px solid #fff;
            box-shadow: 0 1px 4px rgba(0,0,0,0.15);
        }

        .viz-label {
            font-family: 'Noto Sans SC', sans-serif;
            font-size: 0.7rem;
            color: var(--text-muted);
            text-align: center;
            margin-top: var(--space-xs);
        }

        /* ---- 发展历程引言 ---- */
        .history-intro {
            margin-bottom: var(--space-md);
            padding-left: var(--space-md);
            border-left: 3px solid var(--primary);
        }

        .history-intro p {
            color: var(--text-secondary);
            font-size: 0.9rem;
            line-height: 1.8;
            margin-bottom: var(--space-sm);
        }

        .history-intro p:last-child {
            margin-bottom: 0;
        }

        .history-intro strong {
            color: var(--primary);
        }

        /* ---- 发展历程时间线 ---- */
        .history-timeline {
            margin-bottom: var(--space-xl);
            position: relative;
        }

        .history-timeline::before {
            content: '';
            position: absolute;
            left: 120px;
            top: 0;
            bottom: 0;
            width: 2px;
            background: linear-gradient(180deg, var(--primary), var(--accent));
        }

        .timeline-item {
            display: flex;
            gap: var(--space-lg);
            margin-bottom: var(--space-md);
            position: relative;
        }

        .timeline-item::before {
            content: '';
            position: absolute;
            left: 116px;
            top: 12px;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: var(--primary);
            border: 2px solid #fff;
            box-shadow: 0 0 0 2px var(--primary);
        }

        .timeline-period {
            flex-shrink: 0;
            width: 100px;
            font-family: 'Noto Serif SC', serif;
            font-size: 0.8rem;
            font-weight: 600;
            color: var(--primary);
            text-align: right;
            padding-top: 4px;
        }

        .timeline-content {
            flex: 1;
            background: var(--bg-elevated);
            border-radius: var(--radius-md);
            padding: var(--space-sm) var(--space-md);
            border: 1px solid var(--border-subtle);
        }

        .timeline-content p {
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.7;
            margin: 0;
        }

        /* ---- 机器学习流派卡片 ---- */
        .school-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: var(--space-md);
            margin-bottom: var(--space-xl);
        }

        .school-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            overflow: hidden;
            transition: all var(--transition-slow);
        }

        .school-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }

        .school-header {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            padding: var(--space-md);
            background: linear-gradient(135deg, var(--bg-elevated), var(--bg-card));
            border-bottom: 1px solid var(--border-subtle);
        }

        .school-icon {
            font-size: 1.5rem;
        }

        .school-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 0.95rem;
            font-weight: 600;
            color: var(--text-primary);
        }

        .school-content {
            padding: var(--space-md);
        }

        .school-item {
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.7;
            padding: var(--space-xs) 0;
            padding-left: var(--space-sm);
            border-left: 2px solid var(--border-subtle);
            margin-bottom: var(--space-xs);
        }

        .school-item strong {
            color: var(--primary);
        }

        /* ---- Mitchell T·E·P 定义卡片 ---- */
        .mitchell-card {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 50%, #a855f7 100%);
            border-radius: var(--radius-lg);
            padding: var(--space-xl) var(--space-xxl, 3rem);
            margin: var(--space-xl) auto;
            color: #fff;
            box-shadow: 0 12px 40px rgba(99, 102, 241, 0.25), 0 4px 12px rgba(124, 58, 237, 0.15);
            position: relative;
            overflow: hidden;
        }

        .mitchell-card::before {
            content: '';
            position: absolute;
            top: -30%;
            right: -20%;
            width: 80%;
            height: 160%;
            background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%);
            pointer-events: none;
        }

        .mitchell-card::after {
            content: '';
            position: absolute;
            bottom: -20%;
            left: -10%;
            width: 50%;
            height: 100%;
            background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 50%);
            pointer-events: none;
        }

        .mitchell-header {
            display: flex;
            align-items: center;
            gap: var(--space-md);
            margin-bottom: var(--space-lg);
            position: relative;
        }

        .mitchell-avatar {
            width: 56px;
            height: 56px;
            border-radius: 50%;
            background: rgba(255,255,255,0.18);
            backdrop-filter: blur(6px);
            border: 2.5px solid rgba(255,255,255,0.35);
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: 'Noto Serif SC', serif;
            font-size: 1.5rem;
            font-weight: 700;
            color: #fff;
            box-shadow: 0 2px 8px rgba(0,0,0,0.1);
        }

        .mitchell-info {
            display: flex;
            flex-direction: column;
        }

        .mitchell-name {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.3rem;
            font-weight: 700;
            letter-spacing: 0.03em;
        }

        .mitchell-year {
            font-size: 0.82rem;
            opacity: 0.8;
            letter-spacing: 0.08em;
            margin-top: 2px;
        }

        .mitchell-quote {
            background: rgba(255,255,255,0.1);
            backdrop-filter: blur(10px);
            border-radius: var(--radius-md);
            padding: var(--space-lg) var(--space-xl);
            margin-bottom: var(--space-lg);
            border-left: 4px solid rgba(255,255,255,0.5);
            position: relative;
        }

        .mitchell-quote p {
            font-size: 1rem;
            line-height: 1.9;
            color: #fff;
            margin: 0;
            padding: 0;
        }

        .mitchell-quote strong {
            color: #fbbf24;
            font-weight: 700;
        }

        .mitchell-source {
            font-size: 0.82rem;
            opacity: 0.85;
            text-align: right;
            font-style: italic;
            position: relative;
        }

        /* ---- T·E·P 三要素卡片 ---- */
        .tep-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-lg);
            margin: var(--space-xl) 0;
        }

        .tep-card {
            background: var(--bg-card);
            border-radius: var(--radius-lg);
            padding: var(--space-xl) var(--space-lg);
            text-align: center;
            border: 1px solid var(--border-subtle);
            transition: all var(--transition-slow);
            position: relative;
            overflow: hidden;
            box-shadow: var(--shadow-sm);
        }

        .tep-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 5px;
        }

        .tep-t::before {
            background: linear-gradient(90deg, #EC4899, #F472B6);
        }

        .tep-e::before {
            background: linear-gradient(90deg, #3B82F6, #60A5FA);
        }

        .tep-p::before {
            background: linear-gradient(90deg, #10B981, #34D399);
        }

        .tep-t {
            border-color: rgba(236, 72, 153, 0.12);
        }

        .tep-e {
            border-color: rgba(59, 130, 246, 0.12);
        }

        .tep-p {
            border-color: rgba(16, 185, 129, 0.12);
        }

        .tep-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 12px 28px rgba(0,0,0,0.08);
        }

        .tep-t:hover {
            border-color: rgba(236, 72, 153, 0.3);
            box-shadow: 0 12px 28px rgba(236, 72, 153, 0.12);
        }

        .tep-e:hover {
            border-color: rgba(59, 130, 246, 0.3);
            box-shadow: 0 12px 28px rgba(59, 130, 246, 0.12);
        }

        .tep-p:hover {
            border-color: rgba(16, 185, 129, 0.3);
            box-shadow: 0 12px 28px rgba(16, 185, 129, 0.12);
        }

        .tep-icon {
            font-size: 2.4rem;
            margin-bottom: var(--space-md);
        }

        .tep-label {
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            margin-bottom: var(--space-xs);
        }

        .tep-t .tep-label {
            color: #EC4899;
        }

        .tep-e .tep-label {
            color: #3B82F6;
        }

        .tep-p .tep-label {
            color: #10B981;
        }

        .tep-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.15rem;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }

        .tep-desc {
            font-size: 0.85rem;
            color: var(--text-secondary);
            line-height: 1.7;
        }

        /* ---- 适定性标题区 ---- */
        .wellposed-header {
            text-align: center;
            margin: var(--space-xl) 0 var(--space-lg);
        }

        .wellposed-header h4 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.25rem;
            color: var(--primary-dark);
            margin-bottom: var(--space-sm);
            display: flex;
            align-items: center;
            justify-content: center;
            gap: var(--space-sm);
        }

        .wellposed-header h4::before,
        .wellposed-header h4::after {
            content: '';
            width: 48px;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--primary), transparent);
        }

        .wellposed-header p {
            color: var(--text-secondary);
            font-size: 0.92rem;
            line-height: 1.85;
            max-width: 680px;
            margin: 0 auto;
        }

        /* ---- 适定 vs 不适定 对比卡片 ---- */
        .wellposed-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-xl);
            margin-bottom: var(--space-xl);
        }

        .wellposed-card {
            background: var(--bg-card);
            border-radius: var(--radius-lg);
            padding: var(--space-xl);
            border: 1px solid var(--border-subtle);
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
        }

        .wellposed-card:hover {
            box-shadow: 0 8px 24px rgba(0,0,0,0.06);
            transform: translateY(-3px);
        }

        .wellposed-good {
            border-top: 5px solid #10B981;
        }

        .wellposed-good:hover {
            border-color: rgba(16, 185, 129, 0.3);
        }

        .wellposed-bad {
            border-top: 5px solid #EF4444;
        }

        .wellposed-bad:hover {
            border-color: rgba(239, 68, 68, 0.3);
        }

        .wellposed-badge {
            display: inline-block;
            font-size: 0.88rem;
            font-weight: 600;
            padding: 8px 20px;
            border-radius: var(--radius-xl);
            margin-bottom: var(--space-md);
        }

        .wellposed-good .wellposed-badge {
            background: #ECFDF5;
            color: #047857;
            border: 1px solid #A7F3D0;
        }

        .wellposed-bad .wellposed-badge {
            background: #FEF2F2;
            color: #B91C1C;
            border: 1px solid #FECACA;
        }

        .wellposed-example {
            margin-bottom: var(--space-lg);
        }

        .wellposed-example-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 1rem;
            font-weight: 600;
            color: var(--text-primary);
            display: block;
            margin-bottom: var(--space-md);
        }

        .wellposed-views {
            display: flex;
            flex-direction: column;
            gap: var(--space-sm);
        }

        .wellposed-view {
            background: var(--bg-elevated);
            border-radius: var(--radius-md);
            padding: var(--space-sm) var(--space-lg);
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: var(--space-xs) var(--space-md);
        }

        .view-label {
            font-size: 0.78rem;
            font-weight: 700;
            color: var(--primary);
            background: #EEF2FF;
            padding: 3px 12px;
            border-radius: var(--radius-sm);
            white-space: nowrap;
        }

        .view-item {
            font-size: 0.85rem;
            color: var(--text-secondary);
            line-height: 1.5;
        }

        .view-item strong {
            color: var(--primary);
            font-family: 'JetBrains Mono', monospace;
        }

        .view-arrow {
            font-size: 0.78rem;
            color: #10B981;
            font-weight: 500;
            margin-left: auto;
        }

        .wellposed-traps {
            display: flex;
            flex-direction: column;
            gap: var(--space-sm);
            margin-bottom: var(--space-md);
        }

        .wellposed-trap {
            background: var(--bg-elevated);
            border-radius: var(--radius-md);
            padding: var(--space-md);
            display: flex;
            flex-direction: column;
            gap: 4px;
            border-left: 3px solid #FCA5A5;
            transition: all var(--transition-base);
        }

        .wellposed-trap:hover {
            border-left-color: #EF4444;
            transform: translateX(4px);
        }

        .trap-quote {
            font-family: 'Noto Serif SC', serif;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--text-primary);
        }

        .trap-reason {
            font-size: 0.78rem;
            color: #B91C1C;
        }

        .wellposed-note {
            font-size: 0.82rem;
            color: var(--text-muted);
            text-align: center;
            padding: var(--space-sm) var(--space-md);
            background: var(--bg-elevated);
            border-radius: var(--radius-sm);
            line-height: 1.6;
        }

        /* ---- 更多对比示例 ---- */
        .wellposed-more {
            margin-top: var(--space-lg);
        }

        .wellposed-more-label {
            font-family: 'Noto Serif SC', serif;
            font-size: 0.9rem;
            font-weight: 600;
            color: var(--text-primary);
            text-align: center;
            margin-bottom: var(--space-md);
        }

        .wellposed-compare-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-md);
        }

        .wellposed-compare-item {
            background: var(--bg-elevated);
            border-radius: var(--radius-md);
            padding: var(--space-md);
            border: 1px solid var(--border-subtle);
            transition: all var(--transition-base);
        }

        .wellposed-compare-item:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-sm);
        }

        .wellposed-compare-good {
            border-left: 3px solid #10B981;
        }

        .wellposed-compare-bad {
            border-left: 3px solid #EF4444;
        }

        .compare-label {
            font-size: 0.8rem;
            font-weight: 600;
            display: block;
            margin-bottom: var(--space-sm);
        }

        .wellposed-compare-good .compare-label {
            color: #10B981;
        }

        .wellposed-compare-bad .compare-label {
            color: #EF4444;
        }

        .compare-content {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .compare-task {
            font-size: 0.82rem;
            color: var(--text-primary);
            font-weight: 500;
        }

        .compare-detail {
            font-size: 0.78rem;
            color: var(--text-secondary);
            padding-left: var(--space-sm);
        }

        /* ---- 核心洞见框 ---- */
        .insight-box {
            background: linear-gradient(135deg, #f5f7fa 0%, #e4e8ec 100%);
            border-radius: var(--radius-lg);
            padding: var(--space-xl);
            margin-bottom: var(--space-xl);
            display: flex;
            align-items: flex-start;
            gap: var(--space-lg);
            border: 1px solid var(--border-subtle);
            position: relative;
            overflow: hidden;
        }

        .insight-box::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 4px;
            height: 100%;
            background: linear-gradient(180deg, #6366F1, #8B5CF6, #EC4899);
        }

        .insight-icon {
            font-size: 2.5rem;
            flex-shrink: 0;
            line-height: 1;
        }

        .insight-content {
            flex: 1;
        }

        .insight-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.15rem;
            font-weight: 700;
            color: var(--primary-dark);
            margin-bottom: var(--space-sm);
        }

        .insight-content p {
            font-size: 0.9rem;
            line-height: 1.8;
            color: var(--text-secondary);
            margin: 0;
        }

        .insight-content strong {
            color: var(--primary);
        }

        @media (max-width: 768px) {
            .mitchell-card {
                padding: var(--space-lg);
            }

            .mitchell-quote {
                padding: var(--space-md);
            }

            .mitchell-quote p {
                font-size: 0.88rem;
            }

            .tep-grid {
                grid-template-columns: 1fr;
                gap: var(--space-md);
            }

            .wellposed-grid {
                grid-template-columns: 1fr;
            }

            .wellposed-compare-grid {
                grid-template-columns: 1fr;
            }

            .wellposed-header h4::before,
            .wellposed-header h4::after {
                display: none;
            }

            .insight-box {
                flex-direction: column;
                align-items: center;
                text-align: center;
                padding: var(--space-lg);
            }

            .view-arrow {
                margin-left: 0;
                width: 100%;
                text-align: right;
            }
        }
        /* ---- 术语演示表格 ---- */
        .term-demo-box {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            margin-bottom: var(--space-xl);
            box-shadow: var(--shadow-sm);
            overflow-x: auto;
            overscroll-behavior-inline: contain;
        }

        .term-demo-title {
            font-family: 'Noto Serif SC', serif;
            font-size: 1rem;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: var(--space-md);
            text-align: center;
        }

        .term-demo-table {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0;
            border-radius: var(--radius-md);
            overflow: hidden;
            margin-bottom: var(--space-lg);
            font-size: 0.88rem;
        }

        .term-demo-table thead th {
            background: var(--bg-elevated);
            color: var(--text-primary);
            font-weight: 600;
            padding: 10px 14px;
            text-align: center;
            border-bottom: 2px solid var(--border-subtle);
            font-size: 0.82rem;
            white-space: nowrap;
        }

        .term-demo-table thead th.feat-col {
            background: #EEF2FF;
            border-bottom-color: #C7D2FE;
            color: #4338CA;
        }

        .term-demo-table thead th.label-col {
            background: #FDF2F8;
            border-bottom-color: #FBCFE8;
            color: #BE185D;
            border-left: 2px solid #FBCFE8;
        }

        .term-demo-table tbody td {
            padding: 10px 14px;
            text-align: center;
            border-bottom: 1px solid var(--border-subtle);
            color: var(--text-secondary);
            transition: background 0.2s;
        }

        .term-demo-table tbody tr:last-child td {
            border-bottom: none;
        }

        .term-demo-table tbody td.label-col {
            background: rgba(236, 72, 153, 0.03);
            font-weight: 600;
            color: var(--text-primary);
            border-left: 2px solid rgba(236, 72, 153, 0.12);
        }

        .term-demo-table tbody tr:hover td {
            background: rgba(99, 102, 241, 0.04);
        }

        .term-demo-table tbody tr.sample-row td {
            background: rgba(99, 102, 241, 0.06);
        }

        .term-demo-table tbody tr.sample-row td:first-child {
            border-left: 3px solid #6366F1;
        }

        .term-demo-table tbody tr.sample-row .sample-cell {
            background: rgba(99, 102, 241, 0.12);
            font-weight: 600;
            color: var(--text-primary);
        }

        .term-demo-table tbody tr.sample-row td.label-col.sample-cell {
            background: rgba(236, 72, 153, 0.08);
        }

        /* ---- 术语标注 ---- */
        .term-anno-list {
            display: flex;
            flex-direction: column;
            gap: var(--space-xs);
        }

        .term-anno-item {
            display: flex;
            align-items: flex-start;
            gap: var(--space-sm);
            padding: 8px 14px;
            border-radius: var(--radius-md);
            background: var(--bg-elevated);
            transition: all 0.2s;
        }

        .term-anno-item:hover {
            transform: translateX(4px);
        }

        .anno-badge {
            flex-shrink: 0;
            font-size: 0.72rem;
            font-weight: 700;
            padding: 3px 10px;
            border-radius: var(--radius-xl);
            white-space: nowrap;
            letter-spacing: 0.02em;
        }

        .anno-badge.sample {
            background: #EEF2FF;
            color: #4F46E5;
            border: 1px solid #C7D2FE;
        }

        .anno-badge.feature {
            background: #ECFDF5;
            color: #047857;
            border: 1px solid #A7F3D0;
        }

        .anno-badge.label-badge {
            background: #FDF2F8;
            color: #BE185D;
            border: 1px solid #FBCFE8;
        }

        .anno-badge.vector {
            background: #FFFBEB;
            color: #92400E;
            border: 1px solid #FDE68A;
        }

        .anno-badge.space {
            background: #EFF6FF;
            color: #1D4ED8;
            border: 1px solid #BFDBFE;
        }

        .anno-badge.task {
            background: #F5F3FF;
            color: #6D28D9;
            border: 1px solid #DDD6FE;
        }

        .anno-text {
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.6;
        }

        .anno-text strong {
            color: var(--text-primary);
        }

        .anno-text code {
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.78rem;
            background: #F3F4F6;
            padding: 1px 6px;
            border-radius: 3px;
            color: var(--primary);
        }

        /* ---- 可视化行 ---- */
        .term-viz-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .term-viz-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            text-align: center;
            box-shadow: var(--shadow-sm);
            transition: all var(--transition-slow);
        }

        .term-viz-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow-hover);
        }

        .term-viz-card svg {
            max-width: 100%;
            height: auto;
            display: block;
            margin: 0 auto var(--space-sm);
        }

        .term-viz-label {
            font-size: 0.85rem;
            color: var(--text-secondary);
            line-height: 1.6;
        }

        .term-viz-label strong {
            color: var(--primary);
        }

        /* ---- 术语紧凑卡片 ---- */
        .term-compact-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
            gap: var(--space-md);
            margin-bottom: var(--space-lg);
        }

        .term-compact-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            padding: var(--space-md) var(--space-lg);
            transition: all var(--transition-base);
            box-shadow: var(--shadow-sm);
        }

        .term-compact-card:hover {
            border-color: var(--border-accent);
            transform: translateY(-2px);
            box-shadow: var(--shadow-hover);
        }

        .term-compact-title {
            font-weight: 600;
            color: var(--primary-dark);
            font-size: 0.9rem;
            margin-bottom: 4px;
        }

        .term-compact-desc {
            color: var(--text-secondary);
            font-size: 0.8rem;
            line-height: 1.6;
        }

        .term-compact-desc strong {
            color: var(--text-primary);
        }

        @media (max-width: 768px) {
            .term-viz-row {
                grid-template-columns: 1fr;
            }
        }

        /* ---- 公式块（参考 part4.css） ---- */
        .formula-box {
            background: hsl(var(--primary-hue) 40% 97%);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            padding: var(--space-sm) var(--space-md);
            margin-bottom: var(--space-md);
            font-size: 0.95rem;
            line-height: 2;
            overflow-x: auto;
            text-align: center;
        }
        .formula-box mjx-container {
            display: inline-block;
            vertical-align: middle;
        }
        .formula-box mjx-container[display="true"] {
            display: block;
            margin: var(--space-xs) 0;
        }

        .formula-desc {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
            margin-top: var(--space-xs);
            font-family: 'Noto Sans SC', sans-serif;
        }

        /* ---- 函数图像卡片（参考 part4.css） ---- */
        .act-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            margin-bottom: var(--space-lg);
            position: relative;
            overflow: hidden;
            transition: all var(--transition-slow);
        }
        .act-card:hover {
            border-color: var(--border-accent);
            box-shadow: var(--shadow-hover);
        }
        .act-card h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.1rem;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
        }
        .act-card p {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
            margin-bottom: var(--space-sm);
        }
        .act-graph {
            background: linear-gradient(135deg, #FAFBFC, #F8FAFC);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            padding: var(--space-sm);
            margin-bottom: var(--space-sm);
        }
        .act-graph svg {
            display: block;
            width: 100%;
            height: auto;
        }
        .act-section-title {
            font-family: 'Noto Sans SC', sans-serif;
            font-size: 0.72rem;
            font-weight: 600;
            color: var(--text-muted);
            text-transform: uppercase;
            letter-spacing: 0.05em;
            margin-top: var(--space-sm);
            margin-bottom: 2px;
        }
        .act-section-text {
            font-size: 0.82rem;
            color: var(--text-secondary);
            line-height: 1.6;
            margin-bottom: var(--space-xs);
        }

        /* ---- 指标公式支持 MathJax ---- */
        .metric-formula mjx-container {
            display: inline-block;
            vertical-align: middle;
            font-size: 0.85rem;
        }

        /* ==========================================
           过拟合与欠拟合 — 学习曲线图 + 概念卡片
           ========================================== */

        /* ---- 学习曲线图容器 ---- */
        .lc-wrap {
            background: linear-gradient(145deg, var(--bg-card) 0%, var(--bg-elevated) 100%);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg) var(--space-lg) var(--space-sm);
            margin: var(--space-lg) 0;
            box-shadow: var(--shadow-md);
        }

        .lc-head {
            display: flex;
            align-items: baseline;
            gap: var(--space-sm);
            margin-bottom: var(--space-sm);
            flex-wrap: wrap;
        }

        .lc-tag {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.02rem;
            font-weight: 700;
            color: var(--primary);
        }

        .lc-sub {
            font-size: 0.82rem;
            color: var(--text-muted);
        }

        .lc-plot {
            width: 100%;
            height: 340px;
        }

        .deferred-plot {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 220px;
            border-radius: var(--radius-md);
            background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(236, 72, 153, 0.04));
        }

        .plot-placeholder {
            padding: var(--space-sm) var(--space-md);
            color: var(--text-muted);
            font-size: 0.85rem;
            text-align: center;
        }

        .deferred-plot.plot-load-error .plot-placeholder {
            color: #C2410C;
        }

        .lc-legend {
            display: flex;
            gap: var(--space-lg);
            flex-wrap: wrap;
            padding-top: var(--space-xs);
            margin-top: var(--space-xs);
            border-top: 1px dashed var(--border-subtle);
            font-size: 0.82rem;
            color: var(--text-secondary);
        }

        .lc-legend span {
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .lc-dot {
            display: inline-block;
            width: 16px;
            height: 4px;
            border-radius: 2px;
        }

        .lc-dot-train {
            background: #6366F1;
        }

        .lc-dot-val {
            background: #E5613F;
        }

        /* ---- 过拟合 / 欠拟合 概念卡片 ---- */
        .fit-cards {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
            margin: var(--space-lg) 0;
        }

        .fit-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            box-shadow: var(--shadow-sm);
            transition: all var(--transition-slow);
            position: relative;
            overflow: hidden;
        }

        .fit-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 4px;
        }

        .fit-underfit::before {
            background: linear-gradient(90deg, #F59E0B, #FBBF24);
        }

        .fit-overfit::before {
            background: linear-gradient(90deg, #E5613F, #EC4899);
        }

        .fit-underfit:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
            border-color: rgba(245, 158, 11, 0.3);
        }

        .fit-overfit:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
            border-color: rgba(229, 97, 63, 0.3);
        }

        .fit-card-top {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            margin-bottom: var(--space-sm);
        }

        .fit-emoji {
            font-size: 1.5rem;
            line-height: 1;
        }

        .fit-card h4 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.1rem;
            margin: 0;
        }

        .fit-underfit .fit-card h4 {
            color: #B45309;
        }

        .fit-overfit .fit-card h4 {
            color: #C2410C;
        }

        .fit-card > p {
            color: var(--text-secondary);
            font-size: 0.88rem;
            line-height: 1.7;
            margin-bottom: var(--space-sm);
        }

        .fit-feat {
            list-style: none;
            padding: 0;
            margin: 0 0 var(--space-md);
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .fit-feat li {
            font-size: 0.82rem;
            color: var(--text-secondary);
            padding-left: 1.1rem;
            position: relative;
        }

        .fit-feat li::before {
            content: '▸';
            position: absolute;
            left: 0;
            color: var(--primary);
        }

        .fit-cure {
            font-size: 0.78rem;
            color: var(--text-primary);
            background: var(--bg-elevated);
            border-radius: var(--radius-sm);
            padding: var(--space-xs) var(--space-sm);
            line-height: 1.6;
        }

        @media (max-width: 768px) {
            .fit-cards {
                grid-template-columns: 1fr;
            }

            .lc-plot {
                height: 280px;
            }
        }

        /* ==========================================
           如何选择合适的学习范式 — 决策引导卡片
           ========================================== */

        .decision-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .decision-card {
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            padding: 0;
            overflow: hidden;
            transition: all var(--transition-slow);
            box-shadow: var(--shadow-sm);
            position: relative;
        }

        .decision-card:hover {
            transform: translateY(-5px);
            box-shadow: var(--shadow-hover);
        }

        .decision-question {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            padding: var(--space-md) var(--space-lg);
            font-family: 'Noto Serif SC', serif;
            font-size: 1.05rem;
            font-weight: 600;
            color: #fff;
            position: relative;
        }

        .decision-question-icon {
            font-size: 1.4rem;
            line-height: 1;
            flex-shrink: 0;
        }

        .decision-card:nth-child(1) .decision-question {
            background: linear-gradient(135deg, #6366F1, #818CF8);
        }
        .decision-card:nth-child(2) .decision-question {
            background: linear-gradient(135deg, #F59E0B, #FBBF24);
        }
        .decision-card:nth-child(3) .decision-question {
            background: linear-gradient(135deg, #10B981, #34D399);
        }
        .decision-card:nth-child(4) .decision-question {
            background: linear-gradient(135deg, #EC4899, #F472B6);
        }

        .decision-body {
            padding: var(--space-lg);
        }

        .decision-arrow {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            margin-bottom: var(--space-md);
            padding: var(--space-sm) var(--space-md);
            background: var(--bg-elevated);
            border-radius: var(--radius-md);
        }

        .decision-arrow-icon {
            font-size: 1.2rem;
            line-height: 1;
            flex-shrink: 0;
        }

        .decision-arrow-text {
            font-family: 'Noto Serif SC', serif;
            font-size: 0.95rem;
            font-weight: 700;
        }

        .decision-card:nth-child(1) .decision-arrow-text {
            color: #4F46E5;
        }
        .decision-card:nth-child(2) .decision-arrow-text {
            color: #B45309;
        }
        .decision-card:nth-child(3) .decision-arrow-text {
            color: #047857;
        }
        .decision-card:nth-child(4) .decision-arrow-text {
            color: #BE185D;
        }

        .decision-desc {
            color: var(--text-secondary);
            font-size: 0.85rem;
            line-height: 1.65;
            margin-bottom: var(--space-md);
        }

        .decision-tags {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-xs);
        }

        .decision-tag {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            font-size: 0.72rem;
            font-weight: 500;
            padding: 4px 12px;
            border-radius: var(--radius-xl);
            background: var(--bg-elevated);
            border: 1px solid var(--border-subtle);
            color: var(--text-secondary);
            transition: all var(--transition-base);
        }

        .decision-tag:hover {
            transform: translateY(-1px);
        }

        .decision-card:nth-child(1) .decision-tag {
            background: #EEF2FF;
            border-color: #C7D2FE;
            color: #4F46E5;
        }
        .decision-card:nth-child(2) .decision-tag {
            background: #FFFBEB;
            border-color: #FDE68A;
            color: #B45309;
        }
        .decision-card:nth-child(3) .decision-tag {
            background: #ECFDF5;
            border-color: #A7F3D0;
            color: #047857;
        }
        .decision-card:nth-child(4) .decision-tag {
            background: #FDF2F8;
            border-color: #FBCFE8;
            color: #BE185D;
        }

        .decision-tag-icon {
            font-size: 0.8rem;
            line-height: 1;
        }

        @media (max-width: 768px) {
            .decision-grid {
                grid-template-columns: 1fr;
            }
        }
    

        /* ==========================================
           从线性回归到 Adam — 训练原理章节
           ========================================== */

        .learning-core-section {
            --learning-red: #E5613F;
            --learning-blue: #4F7CAC;
            --learning-green: #17866B;
            --learning-amber: #D99124;
            --learning-violet: #7656A8;
        }

        .learning-lead,
        .learning-copy {
            color: var(--text-secondary);
            font-size: 0.95rem;
            line-height: 1.9;
            margin-bottom: var(--space-lg);
        }

        .learning-lead strong,
        .learning-copy strong {
            color: var(--text-primary);
        }

        .learning-loop-banner {
            display: grid;
            grid-template-columns: repeat(7, auto);
            align-items: center;
            justify-content: center;
            gap: var(--space-sm);
            padding: var(--space-lg);
            margin-bottom: var(--space-xl);
            background:
                radial-gradient(circle at 8% 12%, rgba(229, 97, 63, 0.12), transparent 27%),
                linear-gradient(135deg, #FFFDF9, #F7F3EE);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-xl);
            box-shadow: var(--shadow-sm);
        }

        .learning-loop-node {
            min-width: 116px;
            padding: var(--space-md);
            background: rgba(255, 255, 255, 0.82);
            border: 1px solid rgba(219, 210, 201, 0.9);
            border-radius: var(--radius-lg);
            text-align: center;
        }

        .learning-loop-node strong,
        .learning-loop-node small {
            display: block;
        }

        .learning-loop-node strong {
            margin-top: 6px;
            color: var(--text-primary);
            font-size: 0.88rem;
        }

        .learning-loop-node small {
            margin-top: 3px;
            color: var(--text-tertiary);
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.68rem;
        }

        .loop-icon {
            display: inline-grid;
            width: 30px;
            height: 30px;
            place-items: center;
            border-radius: 50%;
            background: rgba(229, 97, 63, 0.12);
            color: var(--learning-red);
            font-weight: 700;
        }

        .learning-loop-arrow {
            color: var(--learning-red);
            font-size: 1.25rem;
            font-weight: 700;
        }

        .learning-loop-return {
            grid-column: 1 / -1;
            justify-self: center;
            margin-top: var(--space-xs);
            color: var(--learning-green);
            font-size: 0.8rem;
            font-weight: 600;
        }

        .learning-formula {
            padding: var(--space-md) var(--space-lg);
            margin-bottom: var(--space-lg);
            background: linear-gradient(135deg, #FFF9F5, #F8F5F1);
            border-color: rgba(229, 97, 63, 0.2);
        }

        .parameter-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-md);
            margin-bottom: var(--space-xl);
        }

        .parameter-card {
            display: flex;
            align-items: flex-start;
            gap: var(--space-md);
            padding: var(--space-lg);
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-sm);
        }

        .parameter-symbol {
            display: grid;
            flex: 0 0 50px;
            height: 50px;
            place-items: center;
            border-radius: 14px;
            background: rgba(79, 124, 172, 0.1);
            color: var(--learning-blue);
            font-family: 'JetBrains Mono', monospace;
            font-size: 1.05rem;
            font-weight: 700;
        }

        .parameter-card:nth-child(2) .parameter-symbol {
            background: rgba(23, 134, 107, 0.1);
            color: var(--learning-green);
        }

        .parameter-card:nth-child(3) .parameter-symbol {
            background: rgba(229, 97, 63, 0.1);
            color: var(--learning-red);
        }

        .parameter-card strong {
            color: var(--text-primary);
            font-size: 0.92rem;
        }

        .parameter-card p {
            margin: 5px 0 0;
            color: var(--text-secondary);
            font-size: 0.8rem;
            line-height: 1.65;
        }

        .regression-lab,
        .learning-rate-lab,
        .adam-card {
            margin-bottom: var(--space-xl);
            padding: var(--space-lg);
            background: linear-gradient(145deg, #FFFEFC, #F7F3EE);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-xl);
            box-shadow: var(--shadow-md);
        }

        .lab-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .lab-kicker {
            display: inline-block;
            margin-bottom: 5px;
            color: var(--learning-red);
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
        }

        .lab-header h4,
        .rate-lab-copy h4 {
            margin: 0;
            color: var(--text-primary);
            font-family: 'Noto Serif SC', serif;
            font-size: 1.08rem;
        }

        .loss-readout {
            flex: 0 0 auto;
            min-width: 116px;
            padding: 10px 14px;
            background: rgba(229, 97, 63, 0.08);
            border: 1px solid rgba(229, 97, 63, 0.16);
            border-radius: var(--radius-md);
            color: var(--text-secondary);
            font-size: 0.72rem;
            text-align: center;
        }

        .loss-readout strong {
            display: block;
            margin-top: 2px;
            color: var(--learning-red);
            font-family: 'JetBrains Mono', monospace;
            font-size: 1.18rem;
        }

        .regression-controls {
            display: grid;
            grid-template-columns: auto minmax(160px, 1fr) auto minmax(160px, 1fr);
            align-items: center;
            gap: var(--space-sm) var(--space-md);
            margin-bottom: var(--space-lg);
            padding: var(--space-md);
            background: rgba(255, 255, 255, 0.74);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
        }

        .regression-controls label {
            display: flex;
            gap: 8px;
            color: var(--text-secondary);
            font-size: 0.8rem;
            white-space: nowrap;
        }

        .regression-controls label strong {
            min-width: 34px;
            color: var(--learning-red);
            font-family: 'JetBrains Mono', monospace;
        }

        .regression-controls input[type="range"] {
            width: 100%;
            accent-color: var(--learning-red);
            cursor: pointer;
        }

        .regression-chart-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
        }

        .learning-chart-card {
            min-width: 0;
            margin: 0;
            padding: var(--space-md);
            background: rgba(255, 255, 255, 0.86);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
        }

        .learning-chart-card figcaption {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            gap: var(--space-sm);
            margin-bottom: var(--space-sm);
        }

        .learning-chart-card figcaption strong {
            color: var(--text-primary);
            font-size: 0.86rem;
        }

        .learning-chart-card figcaption span {
            color: var(--text-tertiary);
            font-size: 0.7rem;
            text-align: right;
        }

        .learning-chart-card canvas,
        .rate-chart-wrap canvas {
            display: block;
            width: 100%;
            height: 255px;
        }

        .loss-surface-card {
            background: linear-gradient(155deg, rgba(255, 255, 255, 0.96), rgba(247, 244, 239, 0.9));
        }

        .loss-surface-stage {
            overflow: hidden;
            background: #F9F8F5;
            border: 1px solid rgba(166, 155, 145, 0.22);
            border-radius: var(--radius-md);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
        }

        #loss-canvas {
            height: 285px;
            cursor: grab;
            touch-action: none;
            user-select: none;
        }

        #loss-canvas.is-rotating {
            cursor: grabbing;
        }

        #loss-canvas:focus-visible {
            outline: 3px solid rgba(79, 124, 172, 0.25);
            outline-offset: -3px;
        }

        .surface-control-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: var(--space-sm);
            min-height: 38px;
            padding: 6px 9px 6px 12px;
            background: rgba(255, 255, 255, 0.82);
            border-top: 1px solid rgba(166, 155, 145, 0.18);
            backdrop-filter: blur(8px);
        }

        .surface-drag-hint {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: var(--text-tertiary);
            font-size: 0.7rem;
            font-weight: 600;
            letter-spacing: 0.02em;
        }

        .surface-drag-hint i {
            display: inline-grid;
            width: 21px;
            height: 21px;
            place-items: center;
            background: rgba(79, 124, 172, 0.1);
            border-radius: 50%;
            color: var(--learning-blue);
            font-size: 0.88rem;
            font-style: normal;
        }

        #loss-canvas.is-rotating + .surface-control-bar .surface-drag-hint {
            color: var(--learning-blue);
        }

        #loss-canvas.is-rotating + .surface-control-bar .surface-drag-hint i {
            animation: loss-surface-orbit 0.8s linear infinite;
        }

        .surface-reset-button {
            padding: 5px 10px;
            background: rgba(255, 255, 255, 0.92);
            border: 1px solid rgba(166, 155, 145, 0.3);
            border-radius: 999px;
            color: var(--text-secondary);
            font-family: inherit;
            font-size: 0.68rem;
            font-weight: 600;
            cursor: pointer;
            transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
        }

        .surface-reset-button:hover {
            border-color: rgba(79, 124, 172, 0.52);
            color: var(--learning-blue);
            transform: translateY(-1px);
        }

        .surface-reset-button:focus-visible {
            outline: 3px solid rgba(79, 124, 172, 0.2);
            outline-offset: 2px;
        }

        @keyframes loss-surface-orbit {
            to {
                transform: rotate(360deg);
            }
        }

        .lab-hint {
            margin: var(--space-md) 0 0;
            padding: var(--space-md);
            background: rgba(23, 134, 107, 0.07);
            border-left: 3px solid var(--learning-green);
            border-radius: 0 var(--radius-md) var(--radius-md) 0;
            color: var(--text-secondary);
            font-size: 0.82rem;
            line-height: 1.7;
        }

        .lab-hint strong {
            color: var(--text-primary);
        }

        .loss-family-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-md);
            margin-bottom: var(--space-lg);
        }

        .loss-family-card {
            position: relative;
            padding: var(--space-lg);
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            overflow: hidden;
        }

        .loss-family-card::before {
            content: '';
            position: absolute;
            inset: 0 auto 0 0;
            width: 4px;
            background: var(--learning-blue);
        }

        .loss-family-card.active::before {
            background: var(--learning-red);
        }

        .loss-family-card:nth-child(3)::before {
            background: var(--learning-violet);
        }

        .loss-family-badge {
            display: inline-flex;
            margin-bottom: var(--space-sm);
            padding: 3px 9px;
            border-radius: 999px;
            background: var(--bg-elevated);
            color: var(--text-tertiary);
            font-size: 0.66rem;
            font-weight: 600;
        }

        .loss-family-card h4 {
            margin: 0 0 var(--space-xs);
            color: var(--text-primary);
            font-size: 0.98rem;
        }

        .loss-family-card p {
            min-height: 70px;
            margin: 0 0 var(--space-sm);
            color: var(--text-secondary);
            font-size: 0.79rem;
            line-height: 1.65;
        }

        .loss-family-card code {
            display: block;
            padding: 8px 10px;
            border-radius: var(--radius-sm);
            background: #F6F2ED;
            color: var(--learning-red);
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.72rem;
            text-align: center;
        }

        .learning-insight {
            margin-bottom: var(--space-xl);
        }

        .learning-insight > strong {
            display: block;
            margin-bottom: var(--space-xs);
            color: var(--text-primary);
        }

        .learning-insight p {
            margin: 0;
        }

        .solution-path-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: var(--space-lg);
            margin-bottom: var(--space-xl);
        }

        .solution-path-card {
            display: grid;
            grid-template-columns: 54px 1fr;
            gap: var(--space-md);
            padding: var(--space-lg);
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-top: 4px solid var(--learning-blue);
            border-radius: var(--radius-lg);
        }

        .solution-path-card.iterative {
            border-top-color: var(--learning-green);
        }

        .solution-path-icon {
            display: grid;
            width: 50px;
            height: 50px;
            place-items: center;
            border-radius: 15px;
            background: rgba(79, 124, 172, 0.1);
            color: var(--learning-blue);
            font-size: 1.35rem;
            font-weight: 700;
        }

        .solution-path-card.iterative .solution-path-icon {
            background: rgba(23, 134, 107, 0.1);
            color: var(--learning-green);
        }

        .solution-path-label {
            color: var(--text-tertiary);
            font-size: 0.7rem;
            font-weight: 600;
            letter-spacing: 0.08em;
        }

        .solution-path-card h4 {
            margin: 4px 0 var(--space-sm);
            color: var(--text-primary);
        }

        .solution-path-card p {
            margin: 0 0 var(--space-sm);
            color: var(--text-secondary);
            font-size: 0.8rem;
            line-height: 1.65;
        }

        .mini-formula {
            margin: var(--space-sm) 0;
            padding: 9px 12px;
            border-radius: var(--radius-sm);
            background: var(--bg-elevated);
            color: var(--text-primary);
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.78rem;
            text-align: center;
            overflow-x: auto;
        }

        .solution-path-card .solution-note {
            margin-bottom: 0;
            color: var(--text-tertiary);
            font-size: 0.73rem;
        }

        .gradient-formula {
            margin-bottom: var(--space-lg);
        }

        .gradient-steps {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: var(--space-md);
            margin-bottom: var(--space-xl);
        }

        .gradient-step {
            position: relative;
            padding: var(--space-lg) var(--space-md) var(--space-md);
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            text-align: center;
        }

        .gradient-step > span {
            display: grid;
            width: 30px;
            height: 30px;
            place-items: center;
            margin: -32px auto var(--space-sm);
            border-radius: 50%;
            background: var(--learning-red);
            box-shadow: 0 0 0 5px var(--bg-card);
            color: #FFFFFF;
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.76rem;
            font-weight: 700;
        }

        .gradient-step strong {
            color: var(--text-primary);
            font-size: 0.84rem;
        }

        .gradient-step p {
            margin: 6px 0 0;
            color: var(--text-secondary);
            font-size: 0.74rem;
            line-height: 1.55;
        }

        .learning-rate-lab {
            display: grid;
            grid-template-columns: minmax(230px, 0.78fr) minmax(320px, 1.22fr);
            align-items: center;
            gap: var(--space-xl);
        }

        .rate-buttons {
            display: flex;
            flex-direction: column;
            gap: var(--space-sm);
            margin: var(--space-lg) 0 var(--space-md);
        }

        .rate-button {
            width: 100%;
            padding: 10px 13px;
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-md);
            background: rgba(255, 255, 255, 0.82);
            color: var(--text-secondary);
            font: 500 0.78rem 'Noto Sans SC', sans-serif;
            text-align: left;
            cursor: pointer;
            transition: all var(--transition-base);
        }

        .rate-button:hover,
        .rate-button.active {
            border-color: rgba(229, 97, 63, 0.42);
            background: rgba(229, 97, 63, 0.08);
            color: var(--learning-red);
            transform: translateX(3px);
        }

        .rate-button:focus-visible {
            outline: 3px solid rgba(229, 97, 63, 0.2);
            outline-offset: 2px;
        }

        .rate-status {
            padding: 10px 12px;
            border-left: 3px solid var(--learning-green);
            border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
            background: rgba(23, 134, 107, 0.07);
            color: var(--text-secondary);
            font-size: 0.75rem;
            line-height: 1.55;
        }

        .rate-chart-wrap {
            min-width: 0;
            padding: var(--space-sm);
            background: rgba(255, 255, 255, 0.76);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
        }

        .rate-rule-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-md);
            margin-bottom: var(--space-xl);
        }

        .rate-rule {
            padding: var(--space-lg);
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
            text-align: center;
        }

        .rate-rule > span {
            display: block;
            margin-bottom: var(--space-xs);
            font-size: 1.35rem;
        }

        .rate-rule strong {
            color: var(--text-primary);
            font-size: 0.9rem;
        }

        .rate-rule p {
            margin: 6px 0 0;
            color: var(--text-secondary);
            font-size: 0.76rem;
            line-height: 1.6;
        }

        .rate-rule.slow {
            border-top: 3px solid var(--learning-blue);
        }

        .rate-rule.good {
            border-top: 3px solid var(--learning-green);
        }

        .rate-rule.fast {
            border-top: 3px solid var(--learning-red);
        }

        .optimizer-evolution {
            display: grid;
            grid-template-columns: 1fr auto 1fr auto 1fr;
            align-items: stretch;
            gap: var(--space-sm);
            margin-bottom: var(--space-lg);
        }

        .optimizer-stage {
            padding: var(--space-lg);
            background: var(--bg-card);
            border: 1px solid var(--border-subtle);
            border-radius: var(--radius-lg);
        }

        .optimizer-stage.emphasized {
            background: linear-gradient(145deg, rgba(23, 134, 107, 0.08), var(--bg-card));
            border-color: rgba(23, 134, 107, 0.25);
        }

        .optimizer-year {
            color: var(--text-tertiary);
            font-size: 0.68rem;
            font-weight: 600;
            letter-spacing: 0.08em;
        }

        .optimizer-stage h4 {
            margin: 5px 0 var(--space-xs);
            color: var(--text-primary);
            font-size: 1rem;
        }

        .optimizer-stage p {
            margin: 0;
            color: var(--text-secondary);
            font-size: 0.76rem;
            line-height: 1.6;
        }

        .optimizer-arrow {
            align-self: center;
            color: var(--learning-red);
            font-size: 1.15rem;
            font-weight: 700;
        }

        .optimizer-branches {
            display: grid;
            grid-template-columns: 1fr auto 1fr auto 1fr;
            align-items: stretch;
            gap: var(--space-sm);
            margin-bottom: var(--space-xl);
        }

        .optimizer-branch {
            padding: var(--space-lg);
            border-radius: var(--radius-lg);
            color: var(--text-secondary);
        }

        .optimizer-branch.momentum {
            background: rgba(79, 124, 172, 0.08);
            border: 1px solid rgba(79, 124, 172, 0.2);
        }

        .optimizer-branch.adaptive {
            background: rgba(217, 145, 36, 0.08);
            border: 1px solid rgba(217, 145, 36, 0.22);
        }

        .optimizer-branch.adam {
            background: rgba(118, 86, 168, 0.09);
            border: 1px solid rgba(118, 86, 168, 0.23);
        }

        .branch-head > span {
            color: var(--text-tertiary);
            font-size: 0.68rem;
            font-weight: 600;
        }

        .branch-head h4 {
            margin: 4px 0 var(--space-sm);
            color: var(--text-primary);
            font-size: 0.92rem;
        }

        .optimizer-branch p {
            margin: 0 0 var(--space-md);
            font-size: 0.75rem;
            line-height: 1.65;
        }

        .branch-path {
            padding: 7px 9px;
            border-radius: var(--radius-sm);
            background: rgba(255, 255, 255, 0.58);
            font-family: 'JetBrains Mono', monospace;
            font-size: 0.68rem;
            text-align: center;
        }

        .optimizer-plus,
        .optimizer-equals {
            align-self: center;
            color: var(--learning-violet);
            font-size: 1.25rem;
            font-weight: 700;
        }

        .adam-card {
            background:
                radial-gradient(circle at 95% 5%, rgba(118, 86, 168, 0.15), transparent 31%),
                linear-gradient(145deg, #FFFEFC, #F5F0FA);
            border-color: rgba(118, 86, 168, 0.2);
        }

        .adam-title {
            display: flex;
            align-items: center;
            gap: var(--space-md);
            margin-bottom: var(--space-lg);
        }

        .adam-mark {
            display: grid;
            flex: 0 0 58px;
            height: 58px;
            place-items: center;
            border-radius: 18px;
            background: linear-gradient(135deg, var(--learning-violet), #9B7AC7);
            box-shadow: 0 10px 24px rgba(118, 86, 168, 0.24);
            color: #FFFFFF;
            font: 700 1.55rem 'Noto Serif SC', serif;
        }

        .adam-title h4 {
            margin: 0 0 4px;
            color: var(--text-primary);
            font-size: 1.15rem;
        }

        .adam-title p {
            margin: 0;
            color: var(--text-secondary);
            font-size: 0.8rem;
        }

        .adam-mechanics {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-md);
            margin-bottom: var(--space-md);
        }

        .adam-mechanics > div {
            padding: var(--space-md);
            background: rgba(255, 255, 255, 0.7);
            border: 1px solid rgba(118, 86, 168, 0.14);
            border-radius: var(--radius-md);
        }

        .adam-mechanics strong {
            color: var(--learning-violet);
            font-size: 0.82rem;
        }

        .adam-mechanics p {
            margin: 6px 0 0;
            color: var(--text-secondary);
            font-size: 0.74rem;
            line-height: 1.55;
        }

        .adam-formula {
            margin-bottom: var(--space-md);
            background: rgba(255, 255, 255, 0.64);
            border-color: rgba(118, 86, 168, 0.18);
        }

        .adam-note {
            margin: 0;
            padding-top: var(--space-sm);
            border-top: 1px dashed rgba(118, 86, 168, 0.25);
            color: var(--text-secondary);
            font-size: 0.76rem;
            line-height: 1.65;
        }

        .deep-bridge {
            display: grid;
            grid-template-columns: 1fr minmax(180px, 0.72fr) 1fr;
            align-items: stretch;
            gap: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .deep-bridge-side {
            padding: var(--space-lg);
            border-radius: var(--radius-xl);
            text-align: center;
        }

        .linear-side {
            background: rgba(79, 124, 172, 0.08);
            border: 1px solid rgba(79, 124, 172, 0.2);
        }

        .neural-side {
            background: rgba(118, 86, 168, 0.09);
            border: 1px solid rgba(118, 86, 168, 0.22);
        }

        .bridge-label {
            color: var(--text-tertiary);
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.08em;
        }

        .bridge-equation {
            margin: var(--space-lg) 0;
            color: var(--learning-blue);
            font-size: 1.2rem;
        }

        .deep-bridge-side p {
            margin: var(--space-md) 0 0;
            color: var(--text-secondary);
            font-size: 0.78rem;
            line-height: 1.6;
        }

        .deep-bridge-middle {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 6px;
            color: var(--text-secondary);
            font-size: 0.75rem;
            text-align: center;
        }

        .deep-bridge-middle strong {
            color: var(--learning-red);
            font-size: 1.1rem;
        }

        .mini-network {
            position: relative;
            display: grid;
            grid-template-columns: repeat(3, 18px);
            grid-template-rows: repeat(3, 18px);
            justify-content: center;
            gap: 8px 24px;
            width: 150px;
            height: 96px;
            margin: var(--space-md) auto 0;
        }

        .mini-network span,
        .mini-network i,
        .mini-network b {
            position: relative;
            z-index: 2;
            display: block;
            width: 18px;
            height: 18px;
            border-radius: 50%;
            background: var(--learning-blue);
            box-shadow: 0 0 0 4px rgba(79, 124, 172, 0.1);
        }

        .mini-network span:nth-child(1) { grid-column: 1; grid-row: 1; }
        .mini-network span:nth-child(2) { grid-column: 1; grid-row: 2; }
        .mini-network span:nth-child(3) { grid-column: 1; grid-row: 3; }
        .mini-network i:nth-of-type(1) { grid-column: 2; grid-row: 1; }
        .mini-network i:nth-of-type(2) { grid-column: 2; grid-row: 2; }
        .mini-network i:nth-of-type(3) { grid-column: 2; grid-row: 3; }
        .mini-network i:nth-of-type(4) { display: none; }
        .mini-network b:nth-of-type(1) { grid-column: 3; grid-row: 1 / span 2; align-self: end; }
        .mini-network b:nth-of-type(2) { grid-column: 3; grid-row: 2 / span 2; align-self: start; }

        .mini-network i {
            background: var(--learning-violet);
            box-shadow: 0 0 0 4px rgba(118, 86, 168, 0.1);
        }

        .mini-network b {
            background: var(--learning-red);
            box-shadow: 0 0 0 4px rgba(229, 97, 63, 0.1);
        }

        .learning-transition {
            margin-top: var(--space-lg);
        }

        @media (max-width: 980px) {
            .learning-loop-banner {
                grid-template-columns: repeat(4, 1fr);
            }

            .learning-loop-arrow {
                display: none;
            }

            .parameter-grid,
            .loss-family-grid,
            .rate-rule-grid,
            .adam-mechanics {
                grid-template-columns: 1fr;
            }

            .loss-family-card p {
                min-height: 0;
            }

            .optimizer-evolution,
            .optimizer-branches {
                grid-template-columns: 1fr;
            }

            .optimizer-arrow {
                justify-self: center;
                transform: rotate(90deg);
            }

            .optimizer-plus,
            .optimizer-equals {
                justify-self: center;
            }
        }

        @media (max-width: 768px) {
            .learning-loop-banner {
                grid-template-columns: 1fr 1fr;
                padding: var(--space-md);
            }

            .learning-loop-node {
                min-width: 0;
            }

            .parameter-grid,
            .regression-chart-grid,
            .solution-path-grid,
            .learning-rate-lab,
            .deep-bridge {
                grid-template-columns: 1fr;
            }

            .regression-controls {
                grid-template-columns: auto 1fr;
            }

            .gradient-steps {
                grid-template-columns: 1fr 1fr;
                gap: var(--space-xl) var(--space-md);
            }

            .learning-rate-lab {
                gap: var(--space-lg);
            }

            .deep-bridge-middle {
                padding: var(--space-sm) 0;
            }

            .learning-chart-card canvas,
            .rate-chart-wrap canvas {
                height: 235px;
            }

            #loss-canvas {
                height: 270px;
            }
        }

        @media (max-width: 520px) {
            .learning-loop-banner,
            .gradient-steps {
                grid-template-columns: 1fr;
            }

            .learning-loop-return {
                grid-column: 1;
            }

            .lab-header,
            .adam-title {
                align-items: stretch;
                flex-direction: column;
            }

            .loss-readout {
                width: 100%;
            }

            .regression-controls {
                grid-template-columns: 1fr;
            }

            .solution-path-card {
                grid-template-columns: 1fr;
            }

            .gradient-step {
                margin-top: var(--space-md);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .rate-button {
                transition: none;
            }

            .rate-button:hover,
            .rate-button.active {
                transform: none;
            }

            #loss-canvas.is-rotating + .surface-control-bar .surface-drag-hint i {
                animation: none;
            }

            .surface-reset-button {
                transition: none;
            }
        }

        #training-core,
        #regression-lab,
        #learning-rate-lab,
        #optimizer-evolution {
            scroll-margin-top: 96px;
        }

        .learning-core-section .formula-box mjx-container {
            max-width: 100%;
            overflow-x: auto;
            overflow-y: hidden;
        }

        .learning-core-section .formula-box mjx-container > svg {
            max-width: none;
        }
