@lemonppt/themes 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1721 @@
1
+ /* lemonPPT - AI-powered presentation generation */
2
+ /* Copyright (c) 2026 lemonforme */
3
+ /* SPDX-License-Identifier: AGPL-3.0-or-later */
4
+
5
+ /* packages/themes/src/theme10/styles.css */
6
+ /* theme10: 金色指数 · 金融编辑风 / Gold Index · Financial Editorial */
7
+
8
+ /* CSS 变量由 renderer 在 <style> 中注入(generateTheme10CssVariables),
9
+ styles.css 仅承载基底布局 + 金融编辑装饰语汇 + 版式专属类,
10
+ 不重复定义 :root,避免覆盖注入的三情绪变量。 */
11
+
12
+ * {
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ .lp-theme10.lp-slide {
17
+ position: relative;
18
+ width: 100%;
19
+ height: 100%;
20
+ background: var(--lp-mood-gradient, var(--lp-bg, #0a0e14));
21
+ color: var(--lp-ink);
22
+ font-family: var(--lp-font);
23
+ overflow: hidden;
24
+ display: flex;
25
+ flex-direction: column;
26
+ }
27
+
28
+ /* obsidian 深底上 ink3(#7e889b) 仅 4.38:1,低于 WCAG AA 4.5 阈值;
29
+ 局部提亮至 #8b96a8(≈5.2:1),仅作用于 obsidian 情绪,不影响浅色情绪 */
30
+ .lp-theme10-mood-obsidian { --lp-ink3: #8b96a8; --lp-red: #f0786f; }
31
+ .lp-theme10-mood-ember { --lp-red: #f0786f; }
32
+
33
+ /* 极淡 mono 网格底(数据画布质感,全局叠加在情绪渐变之上) */
34
+ .lp-theme10.lp-slide::before {
35
+ content: '';
36
+ position: absolute;
37
+ inset: 0;
38
+ pointer-events: none;
39
+ background-image:
40
+ linear-gradient(rgba(238, 241, 246, 0.04) 1px, transparent 1px),
41
+ linear-gradient(90deg, rgba(238, 241, 246, 0.04) 1px, transparent 1px);
42
+ background-size: 44px 44px;
43
+ opacity: 0.5;
44
+ z-index: 0;
45
+ }
46
+
47
+ .lp-theme10-inner {
48
+ position: relative;
49
+ z-index: 1;
50
+ flex: 1 1 auto;
51
+ min-height: 0;
52
+ display: flex;
53
+ flex-direction: column;
54
+ padding: var(--lp-pad-top, 72px) var(--lp-page-padding, 60px) var(--lp-pad-bottom, 68px);
55
+ }
56
+
57
+ /* ────────────────────────────────────────────────────────────────
58
+ * 入场动效(与其它主题一致的 lp-rise 约定)
59
+ * ──────────────────────────────────────────────────────────────── */
60
+ .lp-theme10 .lp-rise {
61
+ animation: lp-theme10-rise 0.46s cubic-bezier(0.22, 0.68, 0.32, 1) both;
62
+ }
63
+ @keyframes lp-theme10-rise {
64
+ from {
65
+ opacity: 0;
66
+ transform: translateY(14px);
67
+ }
68
+ to {
69
+ opacity: 1;
70
+ transform: translateY(0);
71
+ }
72
+ }
73
+ @media (prefers-reduced-motion: reduce) {
74
+ .lp-theme10 .lp-rise {
75
+ animation: none;
76
+ }
77
+ }
78
+
79
+ /* ────────────────────────────────────────────────────────────────
80
+ * 金融编辑装饰语汇(原创,不抄 theme08/09)
81
+ * ──────────────────────────────────────────────────────────────── */
82
+
83
+ /* 行情带 ticker:顶部细条 + mono 滚动代码/指数 */
84
+ .lp-theme10-ticker {
85
+ display: flex;
86
+ align-items: center;
87
+ gap: 22px;
88
+ height: var(--lp-t10-ticker-h, 30px);
89
+ padding: 0 4px;
90
+ border-bottom: 1px solid var(--lp-t10-rule);
91
+ font-family: var(--lp-font-mono);
92
+ font-size: 12px;
93
+ letter-spacing: 0.04em;
94
+ color: var(--lp-ink2);
95
+ overflow: hidden;
96
+ white-space: nowrap;
97
+ }
98
+ .lp-theme10-ticker .t10-tick {
99
+ display: inline-flex;
100
+ align-items: center;
101
+ gap: 6px;
102
+ }
103
+ .lp-theme10-ticker .t10-tick b {
104
+ color: var(--lp-ink);
105
+ font-weight: 700;
106
+ }
107
+ .lp-theme10-ticker .t10-up {
108
+ color: var(--lp-gold);
109
+ }
110
+ .lp-theme10-ticker .t10-down {
111
+ color: var(--lp-copper);
112
+ }
113
+
114
+ /* 账本细线 ledger-rule */
115
+ .lp-theme10-ledger {
116
+ height: 1px;
117
+ background: var(--lp-t10-rule-strong);
118
+ width: 100%;
119
+ }
120
+ .lp-theme10-ledger.dashed {
121
+ background: repeating-linear-gradient(90deg, var(--lp-t10-rule-strong) 0 6px, transparent 6px 12px);
122
+ height: 1px;
123
+ }
124
+
125
+ /* 刻度尺 scale:重复短线 + mono 标注 */
126
+ .lp-theme10-scale {
127
+ display: flex;
128
+ align-items: flex-end;
129
+ gap: 0;
130
+ height: var(--lp-t10-scale-unit, 22px);
131
+ font-family: var(--lp-font-mono);
132
+ font-size: 10px;
133
+ color: var(--lp-ink3);
134
+ }
135
+ .lp-theme10-scale .t10-tick {
136
+ position: relative;
137
+ width: 1px;
138
+ height: 10px;
139
+ background: var(--lp-t10-rule);
140
+ margin-right: 18px;
141
+ }
142
+ .lp-theme10-scale .t10-tick.major {
143
+ height: 16px;
144
+ background: var(--lp-t10-rule-strong);
145
+ }
146
+ .lp-theme10-scale .t10-tick span {
147
+ position: absolute;
148
+ top: 18px;
149
+ left: 50%;
150
+ transform: translateX(-50%);
151
+ }
152
+
153
+ /* 页脚三段 folio */
154
+ .lp-theme10-folio {
155
+ display: flex;
156
+ align-items: center;
157
+ gap: 14px;
158
+ font-family: var(--lp-font-mono);
159
+ font-size: 11px;
160
+ letter-spacing: 0.05em;
161
+ color: var(--lp-ink3);
162
+ padding-top: 14px;
163
+ border-top: 1px solid var(--lp-t10-rule);
164
+ }
165
+ .lp-theme10-folio .t10-folio-page {
166
+ color: var(--lp-ink);
167
+ font-weight: 700;
168
+ }
169
+ .lp-theme10-folio .t10-folio-rule {
170
+ flex: 1 1 auto;
171
+ height: 1px;
172
+ background: var(--lp-t10-rule);
173
+ }
174
+
175
+ /* 来源戳 stamp */
176
+ .lp-theme10-stamp {
177
+ position: absolute;
178
+ right: var(--lp-page-padding, 60px);
179
+ bottom: 22px;
180
+ z-index: 2;
181
+ font-family: var(--lp-font-mono);
182
+ font-size: 10px;
183
+ letter-spacing: 0.05em;
184
+ color: var(--lp-ink3);
185
+ text-align: right;
186
+ }
187
+ .lp-theme10-stamp::before {
188
+ content: '';
189
+ display: inline-block;
190
+ width: 14px;
191
+ height: 1px;
192
+ background: var(--lp-t10-gold);
193
+ margin-right: 8px;
194
+ vertical-align: middle;
195
+ }
196
+
197
+ /* 数据点 data-dot */
198
+ .lp-theme10-data-dot {
199
+ display: inline-block;
200
+ width: 9px;
201
+ height: 9px;
202
+ border-radius: 50%;
203
+ background: var(--lp-t10-blue);
204
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lp-t10-blue) 26%, transparent);
205
+ vertical-align: middle;
206
+ margin-right: 8px;
207
+ }
208
+ .lp-theme10-data-dot.gold {
209
+ background: var(--lp-t10-gold);
210
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--lp-t10-gold) 26%, transparent);
211
+ }
212
+
213
+ /* 金线分隔 gold-rule */
214
+ .lp-theme10-gold-rule {
215
+ height: 4px;
216
+ width: 100%;
217
+ background: linear-gradient(90deg, var(--lp-t10-gold), transparent);
218
+ border-radius: 2px;
219
+ }
220
+
221
+ /* 涨跌箭头 delta */
222
+ .lp-theme10-delta {
223
+ font-family: var(--lp-font-mono);
224
+ font-weight: 700;
225
+ font-size: 13px;
226
+ }
227
+ .lp-theme10-delta.up {
228
+ color: var(--lp-gold);
229
+ }
230
+ .lp-theme10-delta.down {
231
+ color: var(--lp-copper);
232
+ }
233
+
234
+ /* ────────────────────────────────────────────────────────────────
235
+ * EditorialPhoto(复用 theme09 上传属性约定,金线皮肤)
236
+ * ──────────────────────────────────────────────────────────────── */
237
+ .lp-theme10-photo {
238
+ position: relative;
239
+ margin: 0;
240
+ overflow: hidden;
241
+ border: 1px solid var(--lp-border-strong);
242
+ border-radius: var(--lp-radius-medium);
243
+ background: var(--lp-surface-solid);
244
+ }
245
+ .lp-theme10-photo.fit-cover .lp-theme10-photo-img,
246
+ .lp-theme10-photo.fit-cover img {
247
+ width: 100%;
248
+ height: 100%;
249
+ object-fit: cover;
250
+ }
251
+ .lp-theme10-photo.fit-contain .lp-theme10-photo-img,
252
+ .lp-theme10-photo.fit-contain img {
253
+ width: 100%;
254
+ height: 100%;
255
+ object-fit: contain;
256
+ }
257
+ .lp-theme10-photo.empty {
258
+ background:
259
+ linear-gradient(rgba(238, 241, 246, 0.05) 1px, transparent 1px) 0 0 / 22px 22px,
260
+ linear-gradient(90deg, rgba(238, 241, 246, 0.05) 1px, transparent 1px) 0 0 / 22px 22px,
261
+ var(--lp-surface-solid);
262
+ }
263
+ .lp-theme10-photo-slot {
264
+ position: absolute;
265
+ inset: 0;
266
+ display: flex;
267
+ flex-direction: column;
268
+ align-items: center;
269
+ justify-content: center;
270
+ gap: 10px;
271
+ color: var(--lp-ink3);
272
+ font-family: var(--lp-font-mono);
273
+ font-size: 12px;
274
+ }
275
+ .lp-theme10-photo-reg {
276
+ width: 26px;
277
+ height: 26px;
278
+ border: 1px solid var(--lp-border-strong);
279
+ border-radius: 50%;
280
+ position: relative;
281
+ }
282
+ .lp-theme10-photo-reg::before,
283
+ .lp-theme10-photo-reg::after {
284
+ content: '';
285
+ position: absolute;
286
+ background: var(--lp-border-strong);
287
+ }
288
+ .lp-theme10-photo-reg::before {
289
+ left: 50%;
290
+ top: -10px;
291
+ bottom: -10px;
292
+ width: 1px;
293
+ transform: translateX(-50%);
294
+ }
295
+ .lp-theme10-photo-reg::after {
296
+ top: 50%;
297
+ left: -10px;
298
+ right: -10px;
299
+ height: 1px;
300
+ transform: translateY(-50%);
301
+ }
302
+ .lp-theme10-photo-spec {
303
+ font-size: 10px;
304
+ letter-spacing: 0.1em;
305
+ color: var(--lp-ink3);
306
+ }
307
+
308
+ /* ────────────────────────────────────────────────────────────────
309
+ * 通用文字类
310
+ * ──────────────────────────────────────────────────────────────── */
311
+ .lp-theme10-eyelabel {
312
+ font-family: var(--lp-font-mono);
313
+ font-size: 12px;
314
+ letter-spacing: 0.14em;
315
+ text-transform: uppercase;
316
+ color: var(--lp-t10-gold);
317
+ display: inline-flex;
318
+ align-items: center;
319
+ gap: 10px;
320
+ }
321
+ .lp-theme10-eyelabel::before {
322
+ content: '';
323
+ width: 22px;
324
+ height: 2px;
325
+ background: var(--lp-t10-gold);
326
+ }
327
+ .lp-theme10-title {
328
+ font-family: var(--lp-font-heading);
329
+ font-weight: 800;
330
+ line-height: 1.02;
331
+ color: var(--lp-ink);
332
+ letter-spacing: -0.01em;
333
+ }
334
+ .lp-theme10-en {
335
+ font-family: var(--lp-t10-en);
336
+ font-style: italic;
337
+ color: var(--lp-ink2);
338
+ }
339
+ .lp-theme10-mono {
340
+ font-family: var(--lp-font-mono);
341
+ }
342
+
343
+ /* ═══════════════════════════════════════════════════════════════
344
+ * 版式专属类
345
+ * ═══════════════════════════════════════════════════════════════ */
346
+
347
+ /* 1. cover_dusk —— 暮光对角封面 */
348
+ .lp-theme10-cover-dusk {
349
+ position: relative;
350
+ }
351
+ .lp-theme10-cover-dusk-grid {
352
+ position: absolute;
353
+ inset: 0;
354
+ z-index: 0;
355
+ pointer-events: none;
356
+ background:
357
+ linear-gradient(135deg, transparent 49.6%, var(--lp-t10-gold) 49.6%, var(--lp-t10-gold) 50.4%, transparent 50.4%) top right / 62% 100% no-repeat;
358
+ opacity: 0.7;
359
+ }
360
+ .lp-theme10-cover-dusk-grid::after {
361
+ content: '';
362
+ position: absolute;
363
+ top: 0;
364
+ right: 0;
365
+ width: 62%;
366
+ height: 100%;
367
+ background: linear-gradient(135deg, transparent 60%, color-mix(in srgb, var(--lp-t10-gold) 10%, transparent) 100%);
368
+ }
369
+ .lp-theme10-cover-dusk-inner {
370
+ position: relative;
371
+ z-index: 1;
372
+ flex: 1;
373
+ display: flex;
374
+ flex-direction: column;
375
+ justify-content: center;
376
+ max-width: 56%;
377
+ }
378
+ .lp-theme10-cover-dusk-title {
379
+ font-family: var(--lp-font-mono);
380
+ font-weight: 700;
381
+ font-size: var(--lp-font-size-display);
382
+ line-height: 0.98;
383
+ color: var(--lp-ink);
384
+ letter-spacing: -0.02em;
385
+ }
386
+ .lp-theme10-cover-dusk-sub {
387
+ margin-top: 18px;
388
+ font-size: 18px;
389
+ color: var(--lp-ink2);
390
+ max-width: 30ch;
391
+ }
392
+
393
+ /* 2. cover_field —— 色场分栏封面 */
394
+ .lp-theme10-cover-field {
395
+ position: relative;
396
+ flex-direction: row;
397
+ }
398
+ .lp-theme10-cover-field-main {
399
+ flex: 1 1 56%;
400
+ display: flex;
401
+ flex-direction: column;
402
+ justify-content: center;
403
+ padding-right: 40px;
404
+ }
405
+ .lp-theme10-cover-field-aside {
406
+ flex: 1 1 44%;
407
+ position: relative;
408
+ border-left: 1px solid var(--lp-t10-gold);
409
+ background: linear-gradient(160deg, color-mix(in srgb, var(--lp-t10-blue) 14%, transparent), color-mix(in srgb, var(--lp-t10-gold) 12%, transparent));
410
+ display: flex;
411
+ align-items: flex-end;
412
+ padding: 30px;
413
+ }
414
+ .lp-theme10-cover-field-aside .t10-field-no {
415
+ font-family: var(--lp-font-mono);
416
+ font-size: 64px;
417
+ font-weight: 700;
418
+ color: var(--lp-ink);
419
+ opacity: 0.92;
420
+ }
421
+
422
+ /* 3. cover_atmos —— 满版渐变大字 */
423
+ .lp-theme10-cover-atmos {
424
+ position: relative;
425
+ align-items: flex-start;
426
+ justify-content: center;
427
+ }
428
+ .lp-theme10-cover-atmos-title {
429
+ font-family: var(--lp-font-heading);
430
+ font-weight: 800;
431
+ font-size: calc(var(--lp-font-size-display) * 1.05);
432
+ line-height: 0.96;
433
+ color: var(--lp-ink);
434
+ letter-spacing: -0.02em;
435
+ max-width: 16ch;
436
+ }
437
+
438
+ /* 4. cover_horizon —— 地平线封面 */
439
+ .lp-theme10-cover-horizon {
440
+ position: relative;
441
+ justify-content: flex-end;
442
+ }
443
+ .lp-theme10-cover-horizon::after {
444
+ content: '';
445
+ position: absolute;
446
+ left: 0;
447
+ right: 0;
448
+ bottom: 38%;
449
+ height: 1px;
450
+ background: linear-gradient(90deg, transparent, var(--lp-t10-gold) 30%, var(--lp-t10-gold) 70%, transparent);
451
+ z-index: 0;
452
+ }
453
+ .lp-theme10-cover-horizon-inner {
454
+ position: relative;
455
+ z-index: 1;
456
+ width: 100%;
457
+ padding-bottom: 8%;
458
+ }
459
+ .lp-theme10-cover-horizon-issue {
460
+ position: absolute;
461
+ top: var(--lp-pad-top, 72px);
462
+ right: var(--lp-page-padding, 60px);
463
+ font-family: var(--lp-font-mono);
464
+ font-size: 12px;
465
+ color: var(--lp-ink2);
466
+ }
467
+
468
+ /* 5. cover_standard —— 标准封面 */
469
+ .lp-theme10-cover-standard {
470
+ position: relative;
471
+ }
472
+ .lp-theme10-cover-standard-body {
473
+ flex: 1;
474
+ display: flex;
475
+ flex-direction: column;
476
+ justify-content: center;
477
+ }
478
+
479
+ /* 6. cover_dawn —— 晨光卡封面(含角嵌影像) */
480
+ .lp-theme10-cover-dawn-card {
481
+ position: relative;
482
+ flex: 1;
483
+ border: 1px solid var(--lp-border-strong);
484
+ border-radius: var(--lp-radius-large);
485
+ background: linear-gradient(160deg, color-mix(in srgb, var(--lp-t10-gold) 12%, transparent), color-mix(in srgb, var(--lp-t10-copper) 8%, transparent));
486
+ padding: 40px;
487
+ display: flex;
488
+ flex-direction: column;
489
+ justify-content: center;
490
+ }
491
+ .lp-theme10-cover-dawn-photo {
492
+ position: absolute;
493
+ top: 30px;
494
+ right: 30px;
495
+ width: 160px;
496
+ height: 120px;
497
+ }
498
+
499
+ /* 7. chapter —— 章节索引 */
500
+ .lp-theme10-partdiv {
501
+ position: relative;
502
+ align-items: flex-start;
503
+ justify-content: center;
504
+ }
505
+ .lp-theme10-partdiv-no {
506
+ font-family: var(--lp-font-mono);
507
+ font-size: clamp(120px, 22vw, 240px);
508
+ font-weight: 700;
509
+ line-height: 0.9;
510
+ color: transparent;
511
+ -webkit-text-stroke: 2px var(--lp-t10-gold);
512
+ text-stroke: 2px var(--lp-t10-gold);
513
+ }
514
+ .lp-theme10-partdiv-name {
515
+ font-family: var(--lp-font-heading);
516
+ font-weight: 800;
517
+ font-size: var(--lp-font-size-h1);
518
+ color: var(--lp-ink);
519
+ margin-top: 10px;
520
+ }
521
+ .lp-theme10-partdiv-list {
522
+ margin-top: 26px;
523
+ display: flex;
524
+ flex-direction: column;
525
+ gap: 8px;
526
+ }
527
+ .lp-theme10-partdiv-list .t10-row {
528
+ display: flex;
529
+ gap: 14px;
530
+ align-items: baseline;
531
+ border-top: 1px solid var(--lp-t10-rule);
532
+ padding-top: 8px;
533
+ font-family: var(--lp-font-mono);
534
+ font-size: 13px;
535
+ color: var(--lp-ink2);
536
+ }
537
+ .lp-theme10-partdiv-list .t10-row b {
538
+ color: var(--lp-ink);
539
+ min-width: 28px;
540
+ }
541
+
542
+ /* 8. divider —— 序号分章 */
543
+ .lp-theme10-divider {
544
+ align-items: center;
545
+ justify-content: center;
546
+ text-align: center;
547
+ }
548
+ .lp-theme10-divider-no {
549
+ font-family: var(--lp-font-mono);
550
+ font-size: 96px;
551
+ font-weight: 700;
552
+ color: var(--lp-t10-gold);
553
+ }
554
+ .lp-theme10-divider-name {
555
+ font-family: var(--lp-font-heading);
556
+ font-weight: 800;
557
+ font-size: var(--lp-font-size-h2);
558
+ color: var(--lp-ink);
559
+ margin-top: 14px;
560
+ }
561
+ .lp-theme10-divider .lp-theme10-gold-rule {
562
+ width: 220px;
563
+ margin: 22px auto;
564
+ }
565
+
566
+ /* 9. statement_section —— 宣言章节(左宣言右索引) */
567
+ .lp-theme10-statement-section {
568
+ flex-direction: row;
569
+ gap: 0;
570
+ }
571
+ .lp-theme10-statement-section-left {
572
+ flex: 1 1 52%;
573
+ display: flex;
574
+ flex-direction: column;
575
+ justify-content: center;
576
+ padding-right: 44px;
577
+ }
578
+ .lp-theme10-statement-section-right {
579
+ flex: 1 1 48%;
580
+ border-left: 1px solid var(--lp-t10-rule);
581
+ padding-left: 44px;
582
+ display: flex;
583
+ flex-direction: column;
584
+ justify-content: center;
585
+ gap: 10px;
586
+ }
587
+ .lp-theme10-statement-section-quote {
588
+ font-family: var(--lp-font-heading);
589
+ font-weight: 700;
590
+ font-size: var(--lp-font-size-h1);
591
+ line-height: 1.12;
592
+ color: var(--lp-ink);
593
+ }
594
+ .lp-theme10-statement-section-right .t10-idx {
595
+ display: flex;
596
+ justify-content: space-between;
597
+ border-top: 1px solid var(--lp-t10-rule);
598
+ padding: 10px 0;
599
+ font-family: var(--lp-font-mono);
600
+ font-size: 13px;
601
+ color: var(--lp-ink2);
602
+ }
603
+ .lp-theme10-statement-section-right .t10-idx b {
604
+ color: var(--lp-ink);
605
+ }
606
+
607
+ /* 10. statement —— 声明金句 */
608
+ .lp-theme10-statement {
609
+ align-items: flex-start;
610
+ justify-content: center;
611
+ }
612
+ .lp-theme10-statement-word {
613
+ font-family: var(--lp-font-heading);
614
+ font-weight: 800;
615
+ font-size: calc(var(--lp-font-size-display) * 0.62);
616
+ line-height: 1.08;
617
+ color: var(--lp-ink);
618
+ max-width: 20ch;
619
+ }
620
+ .lp-theme10-statement-sign {
621
+ margin-top: 26px;
622
+ font-family: var(--lp-font-mono);
623
+ font-size: 13px;
624
+ letter-spacing: 0.06em;
625
+ color: var(--lp-t10-gold);
626
+ }
627
+
628
+ /* 11. principles —— 投资原则(编号 + 刻度尺) */
629
+ .lp-theme10-principles {
630
+ position: relative;
631
+ }
632
+ .lp-theme10-principles-head {
633
+ margin-bottom: 24px;
634
+ }
635
+ .lp-theme10-principles-grid {
636
+ display: grid;
637
+ grid-template-columns: repeat(3, 1fr);
638
+ gap: 22px;
639
+ flex: 1;
640
+ align-content: start;
641
+ }
642
+ .lp-theme10-principles-item {
643
+ border-top: 2px solid var(--lp-t10-gold);
644
+ padding-top: 14px;
645
+ }
646
+ .lp-theme10-principles-item .t10-no {
647
+ font-family: var(--lp-font-mono);
648
+ font-size: 28px;
649
+ font-weight: 700;
650
+ color: var(--lp-t10-blue);
651
+ }
652
+ .lp-theme10-principles-item .t10-name {
653
+ font-family: var(--lp-font-heading);
654
+ font-weight: 700;
655
+ font-size: 19px;
656
+ color: var(--lp-ink);
657
+ margin: 6px 0;
658
+ }
659
+ .lp-theme10-principles-item .t10-desc {
660
+ font-size: 14px;
661
+ color: var(--lp-ink2);
662
+ line-height: 1.5;
663
+ }
664
+
665
+ /* 12. closing —— 结束页 */
666
+ .lp-theme10-closing {
667
+ position: relative;
668
+ align-items: center;
669
+ justify-content: center;
670
+ text-align: center;
671
+ }
672
+ .lp-theme10-closing-word {
673
+ font-family: var(--lp-font-heading);
674
+ font-weight: 800;
675
+ font-size: var(--lp-font-size-h1);
676
+ color: var(--lp-ink);
677
+ max-width: 22ch;
678
+ }
679
+ .lp-theme10-closing-sub {
680
+ margin-top: 16px;
681
+ font-size: 16px;
682
+ color: var(--lp-ink2);
683
+ max-width: 40ch;
684
+ }
685
+ .lp-theme10-closing-colophon {
686
+ margin-top: 28px;
687
+ display: flex;
688
+ gap: 18px;
689
+ font-family: var(--lp-font-mono);
690
+ font-size: 12px;
691
+ letter-spacing: 0.06em;
692
+ color: var(--lp-ink3);
693
+ }
694
+ .lp-theme10-closing-colophon i {
695
+ color: var(--lp-t10-rule-strong);
696
+ font-style: normal;
697
+ }
698
+
699
+ /* 12b. closing 满版影像层(铺满 full-bleed 整页;frame 本身无内边距,无需逃逸) */
700
+ .lp-theme10-closing-photo {
701
+ position: absolute;
702
+ inset: 0;
703
+ z-index: 0;
704
+ }
705
+ .lp-theme10-closing-photo .lp-theme10-photo {
706
+ width: 100%;
707
+ height: 100%;
708
+ border: none;
709
+ border-radius: 0;
710
+ }
711
+ .lp-theme10-closing-scrim {
712
+ position: absolute;
713
+ inset: 0;
714
+ z-index: 1;
715
+ background: linear-gradient(
716
+ 180deg,
717
+ color-mix(in srgb, var(--lp-bg) 50%, transparent) 0%,
718
+ color-mix(in srgb, var(--lp-bg) 76%, transparent) 100%
719
+ );
720
+ }
721
+ .lp-theme10-closing-inner {
722
+ position: relative;
723
+ z-index: 2;
724
+ flex: 1;
725
+ display: flex;
726
+ flex-direction: column;
727
+ align-items: center;
728
+ justify-content: center;
729
+ text-align: center;
730
+ max-width: 78%;
731
+ margin: 0 auto;
732
+ }
733
+
734
+ /* ════════════════════════════════════════════════════════════════
735
+ * 编辑器画布切换显隐(deck / slide-wrapper)
736
+ * 画布切换显隐由 .lp-deck / .lp-slide-wrapper 控制;
737
+ * 编辑器 chrome(.lp-editor-* / .lp-thumbnail)由 render.tsx 内联 <style> 提供,与主题无关。
738
+ * ════════════════════════════════════════════════════════════════ */
739
+
740
+ .lp-deck {
741
+ position: relative;
742
+ width: 100%;
743
+ height: 100%;
744
+ display: flex;
745
+ align-items: center;
746
+ justify-content: center;
747
+ }
748
+
749
+ .lp-slide-wrapper {
750
+ position: absolute;
751
+ top: 0;
752
+ left: 0;
753
+ width: 100%;
754
+ height: 100%;
755
+ display: flex;
756
+ align-items: center;
757
+ justify-content: center;
758
+ opacity: 0;
759
+ z-index: 0;
760
+ }
761
+
762
+ .lp-slide-wrapper.enter,
763
+ .lp-slide-wrapper.leave {
764
+ pointer-events: none;
765
+ }
766
+
767
+ .lp-deck[data-lp-transition="none"] .lp-slide-wrapper {
768
+ transition: opacity 80ms ease;
769
+ transform: none;
770
+ }
771
+
772
+ .lp-deck[data-lp-transition="none"] .lp-slide-wrapper.active {
773
+ opacity: 1;
774
+ z-index: 2;
775
+ }
776
+
777
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper,
778
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper {
779
+ transform: translateX(100%);
780
+ transition: transform 400ms ease-in-out, opacity 300ms ease;
781
+ }
782
+
783
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.active,
784
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.active {
785
+ opacity: 1;
786
+ transform: translateX(0);
787
+ z-index: 2;
788
+ }
789
+
790
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.prev,
791
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.prev {
792
+ opacity: 0;
793
+ transform: translateX(-100%);
794
+ }
795
+
796
+ /* ════════════════════════════════════════════════════════════════
797
+ * P1 影像图文 · 批次A(profile / team / quote / editorial / magazine)
798
+ * ════════════════════════════════════════════════════════════════ */
799
+
800
+ /* 13. profile · 人物特写(obsidian,左肖像出血 + 右履历条) */
801
+ .lp-theme10-profile { position: relative; }
802
+ .lp-theme10-profile-photo {
803
+ position: absolute;
804
+ top: 0;
805
+ bottom: 0;
806
+ left: 0;
807
+ width: 42%;
808
+ z-index: 0;
809
+ }
810
+ .lp-theme10-profile-photo .lp-theme10-photo {
811
+ width: 100%; height: 100%; border: none; border-radius: 0;
812
+ border-right: 1px solid var(--lp-t10-gold);
813
+ }
814
+ .lp-theme10-profile-photo-scrim {
815
+ position: absolute; inset: 0;
816
+ background: linear-gradient(90deg, transparent 58%, color-mix(in srgb, var(--lp-bg) 38%, transparent));
817
+ }
818
+ .lp-theme10-profile-body {
819
+ position: relative; z-index: 1;
820
+ margin-left: 42%; padding-left: 50px;
821
+ display: flex; flex-direction: column; justify-content: center;
822
+ flex: 1 1 auto; min-height: 0;
823
+ }
824
+ .lp-theme10-profile-name {
825
+ font-family: var(--lp-font-heading); font-weight: 800;
826
+ font-size: calc(var(--lp-font-size-h1) * 1.05); line-height: 1.02; color: var(--lp-ink); margin-top: 10px;
827
+ }
828
+ .lp-theme10-profile-en {
829
+ font-family: var(--lp-font-mono); font-size: 14px; letter-spacing: 0.04em; color: var(--lp-ink2); margin-top: 4px;
830
+ }
831
+ .lp-theme10-profile-title {
832
+ font-family: var(--lp-font-heading); font-weight: 700; font-size: 20px; color: var(--lp-t10-gold); margin-top: 14px;
833
+ }
834
+ .lp-theme10-profile-resume { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
835
+ .lp-theme10-profile-resume .t10-row {
836
+ display: flex; gap: 18px; align-items: baseline; border-top: 1px solid var(--lp-t10-rule); padding-top: 8px;
837
+ }
838
+ .lp-theme10-profile-resume .t10-k {
839
+ font-family: var(--lp-font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--lp-ink2); min-width: 44px;
840
+ }
841
+ .lp-theme10-profile-resume .t10-v { font-family: var(--lp-font-body); font-size: 14px; color: var(--lp-ink); }
842
+ .lp-theme10-profile-bio { margin-top: 18px; font-size: 14px; color: var(--lp-ink2); line-height: 1.55; max-width: 32ch; }
843
+
844
+ /* 14. team · 内容墙 / 团队(ember,3×2 网格 + 展签) */
845
+ .lp-theme10-team { position: relative; }
846
+ .lp-theme10-team-head { position: relative; margin-bottom: 22px; }
847
+ .lp-theme10-team-title {
848
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
849
+ }
850
+ .lp-theme10-team-head .lp-theme10-stamp { position: absolute; top: 0; right: 0; bottom: auto; }
851
+ .lp-theme10-team-grid {
852
+ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
853
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
854
+ }
855
+ .lp-theme10-team-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
856
+ .lp-theme10-team-photo { width: 100%; flex: 1 1 auto; min-height: 0; }
857
+ .lp-theme10-team-cap { display: flex; flex-direction: column; gap: 2px; padding-top: 8px; }
858
+ .lp-theme10-team-cap .t10-name { font-family: var(--lp-font-heading); font-weight: 700; font-size: 15px; color: var(--lp-ink); }
859
+ .lp-theme10-team-cap .t10-role { font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-t10-gold); letter-spacing: 0.04em; }
860
+
861
+ /* 15. quote · 引言(obsidian,巨型引号 + mono 署名) */
862
+ .lp-theme10-quote { position: relative; align-items: flex-start; justify-content: center; }
863
+ .lp-theme10-quote-mark {
864
+ position: absolute; top: calc(var(--lp-pad-top, 72px) - 46px); left: calc(var(--lp-page-padding, 60px) - 12px);
865
+ font-family: var(--lp-font-heading); font-size: 150px; line-height: 1; color: color-mix(in srgb, var(--lp-t10-gold) 38%, transparent);
866
+ z-index: 0; pointer-events: none;
867
+ }
868
+ .lp-theme10-quote-body {
869
+ position: relative; z-index: 1; flex: 1 1 auto; width: 100%;
870
+ display: flex; flex-direction: column; justify-content: center;
871
+ }
872
+ .lp-theme10-quote-text {
873
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 1.15);
874
+ line-height: 1.12; color: var(--lp-ink); margin-top: 14px; white-space: pre-line; max-width: 26ch;
875
+ }
876
+ .lp-theme10-quote-sign { margin-top: 22px; display: flex; flex-direction: column; gap: 4px; }
877
+ .lp-theme10-quote-sign .t10-sign { font-family: var(--lp-font-heading); font-weight: 700; font-size: 18px; color: var(--lp-t10-gold); }
878
+ .lp-theme10-quote-sign .t10-source { font-family: var(--lp-font-mono); font-size: 12px; color: var(--lp-ink3); letter-spacing: 0.04em; }
879
+
880
+ /* 16. editorial · 编排图文(ember,三栏文字 + 右出血图) */
881
+ .lp-theme10-editorial { position: relative; }
882
+ .lp-theme10-editorial-photo {
883
+ position: absolute;
884
+ top: 0;
885
+ bottom: 0;
886
+ right: 0;
887
+ width: 42%; z-index: 0;
888
+ }
889
+ .lp-theme10-editorial-photo .lp-theme10-photo {
890
+ width: 100%; height: 100%; border: none; border-radius: 0;
891
+ border-left: 1px solid var(--lp-t10-gold);
892
+ }
893
+ .lp-theme10-editorial-photo-scrim {
894
+ position: absolute; inset: 0;
895
+ background: linear-gradient(270deg, transparent 58%, color-mix(in srgb, var(--lp-bg) 38%, transparent));
896
+ }
897
+ .lp-theme10-editorial-body {
898
+ position: relative; z-index: 1; margin-right: 42%; padding-right: 50px;
899
+ display: flex; flex-direction: column; justify-content: center;
900
+ flex: 1 1 auto; min-height: 0;
901
+ }
902
+ .lp-theme10-editorial-title {
903
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 1.02); line-height: 1.04; color: var(--lp-ink); margin-top: 10px;
904
+ }
905
+ .lp-theme10-editorial-lead { font-size: 16px; color: var(--lp-ink2); line-height: 1.5; margin-top: 14px; max-width: 36ch; }
906
+ .lp-theme10-editorial-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 20px; }
907
+ .lp-theme10-editorial-col { font-size: 13px; color: var(--lp-ink); line-height: 1.5; }
908
+ .lp-theme10-editorial-col .t10-col-no {
909
+ display: block; font-family: var(--lp-font-mono); font-size: 12px; font-weight: 700; color: var(--lp-t10-blue); margin-bottom: 6px;
910
+ }
911
+
912
+ /* 17. magazine · 杂志图文(obsidian,左大图 + 右文 + 右下小图) */
913
+ .lp-theme10-magazine { position: relative; }
914
+ .lp-theme10-magazine-figure {
915
+ position: absolute;
916
+ top: 0;
917
+ bottom: 0;
918
+ left: 0;
919
+ width: 46%; z-index: 0;
920
+ }
921
+ .lp-theme10-magazine-figure .lp-theme10-photo {
922
+ width: 100%; height: 100%; border: none; border-radius: 0;
923
+ border-right: 1px solid var(--lp-t10-gold);
924
+ }
925
+ .lp-theme10-magazine-scrim {
926
+ position: absolute; inset: 0;
927
+ background: linear-gradient(90deg, transparent 55%, color-mix(in srgb, var(--lp-bg) 30%, transparent));
928
+ }
929
+ .lp-theme10-magazine-cap {
930
+ position: absolute; left: 18px; bottom: 16px; font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-ink2); max-width: 60%;
931
+ }
932
+ .lp-theme10-magazine-body {
933
+ position: relative; z-index: 1; margin-left: 46%; padding-left: 50px;
934
+ display: flex; flex-direction: column; justify-content: center;
935
+ flex: 1 1 auto; min-height: 0;
936
+ }
937
+ .lp-theme10-magazine-title {
938
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 1.0); line-height: 1.06; color: var(--lp-ink); margin-top: 10px;
939
+ }
940
+ .lp-theme10-magazine-lead { font-size: 15px; color: var(--lp-ink2); line-height: 1.55; margin-top: 14px; max-width: 36ch; }
941
+ .lp-theme10-magazine-pull {
942
+ font-family: var(--lp-font-heading); font-style: italic; font-weight: 700; font-size: 19px; color: var(--lp-t10-gold);
943
+ line-height: 1.25; margin-top: 18px; border-left: 2px solid var(--lp-t10-gold); padding-left: 14px;
944
+ }
945
+
946
+ /* ════════════════════════════════════════════════════════════════
947
+ * P1 影像图文 · 批次B(triptych / strata / spark / testimonials / feature)
948
+ * ════════════════════════════════════════════════════════════════ */
949
+
950
+ /* 18. triptych · 三联影像(ember,3 等高图 + 图注) */
951
+ .lp-theme10-triptych { position: relative; }
952
+ .lp-theme10-triptych-head { position: relative; margin-bottom: 20px; }
953
+ .lp-theme10-triptych-title {
954
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
955
+ }
956
+ .lp-theme10-triptych-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 64ch; }
957
+ .lp-theme10-triptych-grid {
958
+ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
959
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
960
+ }
961
+ .lp-theme10-triptych-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
962
+ .lp-theme10-triptych-photo { flex: 1 1 auto; min-height: 0; }
963
+ .lp-theme10-triptych-cap {
964
+ font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-ink2);
965
+ padding-top: 8px; margin-top: 8px; border-top: 1px solid var(--lp-t10-rule);
966
+ }
967
+
968
+ /* 19. strata · 横向影像带(obsidian,满宽 4 联 + 图注) */
969
+ .lp-theme10-strata { position: relative; }
970
+ .lp-theme10-strata-head { position: relative; margin-bottom: 18px; }
971
+ .lp-theme10-strata-title {
972
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
973
+ }
974
+ .lp-theme10-strata-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
975
+ .lp-theme10-strata-band {
976
+ display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
977
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
978
+ }
979
+ .lp-theme10-strata-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
980
+ .lp-theme10-strata-photo { flex: 1 1 auto; min-height: 0; }
981
+ .lp-theme10-strata-cap {
982
+ display: flex; align-items: baseline; gap: 6px; padding-top: 8px;
983
+ font-family: var(--lp-font-mono); font-size: 10px; color: var(--lp-ink2);
984
+ }
985
+ .lp-theme10-strata-cap .t10-idx { color: var(--lp-t10-gold); font-weight: 700; min-width: 18px; }
986
+
987
+ /* 20. spark · 持仓小图集(obsidian,2×3 + 涨跌幅) */
988
+ .lp-theme10-spark { position: relative; }
989
+ .lp-theme10-spark-head { position: relative; margin-bottom: 18px; }
990
+ .lp-theme10-spark-title {
991
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
992
+ }
993
+ .lp-theme10-spark-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
994
+ .lp-theme10-spark-grid {
995
+ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
996
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
997
+ }
998
+ .lp-theme10-spark-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
999
+ .lp-theme10-spark-photo { flex: 1 1 auto; min-height: 0; }
1000
+ .lp-theme10-spark-cap { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding-top: 8px; }
1001
+ .lp-theme10-spark-cap .t10-name { font-family: var(--lp-font-heading); font-weight: 700; font-size: 13px; color: var(--lp-ink); }
1002
+ .lp-theme10-spark-cap .t10-val { font-family: var(--lp-font-mono); font-size: 12px; font-weight: 700; }
1003
+ .lp-theme10-spark-cap .t10-val.up { color: var(--lp-t10-gold); }
1004
+ .lp-theme10-spark-cap .t10-val.down { color: var(--lp-t10-copper); }
1005
+ .lp-theme10-spark-foot {
1006
+ display: flex; align-items: center; gap: 14px; margin-top: 14px;
1007
+ font-family: var(--lp-font-mono); font-size: 10px; letter-spacing: 0.12em; color: var(--lp-ink2);
1008
+ }
1009
+ .lp-theme10-spark-foot .t10-foot-label { white-space: nowrap; }
1010
+ .lp-theme10-spark-foot .lp-theme10-scale { flex: 1 1 auto; }
1011
+
1012
+ /* 21. testimonials · 引述清单(ember,头像卡 + 三联短引述) */
1013
+ .lp-theme10-testimonials { position: relative; }
1014
+ .lp-theme10-testimonials-main {
1015
+ display: grid; grid-template-columns: 1.5in auto; gap: 28px; align-items: center;
1016
+ margin-top: 18px; margin-bottom: 24px;
1017
+ }
1018
+ .lp-theme10-testimonials-avatar { width: 1.5in; height: 1.5in; }
1019
+ .lp-theme10-testimonials-photo { width: 100%; height: 100%; border-radius: 50%; border: 2px solid var(--lp-t10-gold); }
1020
+ .lp-theme10-testimonials-body { position: relative; min-width: 0; }
1021
+ .lp-theme10-quote-glyph {
1022
+ position: absolute; top: -22px; left: -8px; font-family: var(--lp-font-heading);
1023
+ font-size: 64px; line-height: 1; color: color-mix(in srgb, var(--lp-t10-gold) 38%, transparent); pointer-events: none;
1024
+ }
1025
+ .lp-theme10-testimonials-quote {
1026
+ font-family: var(--lp-font-heading); font-weight: 700; font-size: 20px; line-height: 1.3; color: var(--lp-ink); margin: 0;
1027
+ }
1028
+ .lp-theme10-testimonials-sign { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; }
1029
+ .lp-theme10-testimonials-sign .t10-name { font-family: var(--lp-font-heading); font-weight: 700; font-size: 15px; color: var(--lp-t10-gold); }
1030
+ .lp-theme10-testimonials-sign .t10-title { font-family: var(--lp-font-body); font-size: 13px; color: var(--lp-ink2); }
1031
+ .lp-theme10-testimonials-sign .t10-source { font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-ink3); letter-spacing: 0.04em; }
1032
+ .lp-theme10-testimonials-strip {
1033
+ display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
1034
+ flex: 1 1 auto; min-height: 0; align-content: start;
1035
+ }
1036
+ .lp-theme10-testimonials-mini {
1037
+ border-top: 1px solid var(--lp-t10-gold); padding-top: 10px; min-width: 0;
1038
+ }
1039
+ .lp-theme10-testimonials-mini .t10-mini-text { font-size: 12px; color: var(--lp-ink); line-height: 1.5; margin: 0; }
1040
+ .lp-theme10-testimonials-mini .t10-mini-who { display: block; margin-top: 8px; font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-ink3); }
1041
+
1042
+ /* 22. feature · 图文特写(obsidian,左大图出血 + 右批注) */
1043
+ .lp-theme10-feature { position: relative; }
1044
+ .lp-theme10-feature-photo {
1045
+ position: absolute; top: 0; bottom: 0; left: 0; width: 46%; z-index: 0;
1046
+ }
1047
+ .lp-theme10-feature-photo .lp-theme10-photo {
1048
+ width: 100%; height: 100%; border: none; border-radius: 0;
1049
+ border-right: 1px solid var(--lp-t10-gold);
1050
+ }
1051
+ .lp-theme10-feature-scrim {
1052
+ position: absolute; inset: 0;
1053
+ background: linear-gradient(90deg, transparent 55%, color-mix(in srgb, var(--lp-bg) 30%, transparent));
1054
+ }
1055
+ .lp-theme10-feature-body {
1056
+ position: relative; z-index: 1; margin-left: 46%; padding-left: 50px;
1057
+ display: flex; flex-direction: column; justify-content: center;
1058
+ flex: 1 1 auto; min-height: 0;
1059
+ }
1060
+ .lp-theme10-feature-title {
1061
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 1.0); line-height: 1.06; color: var(--lp-ink); margin-top: 10px;
1062
+ }
1063
+ .lp-theme10-feature-lead { font-size: 15px; color: var(--lp-ink2); line-height: 1.55; margin-top: 14px; max-width: 34ch; }
1064
+ .lp-theme10-feature-notes { margin-top: 22px; display: flex; flex-direction: column; gap: 16px; }
1065
+ .lp-theme10-feature-note { display: flex; gap: 14px; align-items: flex-start; }
1066
+ .lp-theme10-feature-note .t10-leader { flex: 0 0 3px; width: 3px; align-self: stretch; background: var(--lp-t10-gold); }
1067
+ .lp-theme10-feature-note .t10-note-text { display: flex; flex-direction: column; gap: 3px; }
1068
+ .lp-theme10-feature-note .t10-label { font-family: var(--lp-font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--lp-t10-gold); }
1069
+ .lp-theme10-feature-note .t10-detail { font-family: var(--lp-font-body); font-size: 13px; color: var(--lp-ink); }
1070
+ .lp-theme10-magazine-thumb { width: 220px; max-width: 50%; margin-top: 18px; align-self: flex-start; }
1071
+
1072
+ /* ════════════════════════════════════════════════════════════════
1073
+ * P1 影像图文 · 批次C(compareimg / pinboard / filmstrip / inset / gallery2)
1074
+ * ════════════════════════════════════════════════════════════════ */
1075
+
1076
+ /* 23. compareimg · 对照双图(ember,左右双图 + 角标图注) */
1077
+ .lp-theme10-compareimg { position: relative; }
1078
+ .lp-theme10-compareimg-head { position: relative; margin-bottom: 20px; }
1079
+ .lp-theme10-compareimg-title {
1080
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1081
+ }
1082
+ .lp-theme10-compareimg-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 64ch; }
1083
+ .lp-theme10-compareimg-grid {
1084
+ display: grid; grid-template-columns: 1fr 1fr; gap: 22px;
1085
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1086
+ }
1087
+ .lp-theme10-compareimg-cell { position: relative; margin: 0; display: flex; flex-direction: column; min-height: 0; }
1088
+ .lp-theme10-compareimg-tag {
1089
+ position: absolute; top: 12px; left: 12px; z-index: 2;
1090
+ font-family: var(--lp-font-mono); font-size: 11px; letter-spacing: 0.08em; font-weight: 700;
1091
+ color: var(--lp-t10-gold);
1092
+ background: color-mix(in srgb, var(--lp-bg) 62%, transparent);
1093
+ border: 1px solid var(--lp-t10-gold); border-radius: 2px; padding: 3px 9px;
1094
+ }
1095
+ .lp-theme10-compareimg-photo { flex: 1 1 auto; min-height: 0; }
1096
+ .lp-theme10-compareimg-cap {
1097
+ font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-ink2);
1098
+ padding-top: 8px; margin-top: 8px; border-top: 1px solid var(--lp-t10-rule);
1099
+ }
1100
+
1101
+ /* 24. pinboard · 钉板九宫格(obsidian,3×3 + 图注) */
1102
+ .lp-theme10-pinboard { position: relative; }
1103
+ .lp-theme10-pinboard-head { position: relative; margin-bottom: 16px; }
1104
+ .lp-theme10-pinboard-title {
1105
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1106
+ }
1107
+ .lp-theme10-pinboard-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1108
+ .lp-theme10-pinboard-grid {
1109
+ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 14px;
1110
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1111
+ }
1112
+ .lp-theme10-pinboard-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
1113
+ .lp-theme10-pinboard-photo { flex: 1 1 auto; min-height: 0; }
1114
+ .lp-theme10-pinboard-cap {
1115
+ font-family: var(--lp-font-mono); font-size: 9px; color: var(--lp-ink2);
1116
+ padding-top: 5px; margin-top: 5px; border-top: 1px solid var(--lp-t10-rule);
1117
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1118
+ }
1119
+
1120
+ /* 25. filmstrip · 横向胶片条(obsidian,满宽七联 + 帧号) */
1121
+ .lp-theme10-filmstrip { position: relative; }
1122
+ .lp-theme10-filmstrip-head { position: relative; margin-bottom: 14px; }
1123
+ .lp-theme10-filmstrip-title {
1124
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1125
+ }
1126
+ .lp-theme10-filmstrip-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1127
+ .lp-theme10-filmstrip-strip {
1128
+ display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px;
1129
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1130
+ }
1131
+ .lp-theme10-filmstrip-cell { position: relative; margin: 0; display: flex; flex-direction: column; min-height: 0; border-top: 2px solid var(--lp-t10-gold); padding-top: 6px; }
1132
+ .lp-theme10-filmstrip-idx {
1133
+ font-family: var(--lp-font-mono); font-size: 11px; font-weight: 700; color: var(--lp-t10-gold); letter-spacing: 0.04em; margin-bottom: 6px;
1134
+ }
1135
+ .lp-theme10-filmstrip-photo { flex: 1 1 auto; min-height: 0; }
1136
+ .lp-theme10-filmstrip-cap {
1137
+ font-family: var(--lp-font-mono); font-size: 9px; color: var(--lp-ink2);
1138
+ padding-top: 5px; margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1139
+ }
1140
+
1141
+ /* 26. inset · 满版内嵌(aurora,满版影像 + 内嵌文字卡) */
1142
+ .lp-theme10-inset { position: relative; }
1143
+ .lp-theme10-inset-photo {
1144
+ position: absolute;
1145
+ inset: 0;
1146
+ z-index: 0;
1147
+ }
1148
+ .lp-theme10-inset-photo .lp-theme10-photo {
1149
+ width: 100%; height: 100%; border: none; border-radius: 0;
1150
+ }
1151
+ .lp-theme10-inset-scrim {
1152
+ position: absolute; inset: 0;
1153
+ background: linear-gradient(90deg, color-mix(in srgb, var(--lp-bg) 60%, transparent) 0%, color-mix(in srgb, var(--lp-bg) 22%, transparent) 60%, transparent 100%);
1154
+ }
1155
+ .lp-theme10-inset-card {
1156
+ position: relative; z-index: 2;
1157
+ display: flex; flex-direction: column; justify-content: flex-end;
1158
+ flex: 1 1 auto; min-height: 0; max-width: 60%;
1159
+ }
1160
+ .lp-theme10-inset-title {
1161
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 1.05); line-height: 1.06; color: var(--lp-ink); margin-top: 10px;
1162
+ }
1163
+ .lp-theme10-inset-lead { font-size: 15px; color: var(--lp-ink2); line-height: 1.55; margin-top: 14px; max-width: 40ch; }
1164
+ .lp-theme10-inset-notes { margin-top: 20px; display: flex; flex-direction: column; gap: 14px; }
1165
+ .lp-theme10-inset-note { display: flex; gap: 12px; align-items: flex-start; }
1166
+ .lp-theme10-inset-note .t10-leader { flex: 0 0 3px; width: 3px; align-self: stretch; background: var(--lp-t10-gold); }
1167
+ .lp-theme10-inset-note .t10-note-text { display: flex; flex-direction: column; gap: 3px; }
1168
+ .lp-theme10-inset-note .t10-label { font-family: var(--lp-font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--lp-t10-gold); }
1169
+ .lp-theme10-inset-note .t10-detail { font-family: var(--lp-font-body); font-size: 13px; color: var(--lp-ink); }
1170
+
1171
+ /* 27. gallery2 · 画廊六格(ember,3×2 + 图注) */
1172
+ .lp-theme10-gallery2 { position: relative; }
1173
+ .lp-theme10-gallery2-head { position: relative; margin-bottom: 18px; }
1174
+ .lp-theme10-gallery2-title {
1175
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1176
+ }
1177
+ .lp-theme10-gallery2-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1178
+ .lp-theme10-gallery2-grid {
1179
+ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); gap: 18px;
1180
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1181
+ }
1182
+ .lp-theme10-gallery2-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
1183
+ .lp-theme10-gallery2-photo { flex: 1 1 auto; min-height: 0; }
1184
+ .lp-theme10-gallery2-cap {
1185
+ font-family: var(--lp-font-mono); font-size: 10px; color: var(--lp-ink2);
1186
+ padding-top: 7px; margin-top: 7px; border-top: 1px solid var(--lp-t10-rule);
1187
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1188
+ }
1189
+
1190
+ /* ════════════════════════════════════════════════════════════════
1191
+ * P1 影像图文 · 批次D(mosaic / collage / captioned / showcase / poster)
1192
+ * ════════════════════════════════════════════════════════════════ */
1193
+
1194
+ /* 28. mosaic · 马赛克拼贴(aurora,不规则 3×3 跨格) */
1195
+ .lp-theme10-mosaic { position: relative; }
1196
+ .lp-theme10-mosaic-head { position: relative; margin-bottom: 18px; }
1197
+ .lp-theme10-mosaic-title {
1198
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1199
+ }
1200
+ .lp-theme10-mosaic-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1201
+ .lp-theme10-mosaic-grid {
1202
+ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 13px;
1203
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1204
+ }
1205
+ .lp-theme10-mosaic-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; position: relative; }
1206
+ .lp-theme10-mosaic-photo { flex: 1 1 auto; min-height: 0; }
1207
+ .lp-theme10-mosaic-cap {
1208
+ font-family: var(--lp-font-mono); font-size: 10px; color: var(--lp-ink2);
1209
+ padding-top: 6px; margin-top: 6px; border-top: 1px solid var(--lp-t10-rule);
1210
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1211
+ }
1212
+
1213
+ /* 29. collage · 自由拼贴(ember,主图左通栏高 + 右三图竖叠 + 金线图签) */
1214
+ .lp-theme10-collage { position: relative; }
1215
+ .lp-theme10-collage-head { position: relative; margin-bottom: 18px; }
1216
+ .lp-theme10-collage-title {
1217
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1218
+ }
1219
+ .lp-theme10-collage-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1220
+ .lp-theme10-collage-grid {
1221
+ display: grid; grid-template-columns: 1.6fr 1fr; grid-template-rows: repeat(3, 1fr); gap: 16px;
1222
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1223
+ }
1224
+ .lp-theme10-collage-hero { grid-column: 1; grid-row: 1 / 4; margin: 0; display: flex; flex-direction: column; min-height: 0; position: relative; }
1225
+ .lp-theme10-collage-cell { grid-column: 2; margin: 0; display: flex; flex-direction: column; min-height: 0; position: relative; }
1226
+ .lp-theme10-collage-photo { flex: 1 1 auto; min-height: 0; }
1227
+ .lp-theme10-collage-tag {
1228
+ position: absolute; left: 10px; bottom: 10px; max-width: 82%;
1229
+ font-family: var(--lp-font-mono); font-size: 10px; letter-spacing: 0.04em; color: var(--lp-ink);
1230
+ background: color-mix(in srgb, var(--lp-bg) 72%, transparent);
1231
+ padding: 4px 9px; border-left: 2px solid var(--lp-t10-gold);
1232
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1233
+ }
1234
+
1235
+ /* 30. captioned · 图注组(obsidian,三联大图 + 标题/说明图注) */
1236
+ .lp-theme10-captioned { position: relative; }
1237
+ .lp-theme10-captioned-head { position: relative; margin-bottom: 18px; }
1238
+ .lp-theme10-captioned-title {
1239
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1240
+ }
1241
+ .lp-theme10-captioned-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1242
+ .lp-theme10-captioned-grid {
1243
+ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: 1fr; gap: 18px;
1244
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1245
+ }
1246
+ .lp-theme10-captioned-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
1247
+ .lp-theme10-captioned-photo { flex: 1 1 auto; min-height: 0; }
1248
+ .lp-theme10-captioned-cap { padding-top: 12px; margin-top: 12px; border-top: 1px solid var(--lp-t10-rule-strong); display: flex; flex-direction: column; gap: 4px; }
1249
+ .lp-theme10-captioned-cap .t10-cap-title { font-family: var(--lp-font-heading); font-weight: 700; font-size: 15px; color: var(--lp-ink); }
1250
+ .lp-theme10-captioned-cap .t10-cap-note { font-family: var(--lp-font-body); font-size: 12px; color: var(--lp-ink2); line-height: 1.45; }
1251
+
1252
+ /* 31. showcase · 陈列橱窗(aurora,主图左 + 右 2×2 缩略) */
1253
+ .lp-theme10-showcase { position: relative; }
1254
+ .lp-theme10-showcase-head { position: relative; margin-bottom: 18px; }
1255
+ .lp-theme10-showcase-title {
1256
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1257
+ }
1258
+ .lp-theme10-showcase-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1259
+ .lp-theme10-showcase-grid {
1260
+ display: grid; grid-template-columns: 1.6fr 1fr 1fr; grid-template-rows: repeat(2, 1fr); gap: 16px;
1261
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1262
+ }
1263
+ .lp-theme10-showcase-hero { grid-column: 1; grid-row: 1 / 3; margin: 0; display: flex; flex-direction: column; min-height: 0; position: relative; }
1264
+ .lp-theme10-showcase-thumb { margin: 0; display: flex; flex-direction: column; min-height: 0; position: relative; }
1265
+ .lp-theme10-showcase-photo { flex: 1 1 auto; min-height: 0; }
1266
+ .lp-theme10-showcase-cap {
1267
+ font-family: var(--lp-font-mono); font-size: 9px; color: var(--lp-ink2);
1268
+ padding-top: 5px; margin-top: 5px; border-top: 1px solid var(--lp-t10-rule);
1269
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1270
+ }
1271
+
1272
+ /* 32. poster · 海报(ember,满版影像 + 底部压字大标题) */
1273
+ .lp-theme10-poster { position: relative; }
1274
+ .lp-theme10-poster-photo { position: absolute; inset: 0; z-index: 0; }
1275
+ .lp-theme10-poster-img { width: 100%; height: 100%; object-fit: cover; display: block; }
1276
+ .lp-theme10-poster-scrim {
1277
+ position: absolute; inset: 0;
1278
+ background: linear-gradient(to top,
1279
+ color-mix(in srgb, var(--lp-bg) 80%, transparent) 0%,
1280
+ color-mix(in srgb, var(--lp-bg) 34%, transparent) 44%,
1281
+ transparent 70%);
1282
+ }
1283
+ .lp-theme10-poster-card { position: absolute; left: 60px; right: 60px; bottom: 92px; z-index: 2; }
1284
+ .lp-theme10-poster-kicker {
1285
+ font-family: var(--lp-font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--lp-t10-gold); text-transform: uppercase;
1286
+ }
1287
+ .lp-theme10-poster-title {
1288
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 1.12); line-height: 1.04; color: var(--lp-ink); margin-top: 10px;
1289
+ }
1290
+ .lp-theme10-poster-tagline { font-size: 15px; color: var(--lp-ink2); line-height: 1.5; margin-top: 14px; max-width: 56ch; }
1291
+ .lp-theme10-poster-bar {
1292
+ position: absolute; left: 60px; right: 60px; bottom: 80px; height: 2px; z-index: 2;
1293
+ background: linear-gradient(90deg, var(--lp-t10-gold), transparent);
1294
+ }
1295
+
1296
+ /* ════════════════════════════════════════════════════════════════
1297
+ * P1 影像图文 · 批次E(annotated / quoteimg / quilt / exhibit / medallions)
1298
+ * ════════════════════════════════════════════════════════════════ */
1299
+
1300
+ /* 33. annotated · 注解图(aurora,底图 + 编号注解列表) */
1301
+ .lp-theme10-annotated { position: relative; }
1302
+ .lp-theme10-annotated-head { position: relative; margin-bottom: 18px; }
1303
+ .lp-theme10-annotated-title {
1304
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1305
+ }
1306
+ .lp-theme10-annotated-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1307
+ .lp-theme10-annotated-body { display: flex; gap: 28px; flex: 1 1 auto; min-height: 0; }
1308
+ .lp-theme10-annotated-figure { margin: 0; flex: 1.5 1 0; min-height: 0; display: flex; }
1309
+ .lp-theme10-annotated-photo { flex: 1 1 auto; min-height: 0; }
1310
+ .lp-theme10-annotated-notes { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; gap: 18px; justify-content: center; }
1311
+ .lp-theme10-annotated-item { display: flex; gap: 14px; align-items: flex-start; }
1312
+ .lp-theme10-annotated-no {
1313
+ flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%;
1314
+ background: var(--lp-t10-gold); color: var(--lp-bg);
1315
+ font-family: var(--lp-font-mono); font-weight: 700; font-size: 14px;
1316
+ display: flex; align-items: center; justify-content: center;
1317
+ }
1318
+ .lp-theme10-annotated-text { font-family: var(--lp-font-body); font-size: 15px; color: var(--lp-ink); line-height: 1.5; padding-top: 3px; }
1319
+
1320
+ /* 34. quoteimg · 引言图(ember,满版影像 + 居中大引述) */
1321
+ .lp-theme10-quoteimg { position: relative; }
1322
+ .lp-theme10-quoteimg-photo { position: absolute; inset: 0; z-index: 0; }
1323
+ .lp-theme10-quoteimg-img { width: 100%; height: 100%; object-fit: cover; display: block; }
1324
+ .lp-theme10-quoteimg-scrim {
1325
+ position: absolute; inset: 0;
1326
+ background: linear-gradient(180deg, color-mix(in srgb, var(--lp-bg) 52%, transparent) 0%, color-mix(in srgb, var(--lp-bg) 80%, transparent) 100%);
1327
+ }
1328
+ .lp-theme10-quoteimg-card { position: absolute; left: 60px; right: 60px; top: 50%; transform: translateY(-50%); z-index: 2; text-align: center; }
1329
+ .lp-theme10-quoteimg-kicker { font-family: var(--lp-font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--lp-t10-gold); text-transform: uppercase; }
1330
+ .lp-theme10-quoteimg-mark { display: block; font-family: var(--lp-font-heading); font-size: 64px; line-height: 1; color: var(--lp-t10-gold); margin: 6px 0; }
1331
+ .lp-theme10-quoteimg-quote {
1332
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: calc(var(--lp-font-size-h1) * 0.9); line-height: 1.18; color: var(--lp-ink); margin: 0;
1333
+ }
1334
+ .lp-theme10-quoteimg-attr { font-family: var(--lp-font-mono); font-size: 13px; letter-spacing: 0.04em; color: var(--lp-t10-gold); margin-top: 18px; }
1335
+
1336
+ /* 35. quilt · 拼布(obsidian,4×2 紧凑影像拼布) */
1337
+ .lp-theme10-quilt { position: relative; }
1338
+ .lp-theme10-quilt-head { position: relative; margin-bottom: 18px; }
1339
+ .lp-theme10-quilt-title {
1340
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1341
+ }
1342
+ .lp-theme10-quilt-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1343
+ .lp-theme10-quilt-grid {
1344
+ display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr); gap: 12px;
1345
+ flex: 1 1 auto; min-height: 0; align-content: stretch;
1346
+ }
1347
+ .lp-theme10-quilt-cell { margin: 0; display: flex; flex-direction: column; min-height: 0; }
1348
+ .lp-theme10-quilt-photo { flex: 1 1 auto; min-height: 0; }
1349
+
1350
+ /* 36. exhibit · 陈列展(aurora,带框展品 + 展签文本) */
1351
+ .lp-theme10-exhibit { position: relative; }
1352
+ .lp-theme10-exhibit-head { position: relative; margin-bottom: 18px; }
1353
+ .lp-theme10-exhibit-title {
1354
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1355
+ }
1356
+ .lp-theme10-exhibit-body { display: flex; gap: 28px; flex: 1 1 auto; min-height: 0; }
1357
+ .lp-theme10-exhibit-figure { margin: 0; flex: 1.4 1 0; min-height: 0; display: flex; }
1358
+ .lp-theme10-exhibit-photo { flex: 1 1 auto; min-height: 0; }
1359
+ .lp-theme10-exhibit-label { flex: 1 1 0; min-height: 0; display: flex; flex-direction: column; justify-content: center; }
1360
+ .lp-theme10-exhibit-meta { font-family: var(--lp-font-mono); font-size: 12px; letter-spacing: 0.06em; color: var(--lp-t10-gold); }
1361
+ .lp-theme10-exhibit-rule { height: 1px; background: var(--lp-t10-rule-strong); margin: 16px 0; }
1362
+ .lp-theme10-exhibit-desc { font-family: var(--lp-font-body); font-size: 15px; color: var(--lp-ink2); line-height: 1.6; margin: 0; }
1363
+
1364
+ /* 37. medallions · 徽章墙(ember,3×2 圆形徽章 + 标签) */
1365
+ .lp-theme10-medallions { position: relative; }
1366
+ .lp-theme10-medallions-head { position: relative; margin-bottom: 18px; }
1367
+ .lp-theme10-medallions-title {
1368
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2); color: var(--lp-ink); margin-top: 8px;
1369
+ }
1370
+ .lp-theme10-medallions-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 72ch; }
1371
+ .lp-theme10-medallions-grid {
1372
+ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); gap: 18px 30px;
1373
+ flex: 1 1 auto; min-height: 0; align-content: center;
1374
+ }
1375
+ .lp-theme10-medallions-cell { margin: 0; display: flex; flex-direction: column; align-items: center; min-height: 0; }
1376
+ .lp-theme10-medallions-photo {
1377
+ width: 100%; max-width: 200px; aspect-ratio: 1 / 1; border-radius: 50%;
1378
+ overflow: hidden; border: 2px solid var(--lp-t10-gold);
1379
+ }
1380
+ .lp-theme10-medallions-cap {
1381
+ font-family: var(--lp-font-heading); font-weight: 700; font-size: 14px; color: var(--lp-ink); margin-top: 12px; text-align: center;
1382
+ }
1383
+
1384
+ /* ────────────────────────────────────────────────────────────────
1385
+ * P2 数据图表 · 批次F(基础图表 5 版式)
1386
+ * 手绘 SVG 图表:金线网格 + 冰蓝/香槟金序列色,复用 theme10 自带 CSS 变量。
1387
+ * ──────────────────────────────────────────────────────────────── */
1388
+ .lp-theme10-chart { position: relative; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
1389
+ .lp-theme10-chart-head { flex: 0 0 auto; margin-bottom: 12px; }
1390
+ .lp-theme10-chart-title {
1391
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2);
1392
+ color: var(--lp-ink); margin-top: 8px; line-height: 1.05;
1393
+ }
1394
+ .lp-theme10-chart-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 10px; max-width: 74ch; }
1395
+ .lp-theme10-chart-body { flex: 1 1 auto; min-height: 0; display: flex; }
1396
+ .lp-t10-chart-svg { width: 100%; height: 100%; display: block; }
1397
+
1398
+ /* 坐标轴 / 网格文字 */
1399
+ .lp-t10-axis-label,
1400
+ .lp-t10-row-label {
1401
+ font-family: var(--lp-font-mono); font-size: 12px; fill: var(--lp-ink3); letter-spacing: 0.02em;
1402
+ }
1403
+ .lp-t10-row-label { fill: var(--lp-ink2); }
1404
+ .lp-t10-row-val { font-family: var(--lp-font-mono); font-size: 13px; font-weight: 700; fill: var(--lp-ink); }
1405
+ .lp-t10-bar { transition: opacity 0.2s; }
1406
+ .lp-t10-line-series polyline { vector-effect: non-scaling-stroke; }
1407
+ .lp-t10-area { }
1408
+
1409
+ /* 图例 */
1410
+ .lp-t10-legend { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 10px; }
1411
+ .lp-t10-legend-item { display: inline-flex; align-items: center; gap: 8px; font-family: var(--lp-font-body); font-size: 12px; color: var(--lp-ink2); }
1412
+ .lp-t10-legend-chip { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
1413
+
1414
+ /* 批次J 新增图表文字样式(漏斗/仪表盘/子弹/箱线/矩形树) */
1415
+ .lp-t10-funnel-label { font-family: var(--lp-font-body); font-size: 15px; font-weight: 700; fill: var(--lp-ink); }
1416
+ .lp-t10-funnel-value { font-family: var(--lp-font-mono); font-size: 14px; font-weight: 700; fill: var(--lp-ink); }
1417
+ .lp-t10-funnel-pct { font-family: var(--lp-font-mono); font-size: 12px; fill: var(--lp-ink2); }
1418
+ .lp-t10-gauge-value { font-family: var(--lp-font-mono); font-size: 48px; font-weight: 700; fill: var(--lp-ink); }
1419
+ .lp-t10-gauge-label { font-family: var(--lp-font-body); font-size: 14px; fill: var(--lp-ink2); }
1420
+ .lp-t10-bullet-label { font-family: var(--lp-font-body); font-size: 13px; fill: var(--lp-ink2); }
1421
+ .lp-t10-bullet-value { font-family: var(--lp-font-mono); font-size: 13px; font-weight: 700; fill: var(--lp-ink); }
1422
+ .lp-t10-treemap-label { font-family: var(--lp-font-body); font-size: 14px; font-weight: 700; fill: var(--lp-ink); }
1423
+ .lp-t10-treemap-value { font-family: var(--lp-font-mono); font-size: 13px; fill: var(--lp-ink); }
1424
+ .lp-t10-treemap-cell { transition: opacity 0.2s; }
1425
+
1426
+ /* KPI 指标卡(ember,2×2) */
1427
+ .lp-theme10-kpis { position: relative; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
1428
+ .lp-theme10-kpis-head { flex: 0 0 auto; margin-bottom: 14px; }
1429
+ .lp-theme10-kpis-title {
1430
+ font-family: var(--lp-font-heading); font-weight: 800; font-size: var(--lp-font-size-h2);
1431
+ color: var(--lp-ink); margin-top: 8px; line-height: 1.05;
1432
+ }
1433
+ .lp-theme10-kpis-lead { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin-top: 10px; max-width: 74ch; }
1434
+ .lp-theme10-kpis-grid {
1435
+ flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); gap: 18px 26px;
1436
+ align-content: stretch;
1437
+ }
1438
+ .lp-theme10-kpi-card {
1439
+ position: relative; display: flex; flex-direction: column; justify-content: flex-start;
1440
+ padding: 22px 26px; min-height: 0;
1441
+ background: var(--lp-surface-solid); border: 1px solid var(--lp-border-strong); border-radius: var(--lp-radius-large);
1442
+ }
1443
+ .t10-kpi-label { font-family: var(--lp-font-body); font-size: 13px; color: var(--lp-ink2); }
1444
+ .t10-kpi-value { display: flex; align-items: baseline; gap: 6px; margin-top: 14px; }
1445
+ .t10-kpi-num { font-family: var(--lp-font-mono); font-weight: 800; font-size: 46px; line-height: 1; color: var(--lp-ink); letter-spacing: -0.01em; }
1446
+ .t10-kpi-unit { font-family: var(--lp-font-mono); font-weight: 700; font-size: 18px; color: var(--lp-ink2); }
1447
+ .t10-kpi-delta { font-family: var(--lp-font-mono); font-weight: 700; font-size: 14px; margin-top: 14px; }
1448
+ .t10-kpi-delta.up { color: var(--lp-green); }
1449
+ .t10-kpi-delta.down { color: var(--lp-red); }
1450
+
1451
+ /* ────────────────────────────────────────────────────────────────
1452
+ * P2 数据图表 · 批次G(对比与构成 5 版式)
1453
+ * grouped / stack / donut / pie / waterfall
1454
+ * 复用批次F 的 .lp-theme10-chart 基样式(head/body/svg/legend)。
1455
+ * ──────────────────────────────────────────────────────────────── */
1456
+
1457
+ /* 47. waterfall · 浮动柱(obsidian)数值标签已由 .lp-t10-row-val 提供 */
1458
+ .lp-theme10-waterfall { position: relative; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
1459
+
1460
+ /* 环形 / 饼图 圆心与扇区 */
1461
+ .lp-t10-donut-seg,
1462
+ .lp-t10-pie-seg {
1463
+ stroke: var(--lp-surface-solid);
1464
+ stroke-width: 2;
1465
+ transition: opacity 0.2s;
1466
+ }
1467
+ .lp-t10-donut-total {
1468
+ font-family: var(--lp-font-mono); font-weight: 800; font-size: 34px;
1469
+ fill: var(--lp-ink); letter-spacing: -0.01em;
1470
+ }
1471
+ .lp-t10-donut-cap {
1472
+ font-family: var(--lp-font-body); font-size: 13px; fill: var(--lp-ink3); letter-spacing: 0.06em;
1473
+ }
1474
+ /* SVG 内图例(donut / pie 右侧) */
1475
+ .lp-t10-legend-svg .lp-t10-row-label { fill: var(--lp-ink2); }
1476
+ .lp-t10-legend-svg .lp-t10-row-val { fill: var(--lp-ink); }
1477
+
1478
+ /* ────────────────────────────────────────────────────────────────
1479
+ * P2 数据图表 · 批次H(分布与关系 5 版式)
1480
+ * scatter / bubble / radar / radial / heat
1481
+ * 复用批次F 的 .lp-theme10-chart 基样式(head/body/svg/legend)。
1482
+ * ──────────────────────────────────────────────────────────────── */
1483
+
1484
+ /* 轴名(散点/气泡横纵轴说明) */
1485
+ .lp-t10-axis-name { font-family: var(--lp-font-body); font-size: 12px; fill: var(--lp-ink3); letter-spacing: 0.04em; }
1486
+
1487
+ /* 48. scatter · 点 */
1488
+ .lp-t10-dot { stroke: var(--lp-surface-solid); stroke-width: 1; }
1489
+
1490
+ /* 49. bubble · 气泡(描边由内联 stroke 控制) */
1491
+ .lp-t10-bubble { stroke: var(--lp-surface-solid); }
1492
+
1493
+ /* 50. radar · 网格 / 轴线 / 多边形 / 标签 */
1494
+ .lp-t10-radar-grid { fill: none; stroke: var(--lp-rule); stroke-width: 1; }
1495
+ .lp-t10-radar-spoke { stroke: var(--lp-rule-strong); stroke-width: 1; }
1496
+ .lp-t10-radar-poly { fill-opacity: 0.16; stroke-width: 2; stroke-linejoin: round; }
1497
+ .lp-t10-radar-label { font-family: var(--lp-font-body); font-size: 13px; fill: var(--lp-ink2); }
1498
+
1499
+ /* 51. radial · 扇区 / 标签 / 中心轴 */
1500
+ .lp-t10-radial-seg { stroke: var(--lp-surface-solid); stroke-width: 1; }
1501
+ .lp-t10-radial-label { font-family: var(--lp-font-body); font-size: 12px; fill: var(--lp-ink2); }
1502
+ .lp-t10-radial-hub { fill: none; stroke: var(--lp-rule-strong); stroke-width: 1; }
1503
+
1504
+ /* 52. heat · 单元格 / 标签 */
1505
+ .lp-t10-heat-cell { stroke: var(--lp-surface-solid); stroke-width: 1; }
1506
+ .lp-t10-heat-cell-txt { font-family: var(--lp-font-mono); font-size: 12px; font-weight: 700; }
1507
+ .lp-t10-heat-rowlabel { font-family: var(--lp-font-body); font-size: 13px; fill: var(--lp-ink2); }
1508
+ .lp-t10-heat-collabel { font-family: var(--lp-font-body); font-size: 13px; fill: var(--lp-ink2); }
1509
+
1510
+ /* ────────────────────────────────────────────────────────────────
1511
+ * P2 数据图表 · 批次I(趋势与时间 5 版式)
1512
+ * trend / range / candlestick / ridgeline / calendar
1513
+ * 复用批次F 的 .lp-theme10-chart 基样式(head/body/svg/legend)。
1514
+ * ──────────────────────────────────────────────────────────────── */
1515
+
1516
+ /* 53. trend · 末值标签 */
1517
+ .lp-t10-trend-end { font-family: var(--lp-font-mono); font-size: 13px; font-weight: 700; }
1518
+
1519
+ /* 54. range · 区间带 / 中枢(圆点与带由内联属性控制) */
1520
+ .lp-theme10-range .lp-t10-axis-label { fill: var(--lp-ink2); }
1521
+
1522
+ /* 55. candlestick · K线(涨绿跌红由内联 var 控制) */
1523
+ .lp-theme10-candle .lp-t10-axis-label { fill: var(--lp-ink3); }
1524
+
1525
+ /* 56. ridgeline · 山脊线 */
1526
+ .lp-t10-ridge-label { font-family: var(--lp-font-body); font-size: 13px; font-weight: 600; }
1527
+
1528
+ /* 57. calendar · 日历热力(cells 由内联 fill 控制) */
1529
+ .lp-t10-cal-cell { stroke: var(--lp-surface-solid); stroke-width: 1; }
1530
+ .lp-t10-cal-rowlabel { font-family: var(--lp-font-body); font-size: 12px; fill: var(--lp-ink2); }
1531
+ .lp-t10-cal-cap { font-family: var(--lp-font-body); font-size: 12px; fill: var(--lp-ink3); letter-spacing: 0.04em; }
1532
+
1533
+ /* ────────────────────────────────────────────────────────────────
1534
+ * P2 数据图表 · 批次K(关系与构成进阶 5 版式)
1535
+ * sankey / dumbbell / histogram / slope / waffle
1536
+ * 复用 .lp-theme10-chart / .lp-t10-chart-svg / .lp-t10-axis-name 基样式。
1537
+ * ──────────────────────────────────────────────────────────────── */
1538
+
1539
+ /* 58. sankey · 流带 / 节点标签 */
1540
+ .lp-t10-sankey-band { transition: opacity 0.2s; }
1541
+ .lp-t10-node-label { font-family: var(--lp-font-body); font-size: 13px; font-weight: 600; fill: var(--lp-ink2); }
1542
+
1543
+ /* 59. dumbbell · 起/终点数值(用 .lp-t10-data-num) */
1544
+ .lp-t10-data-num { font-family: var(--lp-font-mono); font-size: 12px; font-weight: 700; fill: var(--lp-ink); }
1545
+
1546
+ /* 60. histogram · 柱体沿用批次F 的 .lp-t10-bar(已定义) */
1547
+
1548
+ /* 61. slope · 复用 .lp-t10-node-label / .lp-t10-data-num */
1549
+
1550
+ /* 62. waffle · 网格单元格 / 图例 */
1551
+ .lp-t10-waffle-cell { transition: opacity 0.2s; }
1552
+ .lp-theme10-waffle-legend { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 14px; }
1553
+
1554
+ /* 63. P2 数据图表 · 批次L(时序与分布 5 版式) */
1555
+ .lp-theme10-gantt, .lp-theme10-bump, .lp-theme10-rose,
1556
+ .lp-theme10-dotplot, .lp-theme10-timeline { /* 容器:沿用 chart-canvas 通用排版 */ }
1557
+ .lp-t10-node-label { font-family: var(--lp-font-body); font-size: 14px; fill: var(--lp-ink); font-weight: 600; }
1558
+ .lp-t10-node-sub { font-family: var(--lp-font-body); font-size: 12px; fill: var(--lp-ink3); letter-spacing: 0.02em; }
1559
+ .lp-t10-rose-label { font-family: var(--lp-font-body); font-size: 13px; fill: var(--lp-ink2); }
1560
+
1561
+ /* 64. P2 数据图表 · 批次M(结构与关系 5 版式) */
1562
+ .lp-theme10-orgchart, .lp-theme10-parallel, .lp-theme10-circlepack,
1563
+ .lp-theme10-cscatter, .lp-theme10-marimekko { /* 容器:沿用 chart-canvas 通用排版 */ }
1564
+
1565
+ /* ════════════════════════════════════════════════════════════════
1566
+ * P3 结构 / 流程 / 长尾(11 版式)
1567
+ * steps / cycle / swimlane / checklist / plans / journey
1568
+ * goals / glossary / faq / isotype / venn
1569
+ * ══════════════════════════════════════════════════════════════ */
1570
+
1571
+ /* 65. steps · 运作机制(obsidian,横向步骤链 + 箭头) */
1572
+ .lp-theme10-steps { position: relative; }
1573
+ .lp-theme10-steps-head { margin-bottom: 26px; max-width: 82%; }
1574
+ .lp-theme10-steps-lead { font-size: 15px; color: var(--lp-ink2); line-height: 1.5; margin-top: 12px; max-width: 60ch; }
1575
+ .lp-theme10-steps-flow { display: flex; align-items: stretch; gap: 0; flex: 1 1 auto; min-height: 0; }
1576
+ .lp-theme10-steps-node { position: relative; flex: 1 1 0; display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 0; border-top: 2px solid var(--lp-t10-gold); }
1577
+ .t10-step-no { font-family: var(--lp-font-mono); font-size: 30px; font-weight: 700; color: var(--lp-t10-blue); }
1578
+ .t10-step-name { font-family: var(--lp-font-heading); font-weight: 700; font-size: 19px; color: var(--lp-ink); }
1579
+ .t10-step-desc { font-size: 13px; color: var(--lp-ink2); line-height: 1.5; }
1580
+ .t10-step-arrow { position: absolute; right: -15px; top: 26px; color: var(--lp-t10-gold); font-size: 22px; z-index: 2; }
1581
+
1582
+ /* 66. cycle · 循环流程(obsidian,环形节点) */
1583
+ .lp-theme10-cycle { position: relative; }
1584
+ .lp-theme10-cycle-head { margin-bottom: 14px; }
1585
+ .lp-theme10-cycle-stage { flex: 1 1 auto; min-height: 0; display: flex; }
1586
+ .lp-theme10-cycle-stage .lp-t10-chart-svg { width: 100%; height: 100%; }
1587
+
1588
+ /* 67. swimlane · 泳道流程(ember,横向阶段泳道) */
1589
+ .lp-theme10-swimlane { position: relative; }
1590
+ .lp-theme10-swimlane-head { margin-bottom: 22px; }
1591
+ .lp-theme10-swimlane-body { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 12px; }
1592
+ .lp-theme10-swimlane-row { display: grid; grid-template-columns: 140px 1fr; gap: 18px; align-items: center; border-top: 1px solid var(--lp-t10-rule); padding-top: 12px; }
1593
+ .t10-lane-role { font-family: var(--lp-font-heading); font-weight: 700; font-size: 16px; color: var(--lp-t10-gold); }
1594
+ .t10-lane-track { display: flex; flex-wrap: wrap; gap: 10px; }
1595
+ .t10-lane-chip { font-family: var(--lp-font-mono); font-size: 12px; color: var(--lp-ink); background: var(--lp-surface-solid); border: 1px solid var(--lp-border-strong); border-radius: 999px; padding: 6px 14px; }
1596
+
1597
+ /* 68. checklist · 核查清单(obsidian,双栏勾选) */
1598
+ .lp-theme10-checklist { position: relative; }
1599
+ .lp-theme10-checklist-head { margin-bottom: 22px; }
1600
+ .lp-theme10-checklist-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; flex: 1 1 auto; min-height: 0; align-content: start; }
1601
+ .lp-theme10-checklist-col { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
1602
+ .t10-check { display: flex; align-items: baseline; gap: 12px; border-top: 1px solid var(--lp-t10-rule); padding-top: 12px; }
1603
+ .t10-check-mark { font-family: var(--lp-font-mono); font-size: 18px; color: var(--lp-ink3); flex: 0 0 auto; }
1604
+ .t10-check-mark.on { color: var(--lp-green); }
1605
+ .t10-check-text { font-size: 15px; color: var(--lp-ink); line-height: 1.4; }
1606
+
1607
+ /* 69. plans · 方案对比(ember,2–3 列方案卡) */
1608
+ .lp-theme10-plans { position: relative; }
1609
+ .lp-theme10-plans-head { margin-bottom: 22px; }
1610
+ .lp-theme10-plans-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; flex: 1 1 auto; min-height: 0; align-content: stretch; }
1611
+ .lp-theme10-plans-card { display: flex; flex-direction: column; gap: 12px; padding: 22px 24px; background: var(--lp-surface-solid); border: 1px solid var(--lp-border-strong); border-radius: var(--lp-radius-large); border-top: 3px solid var(--lp-t10-gold); }
1612
+ .t10-plan-tag { font-family: var(--lp-font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--lp-t10-gold); }
1613
+ .t10-plan-name { font-family: var(--lp-font-heading); font-weight: 800; font-size: 22px; color: var(--lp-ink); }
1614
+ .t10-plan-points { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
1615
+ .t10-plan-point { display: flex; gap: 10px; align-items: baseline; font-size: 14px; color: var(--lp-ink2); }
1616
+ .t10-plan-bullet { color: var(--lp-t10-blue); }
1617
+
1618
+ /* 70. journey · 客户旅程(ember,阶段 + 情绪曲线) */
1619
+ .lp-theme10-journey { position: relative; }
1620
+ .lp-theme10-journey-head { margin-bottom: 16px; }
1621
+ .lp-theme10-journey-stage { flex: 1 1 auto; min-height: 0; display: flex; }
1622
+ .lp-theme10-journey-stage .lp-t10-chart-svg { width: 100%; height: 100%; }
1623
+
1624
+ /* 71. goals · 目标进度(ember,目标卡 + 进度条) */
1625
+ .lp-theme10-goals { position: relative; }
1626
+ .lp-theme10-goals-head { margin-bottom: 24px; }
1627
+ .lp-theme10-goals-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 1fr; gap: 18px 30px; flex: 1 1 auto; min-height: 0; align-content: stretch; }
1628
+ .lp-theme10-goals-card { display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 20px 24px; background: var(--lp-surface-solid); border: 1px solid var(--lp-border-strong); border-radius: var(--lp-radius-large); }
1629
+ .t10-goal-top { display: flex; justify-content: space-between; align-items: baseline; }
1630
+ .t10-goal-name { font-family: var(--lp-font-heading); font-weight: 700; font-size: 17px; color: var(--lp-ink); }
1631
+ .t10-goal-target { font-family: var(--lp-font-mono); font-size: 13px; color: var(--lp-ink2); }
1632
+ .t10-goal-bar { height: 8px; background: var(--lp-surface-elevated); border-radius: 4px; overflow: hidden; }
1633
+ .t10-goal-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--lp-t10-blue), var(--lp-t10-gold)); border-radius: 4px; }
1634
+ .t10-goal-pct { font-family: var(--lp-font-mono); font-size: 14px; font-weight: 700; color: var(--lp-t10-gold); }
1635
+
1636
+ /* 72. glossary · 术语表(obsidian,术语 + 释义双栏) */
1637
+ .lp-theme10-glossary { position: relative; }
1638
+ .lp-theme10-glossary-head { margin-bottom: 22px; }
1639
+ .lp-theme10-glossary-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; flex: 1 1 auto; min-height: 0; align-content: start; }
1640
+ .lp-theme10-glossary-col { margin: 0; display: flex; flex-direction: column; gap: 14px; }
1641
+ .t10-gloss { border-top: 1px solid var(--lp-t10-rule); padding-top: 12px; }
1642
+ .t10-gloss-term { font-family: var(--lp-font-heading); font-weight: 700; font-size: 16px; color: var(--lp-t10-gold); margin: 0 0 4px; }
1643
+ .t10-gloss-def { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin: 0; }
1644
+
1645
+ /* 73. faq · 问答(ember,左栏索引 + 右栏释疑) */
1646
+ .lp-theme10-faq { position: relative; flex-direction: row; gap: 0; }
1647
+ .lp-theme10-faq-rail { flex: 0 0 32%; display: flex; flex-direction: column; justify-content: center; padding-right: 40px; }
1648
+ .lp-theme10-faq-list { flex: 1 1 auto; min-width: 0; border-left: 1px solid var(--lp-t10-rule); padding-left: 40px; display: flex; flex-direction: column; gap: 16px; justify-content: center; }
1649
+ .lp-theme10-faq-row { display: flex; flex-direction: column; gap: 6px; border-top: 1px solid var(--lp-t10-rule); padding-top: 12px; }
1650
+ .t10-faq-q { display: flex; align-items: baseline; gap: 12px; }
1651
+ .t10-faq-no { font-family: var(--lp-font-mono); font-size: 13px; font-weight: 700; color: var(--lp-t10-gold); flex: 0 0 auto; }
1652
+ .t10-faq-qtext { font-family: var(--lp-font-heading); font-weight: 700; font-size: 17px; color: var(--lp-ink); }
1653
+ .t10-faq-a { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; }
1654
+
1655
+ /* 74. isotype · 象形图(obsidian,单位符号重复) */
1656
+ .lp-theme10-isotype { position: relative; }
1657
+ .lp-theme10-isotype-head { margin-bottom: 24px; }
1658
+ .lp-theme10-isotype-list { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 20px; justify-content: center; }
1659
+ .lp-theme10-isotype-row { display: grid; grid-template-columns: 120px 1fr 44px; align-items: center; gap: 18px; }
1660
+ .t10-iso-label { display: flex; flex-direction: column; gap: 2px; }
1661
+ .t10-iso-label > :first-child { font-family: var(--lp-font-heading); font-weight: 700; font-size: 15px; color: var(--lp-ink); }
1662
+ .t10-iso-unit { font-family: var(--lp-font-mono); font-size: 11px; color: var(--lp-ink3); }
1663
+ .t10-iso-glyphs { display: flex; flex-wrap: wrap; gap: 6px; }
1664
+ .t10-iso-glyph { width: 16px; height: 16px; border-radius: 3px; display: inline-block; }
1665
+ .t10-iso-val { font-family: var(--lp-font-mono); font-size: 18px; font-weight: 700; color: var(--lp-ink); text-align: right; }
1666
+
1667
+ /* 75. venn · 韦恩图(ember,三集合) */
1668
+ .lp-theme10-venn { position: relative; }
1669
+ .lp-theme10-venn-head { margin-bottom: 14px; }
1670
+ .lp-theme10-venn-stage { flex: 1 1 auto; min-height: 0; display: flex; }
1671
+ .lp-theme10-venn-stage .lp-t10-chart-svg { width: 100%; height: 100%; }
1672
+
1673
+ /* 76. metric-hero · 英雄指标(aurora,单一超大指标,居中) */
1674
+ .lp-theme10-metric-hero .lp-theme10-inner { justify-content: center; align-items: flex-start; }
1675
+ .lp-theme10-metric-hero-inner { display: flex; flex-direction: column; gap: 6px; max-width: 82%; }
1676
+ .lp-theme10-metric-hero-title { font-family: var(--lp-font-heading); font-weight: 700; font-size: 22px; color: var(--lp-ink2); margin: 6px 0 24px; line-height: 1.3; }
1677
+ .lp-theme10-metric-hero-label { font-family: var(--lp-font-mono); font-size: 14px; color: var(--lp-ink3); letter-spacing: 0.04em; text-transform: uppercase; }
1678
+ .lp-theme10-metric-hero-num { font-size: 132px; line-height: 0.92; }
1679
+ .lp-theme10-metric-hero-context { font-size: 15px; color: var(--lp-ink2); line-height: 1.6; max-width: 60ch; margin-top: 24px; }
1680
+
1681
+ /* 77. scorecard · 记分卡(ember,评分卡网格) */
1682
+ .lp-theme10-scorecard-grid { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 18px; align-content: center; }
1683
+ .lp-theme10-scorecard-card { border: 1px solid var(--lp-t10-rule); border-radius: 10px; padding: 22px 20px; background: color-mix(in srgb, var(--lp-t10-gold) 4%, transparent); display: flex; flex-direction: column; gap: 4px; }
1684
+ .lp-theme10-scorecard-note { font-size: 12px; color: var(--lp-ink3); margin-top: 10px; line-height: 1.45; }
1685
+
1686
+ /* 78. comparison-stat · 对比指标(obsidian,左右两组 + 中间 VS) */
1687
+ .lp-theme10-cmp-stat .lp-theme10-inner { justify-content: center; }
1688
+ .lp-theme10-cmp-stat-row { display: flex; align-items: center; justify-content: center; gap: 48px; }
1689
+ .lp-theme10-cmp-side { display: flex; flex-direction: column; gap: 8px; min-width: 220px; align-items: center; text-align: center; }
1690
+ .lp-theme10-cmp-vs { font-family: var(--lp-font-mono); font-weight: 800; font-size: 26px; color: var(--lp-t10-gold); border: 1px solid var(--lp-t10-rule); border-radius: 50%; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
1691
+
1692
+ /* 79. small-multiples · 小多图(aurora,2×N 迷你图网格) */
1693
+ .lp-theme10-sm-grid { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 1fr; gap: 18px; }
1694
+ .lp-theme10-sm-cell { border: 1px solid var(--lp-t10-rule); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; min-height: 0; background: color-mix(in srgb, var(--lp-t10-gold) 3%, transparent); }
1695
+ .lp-theme10-sm-title { font-family: var(--lp-font-heading); font-weight: 700; font-size: 14px; color: var(--lp-ink2); margin-bottom: 6px; }
1696
+ .lp-theme10-sm-cell .lp-t10-echart { flex: 1 1 auto; min-height: 0; width: 100%; }
1697
+
1698
+ /* 80. stat-strip · 指标长条(aurora,横向紧凑指标) */
1699
+ .lp-theme10-strip-row { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; gap: 0; }
1700
+ .lp-theme10-strip-item { flex: 1 1 0; display: flex; flex-direction: column; gap: 6px; padding: 0 22px; border-left: 1px solid var(--lp-t10-rule); }
1701
+ .lp-theme10-strip-item:first-child { border-left: none; padding-left: 0; }
1702
+
1703
+ /* 81. quote-stat · 金句指标(ember,金句 + 嵌入式指标) */
1704
+ .lp-theme10-quote-stat .lp-theme10-inner { justify-content: center; }
1705
+ .lp-theme10-quote-stat-body { max-width: 80%; margin-bottom: 28px; }
1706
+ .lp-theme10-quote-stat-text { font-family: var(--lp-font-heading); font-weight: 700; font-size: 40px; line-height: 1.32; color: var(--lp-ink); white-space: pre-line; }
1707
+ .lp-theme10-quote-stat-sign { font-family: var(--lp-font-mono); font-size: 13px; color: var(--lp-t10-gold); margin-top: 16px; }
1708
+ .lp-theme10-quote-stat-chip { display: flex; flex-direction: column; gap: 4px; border-left: 3px solid var(--lp-t10-gold); padding-left: 18px; }
1709
+
1710
+ /* 82. index-board · 指数看板(obsidian,多行行情) */
1711
+ .lp-theme10-index-board-head { display: grid; grid-template-columns: 1.1fr 1.6fr 1fr 1fr; gap: 16px; font-family: var(--lp-font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lp-ink3); border-bottom: 1px solid var(--lp-t10-rule); padding-bottom: 8px; margin-bottom: 2px; }
1712
+ .lp-theme10-index-board-head .t10-idx-num { text-align: right; }
1713
+ .lp-theme10-index-board-rows { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
1714
+ .lp-theme10-idx-row { display: grid; grid-template-columns: 1.1fr 1.6fr 1fr 1fr; gap: 16px; align-items: center; border-bottom: 1px solid var(--lp-t10-rule); padding: 14px 0; }
1715
+ .t10-idx-code { font-family: var(--lp-font-mono); font-weight: 700; font-size: 15px; color: var(--lp-ink); }
1716
+ .t10-idx-name { font-family: var(--lp-font-heading); font-size: 15px; color: var(--lp-ink2); }
1717
+ .t10-idx-value { font-family: var(--lp-font-mono); font-weight: 700; font-size: 18px; color: var(--lp-ink); text-align: right; }
1718
+ .t10-idx-delta { font-family: var(--lp-font-mono); font-weight: 700; font-size: 15px; text-align: right; }
1719
+ .t10-idx-delta.up { color: var(--lp-red); }
1720
+ .t10-idx-delta.down { color: var(--lp-green); }
1721
+