@lemonppt/themes 0.1.7 → 0.2.1

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.
Files changed (74) hide show
  1. package/dist/index.d.ts +173 -60
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +21 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/theme01/tokens.d.ts +72 -0
  6. package/dist/theme01/tokens.d.ts.map +1 -0
  7. package/dist/theme01/tokens.js +79 -0
  8. package/dist/theme01/tokens.js.map +1 -0
  9. package/dist/theme02/tokens.d.ts +73 -0
  10. package/dist/theme02/tokens.d.ts.map +1 -0
  11. package/dist/theme02/tokens.js +81 -0
  12. package/dist/theme02/tokens.js.map +1 -0
  13. package/dist/theme03/tokens.d.ts +322 -0
  14. package/dist/theme03/tokens.d.ts.map +1 -0
  15. package/dist/theme03/tokens.js +279 -0
  16. package/dist/theme03/tokens.js.map +1 -0
  17. package/dist/theme04/tokens.d.ts +94 -0
  18. package/dist/theme04/tokens.d.ts.map +1 -0
  19. package/dist/theme04/tokens.js +305 -0
  20. package/dist/theme04/tokens.js.map +1 -0
  21. package/dist/theme05/tokens.d.ts +92 -0
  22. package/dist/theme05/tokens.d.ts.map +1 -0
  23. package/dist/theme05/tokens.js +275 -0
  24. package/dist/theme05/tokens.js.map +1 -0
  25. package/dist/theme06/tokens.d.ts +101 -0
  26. package/dist/theme06/tokens.d.ts.map +1 -0
  27. package/dist/theme06/tokens.js +320 -0
  28. package/dist/theme06/tokens.js.map +1 -0
  29. package/dist/theme07/tokens.d.ts +99 -0
  30. package/dist/theme07/tokens.d.ts.map +1 -0
  31. package/dist/theme07/tokens.js +274 -0
  32. package/dist/theme07/tokens.js.map +1 -0
  33. package/dist/theme08/tokens.d.ts +103 -0
  34. package/dist/theme08/tokens.d.ts.map +1 -0
  35. package/dist/theme08/tokens.js +286 -0
  36. package/dist/theme08/tokens.js.map +1 -0
  37. package/dist/theme09/tokens.d.ts +128 -0
  38. package/dist/theme09/tokens.d.ts.map +1 -0
  39. package/dist/theme09/tokens.js +334 -0
  40. package/dist/theme09/tokens.js.map +1 -0
  41. package/dist/theme10/tokens.d.ts +87 -0
  42. package/dist/theme10/tokens.d.ts.map +1 -0
  43. package/dist/theme10/tokens.js +201 -0
  44. package/dist/theme10/tokens.js.map +1 -0
  45. package/package.json +2 -2
  46. package/src/theme01/styles.css +5371 -0
  47. package/src/theme02/styles.css +5017 -0
  48. package/src/theme03/styles.css +8355 -0
  49. package/src/theme04/styles.css +8758 -0
  50. package/src/theme05/styles.css +3601 -0
  51. package/src/theme06/styles.css +7122 -0
  52. package/src/theme07/styles.css +5546 -0
  53. package/src/theme08/styles.css +1225 -0
  54. package/src/theme09/styles.css +3950 -0
  55. package/src/theme10/styles.css +1721 -0
  56. package/dist/base/tokens.d.ts +0 -34
  57. package/dist/base/tokens.d.ts.map +0 -1
  58. package/dist/base/tokens.js +0 -37
  59. package/dist/base/tokens.js.map +0 -1
  60. package/dist/dark-tech/tokens.d.ts +0 -34
  61. package/dist/dark-tech/tokens.d.ts.map +0 -1
  62. package/dist/dark-tech/tokens.js +0 -37
  63. package/dist/dark-tech/tokens.js.map +0 -1
  64. package/dist/minimal/tokens.d.ts +0 -34
  65. package/dist/minimal/tokens.d.ts.map +0 -1
  66. package/dist/minimal/tokens.js +0 -34
  67. package/dist/minimal/tokens.js.map +0 -1
  68. package/dist/warm-business/tokens.d.ts +0 -34
  69. package/dist/warm-business/tokens.d.ts.map +0 -1
  70. package/dist/warm-business/tokens.js +0 -37
  71. package/dist/warm-business/tokens.js.map +0 -1
  72. package/src/base/styles.css +0 -3061
  73. package/src/dark-tech/styles.css +0 -2969
  74. package/src/warm-business/styles.css +0 -2848
@@ -0,0 +1,5017 @@
1
+ /* lemonPPT - AI-powered presentation generation
2
+ * Copyright (c) 2026 lemonforme
3
+ * SPDX-License-Identifier: AGPL-3.0-or-later
4
+ */
5
+
6
+ @keyframes lp-theme02-pulse {
7
+ 0%, 100% { opacity: 0.7; transform: scale(1); }
8
+ 50% { opacity: 1; transform: scale(1.04); }
9
+ }
10
+
11
+ @keyframes lp-theme02-rise {
12
+ from { opacity: 0; transform: translateY(18px); }
13
+ to { opacity: 1; transform: translateY(0); }
14
+ }
15
+
16
+ @keyframes lp-theme02-glow-pulse {
17
+ 0%, 100% { box-shadow: 0 0 40px var(--lp-glow-accent-subtle), inset 0 0 30px var(--lp-glow-accent-subtle); }
18
+ 50% { box-shadow: 0 0 90px var(--lp-glow-accent), inset 0 0 60px var(--lp-glow-accent); }
19
+ }
20
+
21
+ @keyframes lp-theme02-text-glow {
22
+ 0%, 100% { text-shadow: 0 0 24px var(--lp-glow-accent-subtle); }
23
+ 50% { text-shadow: 0 0 60px var(--lp-glow-accent), 0 0 100px var(--lp-glow-accent-subtle); }
24
+ }
25
+
26
+ @keyframes lp-theme02-sweep {
27
+ 0% { transform: translateX(-120%) rotate(25deg); }
28
+ 100% { transform: translateX(120%) rotate(25deg); }
29
+ }
30
+
31
+ @keyframes lp-theme02-stroke-glow {
32
+ 0%, 100% { stroke-opacity: 0.55; filter: drop-shadow(0 0 2px var(--lp-glow-accent)); }
33
+ 50% { stroke-opacity: 1; filter: drop-shadow(0 0 10px var(--lp-glow-accent)); }
34
+ }
35
+
36
+ .lp-deck {
37
+ position: relative;
38
+ width: 100%;
39
+ height: 100%;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ }
44
+
45
+ .lp-slide-wrapper {
46
+ position: absolute;
47
+ top: 0;
48
+ left: 0;
49
+ width: 100%;
50
+ height: 100%;
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ opacity: 0;
55
+ z-index: 0;
56
+ }
57
+
58
+ /* ---- 幻灯片切换动画 ---- */
59
+
60
+ .lp-slide-wrapper.enter,
61
+ .lp-slide-wrapper.leave {
62
+ pointer-events: none;
63
+ }
64
+
65
+ .lp-deck[data-lp-transition="none"] .lp-slide-wrapper {
66
+ transition: opacity 80ms ease;
67
+ transform: none;
68
+ }
69
+ .lp-deck[data-lp-transition="none"] .lp-slide-wrapper.active {
70
+ opacity: 1;
71
+ z-index: 2;
72
+ }
73
+
74
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper,
75
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper {
76
+ transform: translateX(100%);
77
+ transition: transform 400ms ease-in-out, opacity 300ms ease;
78
+ }
79
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.active,
80
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.active {
81
+ opacity: 1;
82
+ transform: translateX(0);
83
+ z-index: 2;
84
+ }
85
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.prev,
86
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.prev {
87
+ opacity: 0;
88
+ transform: translateX(-100%);
89
+ z-index: 1;
90
+ }
91
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.active.leave,
92
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.active.leave {
93
+ opacity: 1;
94
+ transform: translateX(0);
95
+ z-index: 2;
96
+ }
97
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.leave,
98
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.leave {
99
+ opacity: 0;
100
+ transform: translateX(-100%);
101
+ z-index: 1;
102
+ }
103
+ .lp-deck:not([data-lp-transition]) .lp-slide-wrapper.enter,
104
+ .lp-deck[data-lp-transition="slide"] .lp-slide-wrapper.enter {
105
+ opacity: 0;
106
+ transform: translateX(100%);
107
+ z-index: 2;
108
+ }
109
+ .lp-deck[data-lp-transition="slide"][data-lp-direction="prev"] .lp-slide-wrapper.enter {
110
+ transform: translateX(-100%);
111
+ }
112
+ .lp-deck[data-lp-transition="slide"][data-lp-direction="prev"] .lp-slide-wrapper.leave {
113
+ transform: translateX(100%);
114
+ }
115
+
116
+ .lp-deck[data-lp-transition="fade"] .lp-slide-wrapper {
117
+ transform: none;
118
+ transition: opacity 400ms ease;
119
+ }
120
+ .lp-deck[data-lp-transition="fade"] .lp-slide-wrapper.active {
121
+ opacity: 1;
122
+ z-index: 2;
123
+ }
124
+
125
+ .lp-deck[data-lp-transition="scale"] .lp-slide-wrapper {
126
+ transform: none;
127
+ transition: transform 500ms ease-out, opacity 400ms ease;
128
+ }
129
+ .lp-deck[data-lp-transition="scale"] .lp-slide-wrapper.active {
130
+ opacity: 1;
131
+ transform: scale(1);
132
+ z-index: 2;
133
+ }
134
+ .lp-deck[data-lp-transition="scale"] .lp-slide-wrapper.leave {
135
+ opacity: 0;
136
+ transform: scale(1.05);
137
+ }
138
+ .lp-deck[data-lp-transition="scale"] .lp-slide-wrapper.enter {
139
+ opacity: 0;
140
+ transform: scale(0.9);
141
+ }
142
+ .lp-deck[data-lp-transition="scale"] .lp-slide-wrapper.active.enter {
143
+ opacity: 1;
144
+ transform: scale(1);
145
+ }
146
+
147
+ @media (prefers-reduced-motion: reduce) {
148
+ .lp-slide-wrapper,
149
+ .lp-deck[data-lp-transition] .lp-slide-wrapper {
150
+ transition: none !important;
151
+ }
152
+ }
153
+
154
+ .lp-slide {
155
+ position: relative;
156
+ width: 1280px;
157
+ height: 720px;
158
+ overflow: hidden;
159
+ color: var(--lp-ink);
160
+ background:
161
+ radial-gradient(circle at 86% -8%, var(--lp-glow-accent), transparent 42%),
162
+ radial-gradient(circle at 12% 110%, var(--lp-glow-cool), transparent 38%),
163
+ linear-gradient(160deg, var(--lp-bg-gradient-start) 0%, var(--lp-bg-gradient-end) 100%);
164
+ font-family: var(--lp-font);
165
+ }
166
+
167
+ .lp-rise {
168
+ animation: lp-theme02-rise 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both;
169
+ }
170
+
171
+ .lp-pill {
172
+ display: inline-flex;
173
+ align-items: center;
174
+ gap: 8px;
175
+ padding: 8px 16px;
176
+ border-radius: 999px;
177
+ background: var(--lp-surface);
178
+ border: 1px solid var(--lp-border);
179
+ font-family: var(--lp-font-mono);
180
+ font-size: 13px;
181
+ font-weight: 800;
182
+ letter-spacing: 0.06em;
183
+ text-transform: uppercase;
184
+ color: var(--lp-accent);
185
+ box-shadow: 0 0 18px var(--lp-glow-accent-subtle);
186
+ }
187
+
188
+ .lp-orb,
189
+ .lp-theme02-orb {
190
+ position: absolute;
191
+ border-radius: 50%;
192
+ filter: blur(60px);
193
+ pointer-events: none;
194
+ z-index: 0;
195
+ animation: lp-theme02-pulse 6s ease-in-out infinite;
196
+ }
197
+
198
+ .lp-orb--accent,
199
+ .lp-theme02-orb--accent {
200
+ width: 420px;
201
+ height: 420px;
202
+ background: var(--lp-glow-accent);
203
+ opacity: 0.22;
204
+ top: -12%;
205
+ right: -8%;
206
+ }
207
+
208
+ .lp-orb--cool,
209
+ .lp-theme02-orb--cool {
210
+ width: 360px;
211
+ height: 360px;
212
+ background: var(--lp-glow-cool);
213
+ opacity: 0.18;
214
+ bottom: -10%;
215
+ left: -6%;
216
+ }
217
+
218
+ /* ---- Cover v1 ---- */
219
+
220
+ .lp-theme02-cover-v1 {
221
+ display: flex;
222
+ align-items: center;
223
+ padding: 84px;
224
+ }
225
+
226
+ .lp-theme02-cover-layout {
227
+ position: relative;
228
+ z-index: 2;
229
+ width: 100%;
230
+ display: grid;
231
+ grid-template-columns: 1.15fr 0.85fr;
232
+ gap: 48px;
233
+ align-items: center;
234
+ }
235
+
236
+ .lp-theme02-cover-content {
237
+ display: flex;
238
+ flex-direction: column;
239
+ gap: 24px;
240
+ }
241
+
242
+ .lp-theme02-cover-kicker {
243
+ align-self: flex-start;
244
+ }
245
+
246
+ .lp-theme02-cover-title {
247
+ font-family: var(--lp-font);
248
+ font-size: 74px;
249
+ font-weight: 900;
250
+ line-height: 1.05;
251
+ letter-spacing: -0.02em;
252
+ margin: 0;
253
+ background: linear-gradient(135deg, var(--lp-ink) 0%, var(--lp-accent) 100%);
254
+ -webkit-background-clip: text;
255
+ background-clip: text;
256
+ -webkit-text-fill-color: transparent;
257
+ text-shadow: 0 0 40px var(--lp-glow-accent-subtle);
258
+ }
259
+
260
+ .lp-theme02-cover-subtitle {
261
+ font-size: 26px;
262
+ font-weight: 600;
263
+ line-height: 1.45;
264
+ color: var(--lp-ink2);
265
+ margin: 0;
266
+ max-width: 620px;
267
+ }
268
+
269
+ .lp-theme02-cover-meta {
270
+ display: flex;
271
+ gap: 18px;
272
+ margin-top: 12px;
273
+ flex-wrap: wrap;
274
+ }
275
+
276
+ .lp-theme02-cover-meta-item {
277
+ font-family: var(--lp-font-mono);
278
+ font-size: 14px;
279
+ font-weight: 700;
280
+ color: var(--lp-ink3);
281
+ padding: 10px 18px;
282
+ background: rgba(255, 255, 255, 0.05);
283
+ border: 1px solid var(--lp-border);
284
+ border-radius: var(--lp-radius-small);
285
+ }
286
+
287
+ .lp-theme02-cover-visual {
288
+ position: relative;
289
+ display: flex;
290
+ align-items: center;
291
+ justify-content: center;
292
+ }
293
+
294
+ .lp-theme02-cover-ring {
295
+ width: 340px;
296
+ height: 340px;
297
+ border-radius: 50%;
298
+ border: 1px solid var(--lp-border);
299
+ background: radial-gradient(circle at 40% 40%, rgba(255, 255, 255, 0.08), transparent 60%);
300
+ box-shadow:
301
+ inset 0 0 60px var(--lp-glow-accent-subtle),
302
+ 0 0 80px var(--lp-glow-accent-subtle);
303
+ display: flex;
304
+ align-items: center;
305
+ justify-content: center;
306
+ position: relative;
307
+ overflow: hidden;
308
+ animation: lp-theme02-glow-pulse 4s ease-in-out infinite;
309
+ }
310
+
311
+ .lp-theme02-cover-ring::before {
312
+ content: '';
313
+ position: absolute;
314
+ inset: -50%;
315
+ background: linear-gradient(
316
+ 115deg,
317
+ transparent 30%,
318
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 45%,
319
+ color-mix(in srgb, var(--lp-accent) 35%, transparent) 50%,
320
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 55%,
321
+ transparent 70%
322
+ );
323
+ animation: lp-theme02-sweep 5s linear infinite;
324
+ pointer-events: none;
325
+ }
326
+
327
+ .lp-theme02-cover-ring-inner {
328
+ width: 220px;
329
+ height: 220px;
330
+ border-radius: 50%;
331
+ border: 2px solid var(--lp-accent);
332
+ box-shadow: 0 0 40px var(--lp-glow-accent);
333
+ display: flex;
334
+ align-items: center;
335
+ justify-content: center;
336
+ position: relative;
337
+ z-index: 2;
338
+ animation: lp-theme02-text-glow 3s ease-in-out infinite;
339
+ }
340
+
341
+ .lp-theme02-cover-icon {
342
+ font-size: 80px;
343
+ line-height: 1;
344
+ }
345
+
346
+ /* ---- Chapter v1 ---- */
347
+
348
+ .lp-theme02-chapter-v1 {
349
+ display: flex;
350
+ align-items: center;
351
+ padding: 84px;
352
+ }
353
+
354
+ .lp-theme02-chapter-layout {
355
+ position: relative;
356
+ z-index: 2;
357
+ width: 100%;
358
+ display: grid;
359
+ grid-template-columns: 180px 1fr;
360
+ gap: 48px;
361
+ align-items: center;
362
+ }
363
+
364
+ .lp-theme02-chapter-number {
365
+ font-family: var(--lp-font-mono);
366
+ font-size: 180px;
367
+ font-weight: 900;
368
+ line-height: 1;
369
+ color: transparent;
370
+ -webkit-text-stroke: 2px var(--lp-accent);
371
+ text-shadow: 0 0 50px var(--lp-glow-accent);
372
+ animation: lp-theme02-text-glow 3.5s ease-in-out infinite;
373
+ }
374
+
375
+ .lp-theme02-chapter-content {
376
+ display: flex;
377
+ flex-direction: column;
378
+ gap: 20px;
379
+ }
380
+
381
+ .lp-theme02-chapter-label {
382
+ align-self: flex-start;
383
+ }
384
+
385
+ .lp-theme02-chapter-title {
386
+ font-family: var(--lp-font);
387
+ font-size: 68px;
388
+ font-weight: 900;
389
+ line-height: 1.08;
390
+ letter-spacing: -0.02em;
391
+ margin: 0;
392
+ color: var(--lp-ink);
393
+ }
394
+
395
+ .lp-theme02-chapter-description {
396
+ font-size: 24px;
397
+ font-weight: 600;
398
+ line-height: 1.5;
399
+ color: var(--lp-ink2);
400
+ margin: 0;
401
+ max-width: 720px;
402
+ }
403
+
404
+ /* ---- Metric Big v1 ---- */
405
+
406
+ .lp-theme02-metric-big-v1 {
407
+ display: flex;
408
+ align-items: center;
409
+ padding: 72px 84px;
410
+ }
411
+
412
+ .lp-theme02-metric-layout {
413
+ position: relative;
414
+ z-index: 2;
415
+ width: 100%;
416
+ display: flex;
417
+ flex-direction: column;
418
+ gap: 28px;
419
+ }
420
+
421
+ .lp-theme02-metric-header {
422
+ display: flex;
423
+ flex-direction: column;
424
+ gap: 14px;
425
+ }
426
+
427
+ .lp-theme02-metric-kicker {
428
+ align-self: flex-start;
429
+ }
430
+
431
+ .lp-theme02-metric-title {
432
+ font-size: 44px;
433
+ font-weight: 900;
434
+ line-height: 1.1;
435
+ letter-spacing: -0.01em;
436
+ margin: 0;
437
+ color: var(--lp-ink);
438
+ }
439
+
440
+ .lp-theme02-metric-value-wrap {
441
+ display: flex;
442
+ align-items: baseline;
443
+ gap: 18px;
444
+ }
445
+
446
+ .lp-theme02-metric-value {
447
+ font-family: var(--lp-font-mono);
448
+ font-size: 160px;
449
+ font-weight: 900;
450
+ line-height: 1;
451
+ letter-spacing: -0.04em;
452
+ margin: 0;
453
+ color: var(--lp-accent);
454
+ text-shadow: 0 0 40px var(--lp-glow-accent), 0 0 80px var(--lp-glow-accent-subtle);
455
+ }
456
+
457
+ .lp-theme02-metric-unit {
458
+ font-family: var(--lp-font-mono);
459
+ font-size: 42px;
460
+ font-weight: 700;
461
+ color: var(--lp-ink2);
462
+ }
463
+
464
+ .lp-theme02-metric-big {
465
+ padding: 72px 84px;
466
+ }
467
+
468
+ .lp-theme02-metric-context {
469
+ font-size: 22px;
470
+ font-weight: 600;
471
+ line-height: 1.55;
472
+ color: var(--lp-ink2);
473
+ margin: 0;
474
+ max-width: 820px;
475
+ }
476
+
477
+ .lp-theme02-metric-metrics {
478
+ display: grid;
479
+ grid-template-columns: repeat(4, 1fr);
480
+ gap: 20px;
481
+ margin-top: 20px;
482
+ }
483
+
484
+ .lp-theme02-metric-metric {
485
+ padding: 22px 24px;
486
+ background: rgba(255, 255, 255, 0.04);
487
+ border: 1px solid var(--lp-border);
488
+ border-radius: var(--lp-radius-medium);
489
+ display: flex;
490
+ flex-direction: column;
491
+ gap: 8px;
492
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
493
+ }
494
+
495
+ .lp-theme02-metric-metric:hover {
496
+ border-color: var(--lp-accent);
497
+ box-shadow: 0 0 20px var(--lp-glow-accent-subtle);
498
+ }
499
+
500
+ .lp-theme02-metric-metric--accent {
501
+ background: linear-gradient(135deg, color-mix(in srgb, var(--lp-accent) 12%, transparent), color-mix(in srgb, var(--lp-accent) 3%, transparent));
502
+ border-color: var(--lp-accent);
503
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
504
+ }
505
+
506
+ .lp-theme02-metric-metric-value {
507
+ font-family: var(--lp-font-mono);
508
+ font-size: 34px;
509
+ font-weight: 800;
510
+ color: var(--lp-ink);
511
+ }
512
+
513
+ .lp-theme02-metric-metric-label {
514
+ font-size: 14px;
515
+ font-weight: 700;
516
+ letter-spacing: 0.04em;
517
+ text-transform: uppercase;
518
+ color: var(--lp-ink3);
519
+ }
520
+
521
+ .lp-theme02-metric-footnote {
522
+ font-size: 13px;
523
+ color: var(--lp-ink3);
524
+ margin-top: 24px;
525
+ }
526
+
527
+ /* ---- Progress v1 ---- */
528
+
529
+ .lp-theme02-progress-v1 {
530
+ display: flex;
531
+ align-items: center;
532
+ padding: 72px 84px;
533
+ }
534
+
535
+ .lp-theme02-progress-card {
536
+ position: relative;
537
+ z-index: 2;
538
+ width: 100%;
539
+ display: flex;
540
+ flex-direction: column;
541
+ gap: 36px;
542
+ }
543
+
544
+ .lp-theme02-progress-header {
545
+ display: flex;
546
+ flex-direction: column;
547
+ gap: 14px;
548
+ }
549
+
550
+ .lp-theme02-progress-title {
551
+ font-size: 52px;
552
+ font-weight: 900;
553
+ line-height: 1.1;
554
+ letter-spacing: -0.01em;
555
+ margin: 0;
556
+ color: var(--lp-ink);
557
+ }
558
+
559
+ .lp-theme02-progress-subtitle {
560
+ font-size: 22px;
561
+ font-weight: 600;
562
+ color: var(--lp-ink2);
563
+ margin: 0;
564
+ max-width: 760px;
565
+ }
566
+
567
+ .lp-theme02-progress-list {
568
+ display: flex;
569
+ flex-direction: column;
570
+ gap: 28px;
571
+ }
572
+
573
+ .lp-theme02-progress-item {
574
+ display: flex;
575
+ flex-direction: column;
576
+ gap: 12px;
577
+ }
578
+
579
+ .lp-theme02-progress-meta {
580
+ display: flex;
581
+ align-items: baseline;
582
+ justify-content: space-between;
583
+ gap: 16px;
584
+ }
585
+
586
+ .lp-theme02-progress-label {
587
+ font-size: 20px;
588
+ font-weight: 800;
589
+ color: var(--lp-ink);
590
+ }
591
+
592
+ .lp-theme02-progress-value {
593
+ display: flex;
594
+ align-items: baseline;
595
+ gap: 8px;
596
+ font-family: var(--lp-font-mono);
597
+ }
598
+
599
+ .lp-theme02-progress-number {
600
+ font-size: 26px;
601
+ font-weight: 900;
602
+ color: var(--lp-ink);
603
+ }
604
+
605
+ .lp-theme02-progress-unit {
606
+ font-size: 14px;
607
+ font-weight: 700;
608
+ color: var(--lp-ink3);
609
+ }
610
+
611
+ .lp-theme02-progress-pct {
612
+ font-size: 18px;
613
+ font-weight: 800;
614
+ color: var(--lp-accent);
615
+ text-shadow: 0 0 12px var(--lp-glow-accent);
616
+ margin-left: 8px;
617
+ }
618
+
619
+ .lp-theme02-progress-bar {
620
+ position: relative;
621
+ height: 14px;
622
+ background: rgba(255, 255, 255, 0.06);
623
+ border-radius: 999px;
624
+ overflow: hidden;
625
+ border: 1px solid var(--lp-border);
626
+ }
627
+
628
+ .lp-theme02-progress-fill {
629
+ height: 100%;
630
+ border-radius: 999px;
631
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool));
632
+ box-shadow: 0 0 20px var(--lp-glow-accent);
633
+ transition: width 0.8s cubic-bezier(0.22, 1, 0.36, 1);
634
+ min-width: 4px;
635
+ }
636
+
637
+ .lp-theme02-progress-item:nth-child(2n) .lp-theme02-progress-fill {
638
+ background: linear-gradient(90deg, var(--lp-accent-cool), var(--lp-accent-2));
639
+ box-shadow: 0 0 20px var(--lp-glow-cool);
640
+ }
641
+
642
+ .lp-theme02-progress-item:nth-child(3n) .lp-theme02-progress-fill {
643
+ background: linear-gradient(90deg, var(--lp-accent-2), var(--lp-violet));
644
+ box-shadow: 0 0 20px var(--lp-glow-warm);
645
+ }
646
+
647
+ /* ---- Delta v1 ---- */
648
+
649
+ .lp-theme02-delta-v1 {
650
+ display: flex;
651
+ align-items: center;
652
+ padding: 72px 84px;
653
+ }
654
+
655
+ .lp-theme02-delta-card {
656
+ position: relative;
657
+ z-index: 2;
658
+ width: 100%;
659
+ display: flex;
660
+ flex-direction: column;
661
+ gap: 36px;
662
+ }
663
+
664
+ .lp-theme02-delta-header {
665
+ display: flex;
666
+ flex-direction: column;
667
+ gap: 14px;
668
+ }
669
+
670
+ .lp-theme02-delta-title {
671
+ font-size: 52px;
672
+ font-weight: 900;
673
+ line-height: 1.1;
674
+ letter-spacing: -0.01em;
675
+ margin: 0;
676
+ color: var(--lp-ink);
677
+ }
678
+
679
+ .lp-theme02-delta-subtitle {
680
+ font-size: 22px;
681
+ font-weight: 600;
682
+ color: var(--lp-ink2);
683
+ margin: 0;
684
+ max-width: 760px;
685
+ }
686
+
687
+ .lp-theme02-delta-grid {
688
+ display: grid;
689
+ grid-template-columns: repeat(3, 1fr);
690
+ gap: 24px;
691
+ }
692
+
693
+ .lp-theme02-delta-item {
694
+ position: relative;
695
+ padding: 20px;
696
+ background: var(--lp-surface);
697
+ border: 1px solid var(--lp-border);
698
+ border-radius: var(--lp-radius-large);
699
+ box-shadow: var(--lp-shadow);
700
+ display: flex;
701
+ flex-direction: column;
702
+ gap: 14px;
703
+ overflow: hidden;
704
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
705
+ }
706
+
707
+ .lp-theme02-delta-item:hover {
708
+ border-color: var(--lp-accent);
709
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
710
+ }
711
+
712
+ .lp-theme02-delta-item::before {
713
+ content: '';
714
+ position: absolute;
715
+ top: 0;
716
+ left: 0;
717
+ right: 0;
718
+ height: 3px;
719
+ background: var(--lp-accent);
720
+ box-shadow: 0 0 16px var(--lp-glow-accent);
721
+ }
722
+
723
+ .lp-theme02-delta-item--down::before {
724
+ background: var(--lp-accent-2);
725
+ box-shadow: 0 0 16px var(--lp-glow-warm);
726
+ }
727
+
728
+ .lp-theme02-delta-label {
729
+ font-size: 18px;
730
+ font-weight: 800;
731
+ color: var(--lp-ink);
732
+ }
733
+
734
+ .lp-theme02-delta-values {
735
+ display: flex;
736
+ align-items: center;
737
+ gap: 16px;
738
+ }
739
+
740
+ .lp-theme02-delta-previous,
741
+ .lp-theme02-delta-current {
742
+ display: flex;
743
+ flex-direction: column;
744
+ gap: 4px;
745
+ font-family: var(--lp-font-mono);
746
+ }
747
+
748
+ .lp-theme02-delta-previous {
749
+ color: var(--lp-ink3);
750
+ }
751
+
752
+ .lp-theme02-delta-current {
753
+ color: var(--lp-ink);
754
+ }
755
+
756
+ .lp-theme02-delta-value-label {
757
+ font-size: 11px;
758
+ font-weight: 800;
759
+ letter-spacing: 0.08em;
760
+ text-transform: uppercase;
761
+ color: var(--lp-ink3);
762
+ }
763
+
764
+ .lp-theme02-delta-value-number {
765
+ font-size: 32px;
766
+ font-weight: 900;
767
+ line-height: 1;
768
+ }
769
+
770
+ .lp-theme02-delta-previous .lp-theme02-delta-value-number {
771
+ color: var(--lp-ink3);
772
+ text-decoration: line-through;
773
+ text-decoration-color: var(--lp-border);
774
+ }
775
+
776
+ .lp-theme02-delta-current .lp-theme02-delta-value-number {
777
+ color: var(--lp-ink);
778
+ }
779
+
780
+ .lp-theme02-delta-value-unit {
781
+ font-size: 13px;
782
+ font-weight: 700;
783
+ color: var(--lp-ink3);
784
+ }
785
+
786
+ .lp-theme02-delta-arrow {
787
+ width: 28px;
788
+ height: 28px;
789
+ flex-shrink: 0;
790
+ color: var(--lp-accent);
791
+ }
792
+
793
+ .lp-theme02-delta-item--down .lp-theme02-delta-arrow {
794
+ color: var(--lp-accent-2);
795
+ }
796
+
797
+ .lp-theme02-delta-arrow svg {
798
+ width: 100%;
799
+ height: 100%;
800
+ filter: drop-shadow(0 0 8px currentColor);
801
+ }
802
+
803
+ .lp-theme02-delta-change {
804
+ margin-top: auto;
805
+ }
806
+
807
+ .lp-theme02-delta-change-badge {
808
+ display: inline-flex;
809
+ align-items: center;
810
+ padding: 8px 14px;
811
+ border-radius: 999px;
812
+ font-family: var(--lp-font-mono);
813
+ font-size: 14px;
814
+ font-weight: 900;
815
+ background: color-mix(in srgb, var(--lp-accent) 14%, transparent);
816
+ color: var(--lp-accent);
817
+ border: 1px solid var(--lp-accent);
818
+ box-shadow: 0 0 16px var(--lp-glow-accent-subtle);
819
+ }
820
+
821
+ .lp-theme02-delta-item--down .lp-theme02-delta-change-badge {
822
+ background: color-mix(in srgb, var(--lp-accent-2) 14%, transparent);
823
+ color: var(--lp-accent-2);
824
+ border-color: var(--lp-accent-2);
825
+ box-shadow: 0 0 16px var(--lp-glow-warm-subtle);
826
+ }
827
+
828
+ .lp-theme02-delta-footnote {
829
+ font-size: 13px;
830
+ color: var(--lp-ink3);
831
+ margin-top: 8px;
832
+ }
833
+
834
+ /* ---- Chart v1 ---- */
835
+
836
+ .lp-theme02-chart-v1 {
837
+ padding: 72px 84px 68px;
838
+ }
839
+
840
+ .lp-theme02-chart-layout {
841
+ position: relative;
842
+ z-index: 2;
843
+ width: 100%;
844
+ height: 100%;
845
+ display: grid;
846
+ grid-template-columns: 1fr 300px;
847
+ gap: 28px;
848
+ }
849
+
850
+ .lp-theme02-chart-main {
851
+ display: flex;
852
+ flex-direction: column;
853
+ min-width: 0;
854
+ }
855
+
856
+ .lp-theme02-chart-header {
857
+ display: flex;
858
+ flex-direction: column;
859
+ gap: 14px;
860
+ margin-bottom: 18px;
861
+ }
862
+
863
+ .lp-theme02-chart-title {
864
+ font-size: 44px;
865
+ font-weight: 900;
866
+ line-height: 1.1;
867
+ letter-spacing: -0.01em;
868
+ margin: 0;
869
+ color: var(--lp-ink);
870
+ }
871
+
872
+ .lp-theme02-chart-subtitle {
873
+ font-size: 20px;
874
+ font-weight: 600;
875
+ color: var(--lp-ink2);
876
+ margin: 0;
877
+ }
878
+
879
+ .lp-theme02-chart-unit {
880
+ font-family: var(--lp-font-mono);
881
+ font-size: 13px;
882
+ font-weight: 700;
883
+ color: var(--lp-ink3);
884
+ margin-bottom: 8px;
885
+ letter-spacing: 0.04em;
886
+ }
887
+
888
+ .lp-theme02-chart-svg {
889
+ width: 100%;
890
+ height: 360px;
891
+ flex: 1;
892
+ }
893
+
894
+ .lp-theme02-chart-empty {
895
+ flex: 1;
896
+ display: flex;
897
+ align-items: center;
898
+ justify-content: center;
899
+ color: var(--lp-ink3);
900
+ font-size: 18px;
901
+ border: 2px dashed var(--lp-border);
902
+ border-radius: var(--lp-radius-medium);
903
+ }
904
+
905
+ .lp-theme02-chart-footnote {
906
+ font-size: 13px;
907
+ color: var(--lp-ink3);
908
+ margin-top: 14px;
909
+ }
910
+
911
+ .lp-theme02-insight-panel {
912
+ width: 280px;
913
+ flex: none;
914
+ padding: 32px 28px;
915
+ background: var(--lp-surface);
916
+ border: 1px solid var(--lp-border);
917
+ border-radius: var(--lp-radius-large);
918
+ box-shadow: var(--lp-shadow), 0 0 32px var(--lp-glow-accent-subtle);
919
+ display: flex;
920
+ flex-direction: column;
921
+ gap: 16px;
922
+ position: relative;
923
+ overflow: hidden;
924
+ }
925
+
926
+ .lp-theme02-insight-panel::before {
927
+ content: '';
928
+ position: absolute;
929
+ top: 0;
930
+ left: 0;
931
+ right: 0;
932
+ height: 3px;
933
+ background: var(--lp-accent);
934
+ box-shadow: 0 0 16px var(--lp-glow-accent);
935
+ }
936
+
937
+ .lp-theme02-insight-value {
938
+ font-family: var(--lp-font-mono);
939
+ font-size: 44px;
940
+ font-weight: 900;
941
+ line-height: 1;
942
+ color: var(--lp-accent);
943
+ text-shadow: 0 0 24px var(--lp-glow-accent);
944
+ }
945
+
946
+ .lp-theme02-insight-label {
947
+ font-size: 15px;
948
+ font-weight: 700;
949
+ letter-spacing: 0.04em;
950
+ text-transform: uppercase;
951
+ color: var(--lp-ink3);
952
+ }
953
+
954
+ .lp-theme02-insight-description {
955
+ font-size: 15px;
956
+ font-weight: 600;
957
+ line-height: 1.65;
958
+ color: var(--lp-ink2);
959
+ margin: auto 0 0;
960
+ }
961
+
962
+ .lp-theme02-metric-big--insight,
963
+ .lp-theme02-metrics-v1--insight,
964
+ .lp-theme02-stats-v1--insight,
965
+ .lp-theme02-bento-v1--insight,
966
+ .lp-theme02-delta-v1--insight {
967
+ display: flex;
968
+ flex-direction: row;
969
+ gap: 24px;
970
+ align-items: stretch;
971
+ padding: 56px 64px;
972
+ }
973
+
974
+ .lp-theme02-metric-big--insight .lp-theme02-metric-card,
975
+ .lp-theme02-metrics-v1--insight .lp-theme02-metrics-main,
976
+ .lp-theme02-stats-v1--insight .lp-theme02-stats-main,
977
+ .lp-theme02-bento-v1--insight .lp-theme02-bento-main,
978
+ .lp-theme02-delta-v1--insight .lp-theme02-delta-main {
979
+ flex: 1;
980
+ min-width: 0;
981
+ min-height: 0;
982
+ display: flex;
983
+ flex-direction: column;
984
+ }
985
+
986
+ .lp-theme02-chart-insight {
987
+ padding: 32px;
988
+ background: var(--lp-surface);
989
+ border: 1px solid var(--lp-border);
990
+ border-radius: var(--lp-radius-large);
991
+ box-shadow: var(--lp-shadow);
992
+ display: flex;
993
+ flex-direction: column;
994
+ gap: 24px;
995
+ }
996
+
997
+ .lp-theme02-chart-insight-headline {
998
+ display: flex;
999
+ flex-direction: column;
1000
+ gap: 6px;
1001
+ }
1002
+
1003
+ .lp-theme02-chart-insight-value {
1004
+ font-family: var(--lp-font-mono);
1005
+ font-size: 48px;
1006
+ font-weight: 900;
1007
+ line-height: 1;
1008
+ color: var(--lp-accent);
1009
+ text-shadow: 0 0 20px var(--lp-glow-accent);
1010
+ }
1011
+
1012
+ .lp-theme02-chart-insight-sub {
1013
+ font-size: 14px;
1014
+ font-weight: 700;
1015
+ letter-spacing: 0.06em;
1016
+ text-transform: uppercase;
1017
+ color: var(--lp-ink3);
1018
+ }
1019
+
1020
+ .lp-theme02-chart-insight-badge {
1021
+ align-self: flex-start;
1022
+ }
1023
+
1024
+ .lp-theme02-chart-insight-badge--cool {
1025
+ background: var(--lp-accent-cool);
1026
+ box-shadow: 0 4px 16px var(--lp-glow-cool-subtle);
1027
+ }
1028
+
1029
+ .lp-theme02-chart-insight-badge--accent2 {
1030
+ background: var(--lp-accent-2);
1031
+ box-shadow: 0 4px 16px var(--lp-glow-warm-subtle);
1032
+ }
1033
+
1034
+ .lp-theme02-chart-insight-items {
1035
+ display: flex;
1036
+ flex-direction: column;
1037
+ gap: 16px;
1038
+ margin-top: auto;
1039
+ }
1040
+
1041
+ .lp-theme02-chart-insight-item {
1042
+ display: flex;
1043
+ justify-content: space-between;
1044
+ align-items: center;
1045
+ padding-bottom: 14px;
1046
+ border-bottom: 1px solid var(--lp-border);
1047
+ }
1048
+
1049
+ .lp-theme02-chart-insight-item:last-child {
1050
+ border-bottom: none;
1051
+ padding-bottom: 0;
1052
+ }
1053
+
1054
+ .lp-theme02-chart-insight-label {
1055
+ font-size: 15px;
1056
+ font-weight: 600;
1057
+ color: var(--lp-ink2);
1058
+ }
1059
+
1060
+ .lp-theme02-chart-insight-item-value {
1061
+ font-family: var(--lp-font-mono);
1062
+ font-size: 18px;
1063
+ font-weight: 800;
1064
+ color: var(--lp-ink);
1065
+ }
1066
+
1067
+ /* ---- Chart Funnel ---- */
1068
+
1069
+ .lp-theme02-chart-funnel {
1070
+ padding: 72px 84px 68px;
1071
+ }
1072
+
1073
+ .lp-theme02-chart-funnel .lp-theme02-chart-wrapper {
1074
+ position: relative;
1075
+ flex: 1;
1076
+ min-height: 360px;
1077
+ border-radius: var(--lp-radius-large);
1078
+ background: var(--lp-surface);
1079
+ border: 1px solid var(--lp-border);
1080
+ box-shadow: var(--lp-shadow-sm);
1081
+ overflow: hidden;
1082
+ }
1083
+
1084
+ .lp-theme02-chart-funnel .lp-theme02-chart-wrapper::before {
1085
+ content: '';
1086
+ position: absolute;
1087
+ inset: 0;
1088
+ pointer-events: none;
1089
+ border-radius: inherit;
1090
+ box-shadow: inset 0 0 60px var(--lp-glow-accent-subtle);
1091
+ opacity: 0.5;
1092
+ }
1093
+
1094
+ .lp-theme02-chart-funnel-description {
1095
+ font-size: 16px;
1096
+ line-height: 1.65;
1097
+ color: var(--lp-ink2);
1098
+ margin-top: auto;
1099
+ }
1100
+
1101
+ /* ---- Chart Donut ---- */
1102
+
1103
+ .lp-theme02-chart-donut {
1104
+ padding: 72px 84px 68px;
1105
+ justify-content: center;
1106
+ }
1107
+
1108
+ .lp-theme02-chart-donut-card {
1109
+ width: 100%;
1110
+ height: 100%;
1111
+ display: flex;
1112
+ flex-direction: column;
1113
+ gap: 28px;
1114
+ }
1115
+
1116
+ .lp-theme02-chart-donut-header {
1117
+ display: flex;
1118
+ flex-direction: column;
1119
+ gap: 14px;
1120
+ }
1121
+
1122
+ .lp-theme02-chart-donut-title {
1123
+ font-size: 44px;
1124
+ font-weight: 900;
1125
+ line-height: 1.1;
1126
+ letter-spacing: -0.01em;
1127
+ margin: 0;
1128
+ color: var(--lp-ink);
1129
+ }
1130
+
1131
+ .lp-theme02-chart-donut-subtitle {
1132
+ font-size: 20px;
1133
+ font-weight: 600;
1134
+ color: var(--lp-ink2);
1135
+ margin: 0;
1136
+ }
1137
+
1138
+ .lp-theme02-chart-donut-body {
1139
+ display: flex;
1140
+ align-items: center;
1141
+ justify-content: center;
1142
+ flex: 1;
1143
+ min-height: 0;
1144
+ }
1145
+
1146
+ .lp-theme02-chart-donut-side {
1147
+ display: flex;
1148
+ flex-direction: column;
1149
+ gap: 20px;
1150
+ min-width: 0;
1151
+ }
1152
+
1153
+ .lp-theme02-chart-donut-insight {
1154
+ flex-shrink: 0;
1155
+ }
1156
+
1157
+ .lp-theme02-chart-donut-chart {
1158
+ position: relative;
1159
+ flex: 1;
1160
+ display: flex;
1161
+ align-items: center;
1162
+ justify-content: center;
1163
+ min-width: 0;
1164
+ }
1165
+
1166
+ .lp-theme02-chart-donut-svg {
1167
+ width: 100%;
1168
+ max-width: 360px;
1169
+ height: auto;
1170
+ overflow: visible;
1171
+ animation: lp-theme02-donut-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
1172
+ }
1173
+
1174
+ .lp-theme02-chart-donut-ring {
1175
+ transform-origin: center;
1176
+ transform: rotate(-90deg);
1177
+ animation: lp-theme02-donut-ring-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
1178
+ transition: filter 0.2s ease, stroke-width 0.2s ease;
1179
+ cursor: pointer;
1180
+ }
1181
+
1182
+ .lp-theme02-chart-donut-ring:hover {
1183
+ filter: brightness(1.12);
1184
+ stroke-width: 54;
1185
+ }
1186
+
1187
+ @keyframes lp-theme02-donut-in {
1188
+ from { opacity: 0; transform: scale(0.92); }
1189
+ to { opacity: 1; transform: scale(1); }
1190
+ }
1191
+
1192
+ @keyframes lp-theme02-donut-ring-in {
1193
+ from { stroke-dasharray: 0 2000; }
1194
+ }
1195
+
1196
+ .lp-theme02-chart-donut-center {
1197
+ position: absolute;
1198
+ top: 50%;
1199
+ left: 50%;
1200
+ transform: translate(-50%, -50%);
1201
+ text-align: center;
1202
+ pointer-events: none;
1203
+ }
1204
+
1205
+ .lp-theme02-chart-donut-total-value {
1206
+ font-size: 52px;
1207
+ font-weight: 900;
1208
+ line-height: 1;
1209
+ letter-spacing: -0.02em;
1210
+ color: var(--lp-ink);
1211
+ text-shadow: 0 0 24px var(--lp-glow-accent-subtle);
1212
+ }
1213
+
1214
+ .lp-theme02-chart-donut-total-label {
1215
+ font-size: 13px;
1216
+ font-weight: 700;
1217
+ color: var(--lp-ink3);
1218
+ letter-spacing: 0.1em;
1219
+ text-transform: uppercase;
1220
+ margin-top: 6px;
1221
+ font-family: var(--lp-font-mono);
1222
+ }
1223
+
1224
+ .lp-theme02-chart-donut-legend {
1225
+ flex: 1;
1226
+ display: flex;
1227
+ flex-direction: column;
1228
+ gap: 14px;
1229
+ min-width: 0;
1230
+ }
1231
+
1232
+ .lp-theme02-chart-donut-legend-item {
1233
+ display: flex;
1234
+ align-items: center;
1235
+ gap: 14px;
1236
+ padding: 14px 18px;
1237
+ background: var(--lp-surface);
1238
+ border: 1px solid var(--lp-border);
1239
+ border-radius: var(--lp-radius-medium);
1240
+ box-shadow: var(--lp-shadow-sm);
1241
+ animation: lp-theme02-donut-item-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
1242
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
1243
+ }
1244
+
1245
+ .lp-theme02-chart-donut-legend-item:hover {
1246
+ transform: translateY(-2px);
1247
+ box-shadow: var(--lp-shadow), 0 0 24px var(--lp-glow-accent-subtle);
1248
+ }
1249
+
1250
+ @keyframes lp-theme02-donut-item-in {
1251
+ from { opacity: 0; transform: translateX(16px); }
1252
+ to { opacity: 1; transform: translateX(0); }
1253
+ }
1254
+
1255
+ .lp-theme02-chart-donut-legend-dot {
1256
+ width: 14px;
1257
+ height: 14px;
1258
+ border-radius: 4px;
1259
+ flex-shrink: 0;
1260
+ box-shadow: 0 0 10px currentColor;
1261
+ }
1262
+
1263
+ .lp-theme02-chart-donut-legend-text {
1264
+ flex: 1;
1265
+ min-width: 0;
1266
+ }
1267
+
1268
+ .lp-theme02-chart-donut-legend-label {
1269
+ font-size: 17px;
1270
+ font-weight: 800;
1271
+ color: var(--lp-ink);
1272
+ }
1273
+
1274
+ .lp-theme02-chart-donut-legend-en {
1275
+ font-size: 12px;
1276
+ color: var(--lp-ink3);
1277
+ letter-spacing: 0.04em;
1278
+ margin-top: 2px;
1279
+ font-family: var(--lp-font-mono);
1280
+ }
1281
+
1282
+ .lp-theme02-chart-donut-legend-numbers {
1283
+ text-align: right;
1284
+ flex-shrink: 0;
1285
+ }
1286
+
1287
+ .lp-theme02-chart-donut-legend-percent {
1288
+ font-size: 20px;
1289
+ font-weight: 900;
1290
+ color: var(--lp-accent);
1291
+ font-family: var(--lp-font-mono);
1292
+ text-shadow: 0 0 12px var(--lp-glow-accent-subtle);
1293
+ }
1294
+
1295
+ .lp-theme02-chart-donut-legend-value {
1296
+ font-size: 13px;
1297
+ color: var(--lp-ink3);
1298
+ margin-top: 2px;
1299
+ font-family: var(--lp-font-mono);
1300
+ }
1301
+
1302
+ .lp-theme02-chart-donut-footnote {
1303
+ font-size: 13px;
1304
+ color: var(--lp-ink3);
1305
+ text-align: right;
1306
+ font-family: var(--lp-font-mono);
1307
+ margin-top: 8px;
1308
+ }
1309
+
1310
+ /* ---- Chart Heatmap ---- */
1311
+
1312
+ .lp-theme02-chart-heatmap {
1313
+ padding: 72px 84px 68px;
1314
+ }
1315
+
1316
+ .lp-theme02-chart-heatmap .lp-theme02-chart-wrapper {
1317
+ position: relative;
1318
+ flex: 1;
1319
+ min-height: 360px;
1320
+ border-radius: var(--lp-radius-large);
1321
+ background: var(--lp-surface);
1322
+ border: 1px solid var(--lp-border);
1323
+ box-shadow: var(--lp-shadow-sm);
1324
+ overflow: hidden;
1325
+ }
1326
+
1327
+ .lp-theme02-chart-heatmap .lp-theme02-chart-wrapper::before {
1328
+ content: '';
1329
+ position: absolute;
1330
+ inset: 0;
1331
+ pointer-events: none;
1332
+ border-radius: inherit;
1333
+ box-shadow: inset 0 0 60px var(--lp-glow-accent-subtle);
1334
+ opacity: 0.4;
1335
+ }
1336
+
1337
+ /* ---- Chart Radar ---- */
1338
+
1339
+ .lp-theme02-chart-radar {
1340
+ padding: 72px 84px 68px;
1341
+ }
1342
+
1343
+ .lp-theme02-chart-radar .lp-theme02-chart-wrapper {
1344
+ position: relative;
1345
+ flex: 1;
1346
+ min-height: 360px;
1347
+ border-radius: var(--lp-radius-large);
1348
+ background: var(--lp-surface);
1349
+ border: 1px solid var(--lp-border);
1350
+ box-shadow: var(--lp-shadow-sm);
1351
+ overflow: hidden;
1352
+ }
1353
+
1354
+ .lp-theme02-chart-radar .lp-theme02-chart-wrapper::before {
1355
+ content: '';
1356
+ position: absolute;
1357
+ inset: 0;
1358
+ pointer-events: none;
1359
+ border-radius: inherit;
1360
+ box-shadow: inset 0 0 60px var(--lp-glow-accent-subtle);
1361
+ opacity: 0.4;
1362
+ }
1363
+
1364
+ /* ---- Chart Gauge ---- */
1365
+
1366
+ .lp-theme02-chart-gauge {
1367
+ padding: 72px 84px 68px;
1368
+ }
1369
+
1370
+ .lp-theme02-chart-gauge .lp-theme02-chart-wrapper {
1371
+ position: relative;
1372
+ flex: 1;
1373
+ min-height: 360px;
1374
+ border-radius: var(--lp-radius-large);
1375
+ background: var(--lp-surface);
1376
+ border: 1px solid var(--lp-border);
1377
+ box-shadow: var(--lp-shadow-sm);
1378
+ overflow: hidden;
1379
+ }
1380
+
1381
+ .lp-theme02-chart-gauge .lp-theme02-chart-wrapper::before {
1382
+ content: '';
1383
+ position: absolute;
1384
+ inset: 0;
1385
+ pointer-events: none;
1386
+ border-radius: inherit;
1387
+ box-shadow: inset 0 0 80px var(--lp-glow-accent-subtle);
1388
+ opacity: 0.5;
1389
+ }
1390
+
1391
+ /* ---- Content v1 ---- */
1392
+
1393
+ .lp-theme02-content-v1 {
1394
+ display: flex;
1395
+ align-items: center;
1396
+ justify-content: center;
1397
+ }
1398
+
1399
+ .lp-theme02-content-card {
1400
+ width: 100%;
1401
+ height: 100%;
1402
+ padding: 64px 80px;
1403
+ display: flex;
1404
+ flex-direction: column;
1405
+ }
1406
+
1407
+ .lp-theme02-content-header {
1408
+ display: flex;
1409
+ flex-direction: column;
1410
+ gap: 16px;
1411
+ margin-bottom: 44px;
1412
+ }
1413
+
1414
+ .lp-theme02-content-title {
1415
+ font-size: 52px;
1416
+ font-weight: 900;
1417
+ line-height: 1.1;
1418
+ letter-spacing: -0.01em;
1419
+ margin: 0;
1420
+ color: var(--lp-ink);
1421
+ }
1422
+
1423
+ .lp-theme02-content-subtitle {
1424
+ font-size: 24px;
1425
+ font-weight: 600;
1426
+ color: var(--lp-ink2);
1427
+ margin: 0;
1428
+ max-width: 820px;
1429
+ }
1430
+
1431
+ .lp-theme02-bullet-list {
1432
+ list-style: none;
1433
+ padding: 0;
1434
+ margin: 0;
1435
+ display: flex;
1436
+ flex-direction: column;
1437
+ gap: 22px;
1438
+ }
1439
+
1440
+ .lp-theme02-bullet-list li {
1441
+ position: relative;
1442
+ padding-left: 34px;
1443
+ font-size: 26px;
1444
+ font-weight: 600;
1445
+ line-height: 1.5;
1446
+ color: var(--lp-ink);
1447
+ }
1448
+
1449
+ .lp-theme02-bullet-list li::before {
1450
+ content: '';
1451
+ position: absolute;
1452
+ left: 0;
1453
+ top: 14px;
1454
+ width: 12px;
1455
+ height: 12px;
1456
+ border-radius: 50%;
1457
+ background: var(--lp-accent);
1458
+ box-shadow: 0 0 16px var(--lp-glow-accent);
1459
+ }
1460
+
1461
+ .lp-theme02-bullet-list li:nth-child(2n)::before {
1462
+ background: var(--lp-accent-cool);
1463
+ box-shadow: 0 0 16px var(--lp-glow-cool);
1464
+ }
1465
+
1466
+ .lp-theme02-bullet-list li:nth-child(3n)::before {
1467
+ background: var(--lp-accent-2);
1468
+ box-shadow: 0 0 16px var(--lp-glow-warm);
1469
+ }
1470
+
1471
+ /* ---- Closing v1 ---- */
1472
+
1473
+ .lp-theme02-closing-v1 {
1474
+ display: flex;
1475
+ align-items: center;
1476
+ justify-content: center;
1477
+ text-align: center;
1478
+ }
1479
+
1480
+ .lp-theme02-closing-content {
1481
+ position: relative;
1482
+ z-index: 2;
1483
+ max-width: 960px;
1484
+ display: flex;
1485
+ flex-direction: column;
1486
+ align-items: center;
1487
+ gap: 28px;
1488
+ }
1489
+
1490
+ .lp-theme02-closing-title {
1491
+ font-size: 82px;
1492
+ font-weight: 900;
1493
+ line-height: 1.05;
1494
+ letter-spacing: -0.02em;
1495
+ margin: 0;
1496
+ color: var(--lp-ink);
1497
+ }
1498
+
1499
+ .lp-theme02-closing-subtitle {
1500
+ font-size: 28px;
1501
+ font-weight: 600;
1502
+ line-height: 1.45;
1503
+ color: var(--lp-ink2);
1504
+ margin: 0;
1505
+ max-width: 760px;
1506
+ }
1507
+
1508
+ .lp-theme02-closing-cta {
1509
+ margin-top: 16px;
1510
+ padding: 18px 42px;
1511
+ font-size: 22px;
1512
+ font-weight: 800;
1513
+ letter-spacing: 0.04em;
1514
+ color: var(--lp-text-inverse);
1515
+ background: linear-gradient(135deg, var(--lp-accent), var(--lp-accent-cool));
1516
+ border-radius: var(--lp-radius-small);
1517
+ box-shadow:
1518
+ inset 0 1px 0 rgba(255, 255, 255, 0.25),
1519
+ 0 8px 32px var(--lp-glow-accent);
1520
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
1521
+ }
1522
+
1523
+ .lp-theme02-closing-cta:hover {
1524
+ transform: translateY(-2px);
1525
+ box-shadow:
1526
+ inset 0 1px 0 rgba(255, 255, 255, 0.3),
1527
+ 0 12px 40px var(--lp-glow-accent);
1528
+ }
1529
+
1530
+ .lp-theme02-closing-contacts {
1531
+ display: flex;
1532
+ gap: 28px;
1533
+ margin-top: 24px;
1534
+ flex-wrap: wrap;
1535
+ justify-content: center;
1536
+ }
1537
+
1538
+ .lp-theme02-closing-contact,
1539
+ .lp-theme02-closing-email,
1540
+ .lp-theme02-closing-link {
1541
+ font-family: var(--lp-font-mono);
1542
+ font-size: 15px;
1543
+ font-weight: 600;
1544
+ color: var(--lp-ink2);
1545
+ padding: 10px 18px;
1546
+ background: rgba(255, 255, 255, 0.05);
1547
+ border: 1px solid var(--lp-border);
1548
+ border-radius: var(--lp-radius-small);
1549
+ }
1550
+
1551
+ /* ---- Non-MVP layouts for theme02 ---- */
1552
+
1553
+ /* ---- Table of Contents v1 ---- */
1554
+ .lp-theme02-toc-v1 {
1555
+ display: flex;
1556
+ flex-direction: column;
1557
+ padding: 72px 84px;
1558
+ overflow: hidden;
1559
+ }
1560
+
1561
+ .lp-theme02-toc-glow {
1562
+ position: absolute;
1563
+ right: -20%;
1564
+ top: -30%;
1565
+ width: 70%;
1566
+ height: 90%;
1567
+ background: radial-gradient(ellipse at center, var(--lp-glow-accent) 0%, transparent 60%);
1568
+ opacity: 0.25;
1569
+ pointer-events: none;
1570
+ z-index: 0;
1571
+ }
1572
+
1573
+ .lp-theme02-toc-header {
1574
+ position: relative;
1575
+ z-index: 2;
1576
+ display: flex;
1577
+ flex-direction: column;
1578
+ gap: 16px;
1579
+ margin-bottom: 52px;
1580
+ }
1581
+
1582
+ .lp-theme02-toc-title {
1583
+ font-size: 56px;
1584
+ font-weight: 900;
1585
+ line-height: 1.1;
1586
+ letter-spacing: -0.01em;
1587
+ margin: 0;
1588
+ color: var(--lp-ink);
1589
+ }
1590
+
1591
+ .lp-theme02-toc-subtitle {
1592
+ font-size: 24px;
1593
+ font-weight: 600;
1594
+ color: var(--lp-ink2);
1595
+ margin: 0;
1596
+ max-width: 760px;
1597
+ }
1598
+
1599
+ .lp-theme02-toc-list {
1600
+ position: relative;
1601
+ z-index: 2;
1602
+ list-style: none;
1603
+ padding: 0;
1604
+ margin: 0;
1605
+ display: grid;
1606
+ grid-template-columns: repeat(2, 1fr);
1607
+ gap: 18px;
1608
+ }
1609
+
1610
+ .lp-theme02-toc-item {
1611
+ display: flex;
1612
+ align-items: center;
1613
+ gap: 18px;
1614
+ padding: 22px 24px;
1615
+ background: var(--lp-surface);
1616
+ border: 1px solid var(--lp-border);
1617
+ border-radius: var(--lp-radius-medium);
1618
+ box-shadow: var(--lp-shadow);
1619
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1620
+ }
1621
+
1622
+ .lp-theme02-toc-item:hover {
1623
+ border-color: var(--lp-accent);
1624
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
1625
+ }
1626
+
1627
+ .lp-theme02-toc-number {
1628
+ font-family: var(--lp-font-mono);
1629
+ font-size: 28px;
1630
+ font-weight: 900;
1631
+ color: var(--lp-accent);
1632
+ text-shadow: 0 0 18px var(--lp-glow-accent);
1633
+ min-width: 48px;
1634
+ }
1635
+
1636
+ .lp-theme02-toc-text {
1637
+ flex: 1;
1638
+ font-size: 22px;
1639
+ font-weight: 700;
1640
+ color: var(--lp-ink);
1641
+ }
1642
+
1643
+ .lp-theme02-toc-page {
1644
+ font-family: var(--lp-font-mono);
1645
+ font-size: 16px;
1646
+ font-weight: 700;
1647
+ color: var(--lp-ink3);
1648
+ }
1649
+
1650
+ /* ---- Metrics v1 ---- */
1651
+ .lp-theme02-metrics-v1 {
1652
+ display: flex;
1653
+ flex-direction: column;
1654
+ padding: 72px 84px;
1655
+ }
1656
+
1657
+ .lp-theme02-metrics-header {
1658
+ display: flex;
1659
+ flex-direction: column;
1660
+ gap: 14px;
1661
+ margin-bottom: 44px;
1662
+ }
1663
+
1664
+ .lp-theme02-metrics-title {
1665
+ font-size: 52px;
1666
+ font-weight: 900;
1667
+ line-height: 1.1;
1668
+ letter-spacing: -0.01em;
1669
+ margin: 0;
1670
+ color: var(--lp-ink);
1671
+ }
1672
+
1673
+ .lp-theme02-metrics-subtitle {
1674
+ font-size: 22px;
1675
+ font-weight: 600;
1676
+ color: var(--lp-ink2);
1677
+ margin: 0;
1678
+ max-width: 760px;
1679
+ }
1680
+
1681
+ .lp-theme02-metrics-grid {
1682
+ display: grid;
1683
+ grid-template-columns: repeat(4, 1fr);
1684
+ gap: 22px;
1685
+ flex: 1;
1686
+ align-content: center;
1687
+ }
1688
+
1689
+ .lp-theme02-metrics-card {
1690
+ position: relative;
1691
+ padding: 32px 28px;
1692
+ background: var(--lp-surface);
1693
+ border: 1px solid var(--lp-border);
1694
+ border-radius: var(--lp-radius-large);
1695
+ box-shadow: var(--lp-shadow);
1696
+ display: flex;
1697
+ flex-direction: column;
1698
+ gap: 8px;
1699
+ overflow: hidden;
1700
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
1701
+ }
1702
+
1703
+ .lp-theme02-metrics-card::before {
1704
+ content: '';
1705
+ position: absolute;
1706
+ top: 0;
1707
+ left: 0;
1708
+ right: 0;
1709
+ height: 3px;
1710
+ background: var(--lp-accent);
1711
+ box-shadow: 0 0 16px var(--lp-glow-accent);
1712
+ }
1713
+
1714
+ .lp-theme02-metrics-card::after {
1715
+ content: '';
1716
+ position: absolute;
1717
+ inset: 0;
1718
+ background: linear-gradient(
1719
+ 115deg,
1720
+ transparent 35%,
1721
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 48%,
1722
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 50%,
1723
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 52%,
1724
+ transparent 65%
1725
+ );
1726
+ transform: translateX(-120%) rotate(12deg);
1727
+ opacity: 0;
1728
+ transition: opacity 0.3s ease;
1729
+ pointer-events: none;
1730
+ }
1731
+
1732
+ .lp-theme02-metrics-card:hover {
1733
+ transform: translateY(-4px);
1734
+ border-color: var(--lp-accent);
1735
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 36px var(--lp-glow-accent);
1736
+ }
1737
+
1738
+ .lp-theme02-metrics-card:hover::after {
1739
+ opacity: 1;
1740
+ animation: lp-theme02-sweep 1.2s ease-in-out;
1741
+ }
1742
+
1743
+ .lp-theme02-metrics-card--accent::before {
1744
+ background: var(--lp-accent);
1745
+ box-shadow: 0 0 16px var(--lp-glow-accent);
1746
+ }
1747
+
1748
+ .lp-theme02-metrics-card--cool::before {
1749
+ background: var(--lp-accent-cool);
1750
+ box-shadow: 0 0 16px var(--lp-glow-cool);
1751
+ }
1752
+
1753
+ .lp-theme02-metrics-card--accent2::before {
1754
+ background: var(--lp-accent-2);
1755
+ box-shadow: 0 0 16px var(--lp-glow-warm);
1756
+ }
1757
+
1758
+ .lp-theme02-metrics-value {
1759
+ font-family: var(--lp-font-mono);
1760
+ font-size: 48px;
1761
+ font-weight: 900;
1762
+ line-height: 1;
1763
+ color: var(--lp-ink);
1764
+ }
1765
+
1766
+ .lp-theme02-metrics-card--accent .lp-theme02-metrics-value {
1767
+ color: var(--lp-accent);
1768
+ text-shadow: 0 0 18px var(--lp-glow-accent);
1769
+ }
1770
+
1771
+ .lp-theme02-metrics-card--cool .lp-theme02-metrics-value {
1772
+ color: var(--lp-accent-cool);
1773
+ text-shadow: 0 0 18px var(--lp-glow-cool);
1774
+ }
1775
+
1776
+ .lp-theme02-metrics-card--accent2 .lp-theme02-metrics-value {
1777
+ color: var(--lp-accent-2);
1778
+ text-shadow: 0 0 18px var(--lp-glow-warm);
1779
+ }
1780
+
1781
+ .lp-theme02-metrics-unit {
1782
+ font-family: var(--lp-font-mono);
1783
+ font-size: 16px;
1784
+ font-weight: 700;
1785
+ color: var(--lp-ink3);
1786
+ margin-top: -4px;
1787
+ }
1788
+
1789
+ .lp-theme02-metrics-label {
1790
+ font-size: 14px;
1791
+ font-weight: 700;
1792
+ letter-spacing: 0.04em;
1793
+ text-transform: uppercase;
1794
+ color: var(--lp-ink3);
1795
+ }
1796
+
1797
+ /* ---- Team v1 ---- */
1798
+ .lp-theme02-team-v1 {
1799
+ display: flex;
1800
+ flex-direction: column;
1801
+ padding: 72px 84px;
1802
+ }
1803
+
1804
+ .lp-theme02-team-header {
1805
+ display: flex;
1806
+ flex-direction: column;
1807
+ gap: 14px;
1808
+ margin-bottom: 44px;
1809
+ }
1810
+
1811
+ .lp-theme02-team-title {
1812
+ font-size: 52px;
1813
+ font-weight: 900;
1814
+ line-height: 1.1;
1815
+ letter-spacing: -0.01em;
1816
+ margin: 0;
1817
+ color: var(--lp-ink);
1818
+ }
1819
+
1820
+ .lp-theme02-team-subtitle {
1821
+ font-size: 22px;
1822
+ font-weight: 600;
1823
+ color: var(--lp-ink2);
1824
+ margin: 0;
1825
+ max-width: 760px;
1826
+ }
1827
+
1828
+ .lp-theme02-team-grid {
1829
+ display: grid;
1830
+ grid-template-columns: repeat(4, 1fr);
1831
+ gap: 24px;
1832
+ flex: 1;
1833
+ align-content: center;
1834
+ }
1835
+
1836
+ .lp-theme02-team-card {
1837
+ padding: 32px 24px;
1838
+ background: var(--lp-surface);
1839
+ border: 1px solid var(--lp-border);
1840
+ border-radius: var(--lp-radius-large);
1841
+ box-shadow: var(--lp-shadow);
1842
+ display: flex;
1843
+ flex-direction: column;
1844
+ align-items: center;
1845
+ text-align: center;
1846
+ gap: 14px;
1847
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
1848
+ }
1849
+
1850
+ .lp-theme02-team-card:hover {
1851
+ transform: translateY(-4px);
1852
+ border-color: var(--lp-accent);
1853
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
1854
+ }
1855
+
1856
+ .lp-theme02-team-avatar {
1857
+ width: 96px;
1858
+ height: 96px;
1859
+ border-radius: 50%;
1860
+ overflow: hidden;
1861
+ border: 2px solid var(--lp-accent);
1862
+ box-shadow: 0 0 24px var(--lp-glow-accent);
1863
+ display: flex;
1864
+ align-items: center;
1865
+ justify-content: center;
1866
+ }
1867
+
1868
+ .lp-theme02-team-avatar img {
1869
+ width: 100%;
1870
+ height: 100%;
1871
+ object-fit: cover;
1872
+ }
1873
+
1874
+ .lp-theme02-team-avatar-placeholder {
1875
+ font-family: var(--lp-font-mono);
1876
+ font-size: 36px;
1877
+ font-weight: 900;
1878
+ color: var(--lp-accent);
1879
+ }
1880
+
1881
+ .lp-theme02-team-name {
1882
+ font-size: 22px;
1883
+ font-weight: 800;
1884
+ color: var(--lp-ink);
1885
+ margin: 0;
1886
+ }
1887
+
1888
+ .lp-theme02-team-role {
1889
+ font-size: 14px;
1890
+ font-weight: 700;
1891
+ letter-spacing: 0.04em;
1892
+ text-transform: uppercase;
1893
+ color: var(--lp-accent-cool);
1894
+ }
1895
+
1896
+ .lp-theme02-team-bio {
1897
+ font-size: 15px;
1898
+ line-height: 1.55;
1899
+ color: var(--lp-ink2);
1900
+ margin: 0;
1901
+ }
1902
+
1903
+ /* ---- Timeline v1 ---- */
1904
+ .lp-theme02-timeline-v1 {
1905
+ display: flex;
1906
+ flex-direction: column;
1907
+ padding: 72px 84px;
1908
+ }
1909
+
1910
+ .lp-theme02-timeline-header {
1911
+ display: flex;
1912
+ flex-direction: column;
1913
+ gap: 14px;
1914
+ margin-bottom: 52px;
1915
+ }
1916
+
1917
+ .lp-theme02-timeline-title {
1918
+ font-size: 52px;
1919
+ font-weight: 900;
1920
+ line-height: 1.1;
1921
+ letter-spacing: -0.01em;
1922
+ margin: 0;
1923
+ color: var(--lp-ink);
1924
+ }
1925
+
1926
+ .lp-theme02-timeline-subtitle {
1927
+ font-size: 22px;
1928
+ font-weight: 600;
1929
+ color: var(--lp-ink2);
1930
+ margin: 0;
1931
+ max-width: 760px;
1932
+ }
1933
+
1934
+ .lp-theme02-timeline-track {
1935
+ position: relative;
1936
+ display: flex;
1937
+ align-items: stretch;
1938
+ gap: 20px;
1939
+ flex: 1;
1940
+ }
1941
+
1942
+ .lp-theme02-timeline-track::before {
1943
+ content: '';
1944
+ position: absolute;
1945
+ top: 24px;
1946
+ left: 0;
1947
+ right: 0;
1948
+ height: 2px;
1949
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool), var(--lp-accent-2));
1950
+ opacity: 0.4;
1951
+ }
1952
+
1953
+ .lp-theme02-timeline-node {
1954
+ position: relative;
1955
+ flex: 1;
1956
+ display: flex;
1957
+ flex-direction: column;
1958
+ gap: 22px;
1959
+ padding-top: 10px;
1960
+ }
1961
+
1962
+ .lp-theme02-timeline-dot {
1963
+ width: 28px;
1964
+ height: 28px;
1965
+ border-radius: 50%;
1966
+ background: var(--lp-accent);
1967
+ border: 4px solid color-mix(in srgb, var(--lp-bg) 80%, transparent);
1968
+ box-shadow: 0 0 20px var(--lp-glow-accent);
1969
+ z-index: 2;
1970
+ }
1971
+
1972
+ .lp-theme02-timeline-node:nth-child(2) .lp-theme02-timeline-dot {
1973
+ background: var(--lp-accent-cool);
1974
+ box-shadow: 0 0 20px var(--lp-glow-cool);
1975
+ }
1976
+
1977
+ .lp-theme02-timeline-node:nth-child(3) .lp-theme02-timeline-dot {
1978
+ background: var(--lp-accent-2);
1979
+ box-shadow: 0 0 20px var(--lp-glow-warm);
1980
+ }
1981
+
1982
+ .lp-theme02-timeline-card {
1983
+ flex: 1;
1984
+ padding: 24px;
1985
+ background: var(--lp-surface);
1986
+ border: 1px solid var(--lp-border);
1987
+ border-radius: var(--lp-radius-large);
1988
+ box-shadow: var(--lp-shadow);
1989
+ display: flex;
1990
+ flex-direction: column;
1991
+ gap: 10px;
1992
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1993
+ }
1994
+
1995
+ .lp-theme02-timeline-card:hover {
1996
+ border-color: var(--lp-accent);
1997
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
1998
+ }
1999
+
2000
+ .lp-theme02-timeline-date {
2001
+ font-family: var(--lp-font-mono);
2002
+ font-size: 14px;
2003
+ font-weight: 800;
2004
+ letter-spacing: 0.04em;
2005
+ color: var(--lp-accent);
2006
+ text-transform: uppercase;
2007
+ }
2008
+
2009
+ .lp-theme02-timeline-card-title {
2010
+ font-size: 20px;
2011
+ font-weight: 800;
2012
+ color: var(--lp-ink);
2013
+ margin: 0;
2014
+ }
2015
+
2016
+ .lp-theme02-timeline-description {
2017
+ font-size: 15px;
2018
+ line-height: 1.55;
2019
+ color: var(--lp-ink2);
2020
+ margin: 0;
2021
+ }
2022
+
2023
+ /* ---- Comparison v1 ---- */
2024
+ .lp-theme02-comparison-v1 {
2025
+ display: flex;
2026
+ flex-direction: column;
2027
+ padding: 72px 84px;
2028
+ }
2029
+
2030
+ .lp-theme02-comparison-header {
2031
+ display: flex;
2032
+ flex-direction: column;
2033
+ gap: 14px;
2034
+ margin-bottom: 44px;
2035
+ }
2036
+
2037
+ .lp-theme02-comparison-title {
2038
+ font-size: 52px;
2039
+ font-weight: 900;
2040
+ line-height: 1.1;
2041
+ letter-spacing: -0.01em;
2042
+ margin: 0;
2043
+ color: var(--lp-ink);
2044
+ }
2045
+
2046
+ .lp-theme02-comparison-subtitle {
2047
+ font-size: 22px;
2048
+ font-weight: 600;
2049
+ color: var(--lp-ink2);
2050
+ margin: 0;
2051
+ max-width: 760px;
2052
+ }
2053
+
2054
+ .lp-theme02-comparison-grid {
2055
+ display: grid;
2056
+ grid-template-columns: 1fr auto 1fr;
2057
+ gap: 28px;
2058
+ flex: 1;
2059
+ align-items: center;
2060
+ }
2061
+
2062
+ .lp-theme02-comparison-column {
2063
+ padding: 40px;
2064
+ background: var(--lp-surface);
2065
+ border: 1px solid var(--lp-border);
2066
+ border-radius: var(--lp-radius-large);
2067
+ box-shadow: var(--lp-shadow);
2068
+ min-height: 320px;
2069
+ }
2070
+
2071
+ .lp-theme02-comparison-column--left {
2072
+ border-top: 3px solid var(--lp-accent-cool);
2073
+ box-shadow: var(--lp-shadow), 0 0 20px var(--lp-glow-cool-subtle);
2074
+ }
2075
+
2076
+ .lp-theme02-comparison-column--right {
2077
+ border-top: 3px solid var(--lp-accent-2);
2078
+ box-shadow: var(--lp-shadow), 0 0 20px var(--lp-glow-warm-subtle);
2079
+ }
2080
+
2081
+ .lp-theme02-comparison-column-title {
2082
+ font-size: 28px;
2083
+ font-weight: 900;
2084
+ color: var(--lp-ink);
2085
+ margin: 0 0 24px;
2086
+ }
2087
+
2088
+ .lp-theme02-comparison-list {
2089
+ list-style: none;
2090
+ padding: 0;
2091
+ margin: 0;
2092
+ display: flex;
2093
+ flex-direction: column;
2094
+ gap: 16px;
2095
+ }
2096
+
2097
+ .lp-theme02-comparison-list li {
2098
+ position: relative;
2099
+ padding-left: 26px;
2100
+ font-size: 18px;
2101
+ line-height: 1.5;
2102
+ color: var(--lp-ink);
2103
+ }
2104
+
2105
+ .lp-theme02-comparison-list li::before {
2106
+ content: '';
2107
+ position: absolute;
2108
+ left: 0;
2109
+ top: 10px;
2110
+ width: 8px;
2111
+ height: 8px;
2112
+ border-radius: 50%;
2113
+ background: var(--lp-accent);
2114
+ box-shadow: 0 0 12px var(--lp-glow-accent);
2115
+ }
2116
+
2117
+ .lp-theme02-comparison-column--right .lp-theme02-comparison-list li::before {
2118
+ background: var(--lp-accent-2);
2119
+ box-shadow: 0 0 12px var(--lp-glow-warm);
2120
+ }
2121
+
2122
+ .lp-theme02-comparison-vs {
2123
+ font-family: var(--lp-font-mono);
2124
+ font-size: 24px;
2125
+ font-weight: 900;
2126
+ color: var(--lp-ink3);
2127
+ padding: 14px 18px;
2128
+ border: 1px solid var(--lp-border);
2129
+ border-radius: 50%;
2130
+ background: var(--lp-surface);
2131
+ box-shadow: var(--lp-shadow);
2132
+ }
2133
+
2134
+ /* ---- Image v1 ---- */
2135
+ .lp-theme02-image-v1 {
2136
+ position: relative;
2137
+ display: flex;
2138
+ align-items: flex-end;
2139
+ overflow: hidden;
2140
+ }
2141
+
2142
+ .lp-theme02-image-media {
2143
+ position: absolute;
2144
+ inset: 0;
2145
+ width: 100%;
2146
+ height: 100%;
2147
+ object-fit: cover;
2148
+ z-index: 0;
2149
+ }
2150
+
2151
+ .lp-theme02-image-placeholder {
2152
+ position: absolute;
2153
+ inset: 0;
2154
+ width: 100%;
2155
+ height: 100%;
2156
+ z-index: 0;
2157
+ border-radius: 0;
2158
+ border-width: 0;
2159
+ background: color-mix(in srgb, var(--lp-ink) 8%, transparent);
2160
+ }
2161
+
2162
+ .lp-theme02-image-placeholder:hover {
2163
+ background: color-mix(in srgb, var(--lp-accent) 10%, transparent);
2164
+ }
2165
+
2166
+ .lp-theme02-image-overlay {
2167
+ position: absolute;
2168
+ inset: 0;
2169
+ background: linear-gradient(
2170
+ 0deg,
2171
+ color-mix(in srgb, var(--lp-bg) 92%, transparent) 0%,
2172
+ color-mix(in srgb, var(--lp-bg) 45%, transparent) 55%,
2173
+ color-mix(in srgb, var(--lp-bg) 20%, transparent) 100%
2174
+ );
2175
+ z-index: 1;
2176
+ pointer-events: none;
2177
+ }
2178
+
2179
+ .lp-theme02-image-content {
2180
+ position: relative;
2181
+ z-index: 2;
2182
+ padding: 72px 84px;
2183
+ width: 100%;
2184
+ display: flex;
2185
+ flex-direction: column;
2186
+ gap: 18px;
2187
+ }
2188
+
2189
+ .lp-theme02-image-title {
2190
+ font-size: 64px;
2191
+ font-weight: 900;
2192
+ line-height: 1.08;
2193
+ letter-spacing: -0.01em;
2194
+ margin: 0;
2195
+ color: var(--lp-ink);
2196
+ text-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
2197
+ max-width: 880px;
2198
+ }
2199
+
2200
+ .lp-theme02-image-subtitle {
2201
+ font-size: 26px;
2202
+ font-weight: 600;
2203
+ color: var(--lp-ink2);
2204
+ margin: 0;
2205
+ max-width: 720px;
2206
+ }
2207
+
2208
+ .lp-theme02-image-caption {
2209
+ align-self: flex-start;
2210
+ margin-top: 10px;
2211
+ padding: 10px 18px;
2212
+ background: var(--lp-surface);
2213
+ border: 1px solid var(--lp-border);
2214
+ border-radius: var(--lp-radius-small);
2215
+ font-family: var(--lp-font-mono);
2216
+ font-size: 14px;
2217
+ font-weight: 700;
2218
+ color: var(--lp-ink3);
2219
+ }
2220
+
2221
+ /* ---- Quote v1 ---- */
2222
+ .lp-theme02-quote-v1 {
2223
+ position: relative;
2224
+ display: flex;
2225
+ align-items: center;
2226
+ justify-content: center;
2227
+ padding: 72px 84px;
2228
+ overflow: hidden;
2229
+ }
2230
+
2231
+ .lp-theme02-quote-mark {
2232
+ position: absolute;
2233
+ top: 50%;
2234
+ left: 50%;
2235
+ transform: translate(-50%, -55%);
2236
+ font-family: var(--lp-font);
2237
+ font-size: 360px;
2238
+ font-weight: 900;
2239
+ line-height: 1;
2240
+ color: var(--lp-accent);
2241
+ opacity: 0.06;
2242
+ text-shadow: 0 0 80px var(--lp-glow-accent);
2243
+ pointer-events: none;
2244
+ z-index: 0;
2245
+ }
2246
+
2247
+ .lp-theme02-quote-content {
2248
+ position: relative;
2249
+ z-index: 2;
2250
+ max-width: 980px;
2251
+ text-align: center;
2252
+ display: flex;
2253
+ flex-direction: column;
2254
+ align-items: center;
2255
+ gap: 36px;
2256
+ }
2257
+
2258
+ .lp-theme02-quote-text {
2259
+ font-size: 44px;
2260
+ font-weight: 800;
2261
+ line-height: 1.35;
2262
+ color: var(--lp-ink);
2263
+ margin: 0;
2264
+ }
2265
+
2266
+ .lp-theme02-quote-author {
2267
+ display: flex;
2268
+ align-items: center;
2269
+ gap: 18px;
2270
+ }
2271
+
2272
+ .lp-theme02-quote-avatar {
2273
+ width: 64px;
2274
+ height: 64px;
2275
+ border-radius: 50%;
2276
+ object-fit: cover;
2277
+ border: 2px solid var(--lp-accent);
2278
+ box-shadow: 0 0 18px var(--lp-glow-accent);
2279
+ }
2280
+
2281
+ .lp-theme02-quote-meta {
2282
+ display: flex;
2283
+ flex-direction: column;
2284
+ gap: 4px;
2285
+ text-align: left;
2286
+ }
2287
+
2288
+ .lp-theme02-quote-name {
2289
+ font-size: 20px;
2290
+ font-weight: 800;
2291
+ color: var(--lp-ink);
2292
+ }
2293
+
2294
+ .lp-theme02-quote-role {
2295
+ font-size: 15px;
2296
+ font-weight: 600;
2297
+ color: var(--lp-ink3);
2298
+ }
2299
+
2300
+ /* ---- Bento v1 ---- */
2301
+ .lp-theme02-bento-v1 {
2302
+ display: flex;
2303
+ flex-direction: column;
2304
+ padding: 72px 84px;
2305
+ }
2306
+
2307
+ .lp-theme02-bento-header {
2308
+ display: flex;
2309
+ flex-direction: column;
2310
+ gap: 14px;
2311
+ margin-bottom: 36px;
2312
+ }
2313
+
2314
+ .lp-theme02-bento-title {
2315
+ font-size: 52px;
2316
+ font-weight: 900;
2317
+ line-height: 1.1;
2318
+ letter-spacing: -0.01em;
2319
+ margin: 0;
2320
+ color: var(--lp-ink);
2321
+ }
2322
+
2323
+ .lp-theme02-bento-subtitle {
2324
+ font-size: 22px;
2325
+ font-weight: 600;
2326
+ color: var(--lp-ink2);
2327
+ margin: 0;
2328
+ max-width: 760px;
2329
+ }
2330
+
2331
+ .lp-theme02-bento-grid {
2332
+ display: grid;
2333
+ grid-template-columns: repeat(4, 1fr);
2334
+ grid-auto-rows: minmax(112px, auto);
2335
+ gap: 14px;
2336
+ flex: 1;
2337
+ }
2338
+
2339
+ .lp-theme02-bento-card {
2340
+ position: relative;
2341
+ padding: 20px;
2342
+ background: var(--lp-surface);
2343
+ border: 1px solid var(--lp-border);
2344
+ border-radius: var(--lp-radius-large);
2345
+ box-shadow: var(--lp-shadow);
2346
+ display: flex;
2347
+ flex-direction: column;
2348
+ justify-content: flex-end;
2349
+ gap: 6px;
2350
+ min-height: 0;
2351
+ overflow: hidden;
2352
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
2353
+ }
2354
+
2355
+ .lp-theme02-bento-card:hover {
2356
+ transform: translateY(-3px);
2357
+ border-color: var(--lp-accent);
2358
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
2359
+ }
2360
+
2361
+ .lp-theme02-bento-card--large {
2362
+ grid-column: span 2;
2363
+ grid-row: span 2;
2364
+ }
2365
+
2366
+ .lp-theme02-bento-card--medium {
2367
+ grid-column: span 2;
2368
+ }
2369
+
2370
+ .lp-theme02-bento-card--small {
2371
+ grid-column: span 1;
2372
+ }
2373
+
2374
+ .lp-theme02-bento-value {
2375
+ font-family: var(--lp-font-mono);
2376
+ font-size: 44px;
2377
+ font-weight: 900;
2378
+ line-height: 1;
2379
+ color: var(--lp-ink);
2380
+ }
2381
+
2382
+ .lp-theme02-bento-card--large .lp-theme02-bento-value {
2383
+ font-size: 72px;
2384
+ }
2385
+
2386
+ .lp-theme02-bento-unit {
2387
+ font-family: var(--lp-font-mono);
2388
+ font-size: 16px;
2389
+ font-weight: 700;
2390
+ color: var(--lp-ink3);
2391
+ }
2392
+
2393
+ .lp-theme02-bento-label {
2394
+ font-size: 15px;
2395
+ font-weight: 700;
2396
+ color: var(--lp-ink2);
2397
+ letter-spacing: 0.02em;
2398
+ }
2399
+
2400
+ .lp-theme02-bento-card:nth-child(4n+1) .lp-theme02-bento-value {
2401
+ color: var(--lp-accent);
2402
+ text-shadow: 0 0 18px var(--lp-glow-accent);
2403
+ }
2404
+
2405
+ .lp-theme02-bento-card:nth-child(4n+2) .lp-theme02-bento-value {
2406
+ color: var(--lp-accent-cool);
2407
+ text-shadow: 0 0 18px var(--lp-glow-cool);
2408
+ }
2409
+
2410
+ .lp-theme02-bento-card:nth-child(4n+3) .lp-theme02-bento-value {
2411
+ color: var(--lp-accent-2);
2412
+ text-shadow: 0 0 18px var(--lp-glow-warm);
2413
+ }
2414
+
2415
+ /* ---- Feature v1 ---- */
2416
+ .lp-theme02-feature-v1 {
2417
+ display: flex;
2418
+ flex-direction: column;
2419
+ padding: 72px 84px;
2420
+ }
2421
+
2422
+ .lp-theme02-feature-header {
2423
+ display: flex;
2424
+ flex-direction: column;
2425
+ gap: 14px;
2426
+ margin-bottom: 44px;
2427
+ }
2428
+
2429
+ .lp-theme02-feature-title {
2430
+ font-size: 52px;
2431
+ font-weight: 900;
2432
+ line-height: 1.1;
2433
+ letter-spacing: -0.01em;
2434
+ margin: 0;
2435
+ color: var(--lp-ink);
2436
+ }
2437
+
2438
+ .lp-theme02-feature-subtitle {
2439
+ font-size: 22px;
2440
+ font-weight: 600;
2441
+ color: var(--lp-ink2);
2442
+ margin: 0;
2443
+ max-width: 760px;
2444
+ }
2445
+
2446
+ .lp-theme02-feature-grid {
2447
+ display: grid;
2448
+ grid-template-columns: repeat(3, 1fr);
2449
+ gap: 24px;
2450
+ flex: 1;
2451
+ align-content: center;
2452
+ }
2453
+
2454
+ .lp-theme02-feature-card {
2455
+ position: relative;
2456
+ padding: 32px 28px;
2457
+ background: var(--lp-surface);
2458
+ border: 1px solid var(--lp-border);
2459
+ border-radius: var(--lp-radius-large);
2460
+ box-shadow: var(--lp-shadow);
2461
+ display: flex;
2462
+ flex-direction: column;
2463
+ gap: 14px;
2464
+ overflow: hidden;
2465
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
2466
+ }
2467
+
2468
+ .lp-theme02-feature-card:hover {
2469
+ transform: translateY(-4px);
2470
+ border-color: var(--lp-accent);
2471
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
2472
+ }
2473
+
2474
+ .lp-theme02-feature-card::before {
2475
+ content: '';
2476
+ position: absolute;
2477
+ top: 0;
2478
+ left: 0;
2479
+ right: 0;
2480
+ height: 3px;
2481
+ background: var(--lp-accent);
2482
+ box-shadow: 0 0 16px var(--lp-glow-accent);
2483
+ }
2484
+
2485
+ .lp-theme02-feature-card--cool::before {
2486
+ background: var(--lp-accent-cool);
2487
+ box-shadow: 0 0 16px var(--lp-glow-cool);
2488
+ }
2489
+
2490
+ .lp-theme02-feature-card--warm::before {
2491
+ background: var(--lp-accent-2);
2492
+ box-shadow: 0 0 16px var(--lp-glow-warm);
2493
+ }
2494
+
2495
+ .lp-theme02-feature-number {
2496
+ font-family: var(--lp-font-mono);
2497
+ font-size: 42px;
2498
+ font-weight: 900;
2499
+ line-height: 1;
2500
+ color: var(--lp-ink2);
2501
+ opacity: 0.55;
2502
+ }
2503
+
2504
+ .lp-theme02-feature-card-title {
2505
+ font-size: 24px;
2506
+ font-weight: 800;
2507
+ color: var(--lp-ink);
2508
+ margin: 0;
2509
+ }
2510
+
2511
+ .lp-theme02-feature-card-description {
2512
+ font-size: 16px;
2513
+ line-height: 1.6;
2514
+ color: var(--lp-ink2);
2515
+ margin: 0;
2516
+ }
2517
+
2518
+ /* ---- Process v1 ---- */
2519
+ .lp-theme02-process-v1 {
2520
+ display: flex;
2521
+ flex-direction: column;
2522
+ padding: 72px 84px;
2523
+ }
2524
+
2525
+ .lp-theme02-process-header {
2526
+ display: flex;
2527
+ flex-direction: column;
2528
+ gap: 14px;
2529
+ margin-bottom: 52px;
2530
+ }
2531
+
2532
+ .lp-theme02-process-title {
2533
+ font-size: 52px;
2534
+ font-weight: 900;
2535
+ line-height: 1.1;
2536
+ letter-spacing: -0.01em;
2537
+ margin: 0;
2538
+ color: var(--lp-ink);
2539
+ }
2540
+
2541
+ .lp-theme02-process-subtitle {
2542
+ font-size: 22px;
2543
+ font-weight: 600;
2544
+ color: var(--lp-ink2);
2545
+ margin: 0;
2546
+ max-width: 760px;
2547
+ }
2548
+
2549
+ .lp-theme02-process-track {
2550
+ position: relative;
2551
+ display: flex;
2552
+ align-items: stretch;
2553
+ gap: 16px;
2554
+ flex: 1;
2555
+ }
2556
+
2557
+ .lp-theme02-process-step {
2558
+ position: relative;
2559
+ flex: 1;
2560
+ display: flex;
2561
+ flex-direction: column;
2562
+ align-items: center;
2563
+ gap: 24px;
2564
+ }
2565
+
2566
+ .lp-theme02-process-node {
2567
+ width: 56px;
2568
+ height: 56px;
2569
+ border-radius: 50%;
2570
+ display: flex;
2571
+ align-items: center;
2572
+ justify-content: center;
2573
+ background: var(--lp-surface);
2574
+ border: 2px solid var(--lp-accent);
2575
+ box-shadow: 0 0 24px var(--lp-glow-accent);
2576
+ z-index: 2;
2577
+ }
2578
+
2579
+ .lp-theme02-process-node--cool {
2580
+ border-color: var(--lp-accent-cool);
2581
+ box-shadow: 0 0 24px var(--lp-glow-cool);
2582
+ }
2583
+
2584
+ .lp-theme02-process-node--warm {
2585
+ border-color: var(--lp-accent-2);
2586
+ box-shadow: 0 0 24px var(--lp-glow-warm);
2587
+ }
2588
+
2589
+ .lp-theme02-process-node-number {
2590
+ font-family: var(--lp-font-mono);
2591
+ font-size: 22px;
2592
+ font-weight: 900;
2593
+ color: var(--lp-ink);
2594
+ }
2595
+
2596
+ .lp-theme02-process-card {
2597
+ width: 100%;
2598
+ flex: 1;
2599
+ padding: 24px;
2600
+ background: var(--lp-surface);
2601
+ border: 1px solid var(--lp-border);
2602
+ border-radius: var(--lp-radius-large);
2603
+ box-shadow: var(--lp-shadow);
2604
+ display: flex;
2605
+ flex-direction: column;
2606
+ gap: 10px;
2607
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2608
+ }
2609
+
2610
+ .lp-theme02-process-card:hover {
2611
+ border-color: var(--lp-accent);
2612
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
2613
+ }
2614
+
2615
+ .lp-theme02-process-step-title {
2616
+ font-size: 20px;
2617
+ font-weight: 800;
2618
+ color: var(--lp-ink);
2619
+ margin: 0;
2620
+ }
2621
+
2622
+ .lp-theme02-process-step-description {
2623
+ font-size: 15px;
2624
+ line-height: 1.55;
2625
+ color: var(--lp-ink2);
2626
+ margin: 0;
2627
+ }
2628
+
2629
+ .lp-theme02-process-arrow {
2630
+ position: absolute;
2631
+ top: 28px;
2632
+ right: -16px;
2633
+ width: 16px;
2634
+ height: 2px;
2635
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool));
2636
+ opacity: 0.5;
2637
+ z-index: 1;
2638
+ }
2639
+
2640
+ /* ---- Roadmap v1 ---- */
2641
+ .lp-theme02-roadmap-v1 {
2642
+ display: flex;
2643
+ flex-direction: column;
2644
+ padding: 72px 84px;
2645
+ }
2646
+
2647
+ .lp-theme02-roadmap-header {
2648
+ display: flex;
2649
+ flex-direction: column;
2650
+ gap: 14px;
2651
+ margin-bottom: 52px;
2652
+ }
2653
+
2654
+ .lp-theme02-roadmap-title {
2655
+ font-size: 52px;
2656
+ font-weight: 900;
2657
+ line-height: 1.1;
2658
+ letter-spacing: -0.01em;
2659
+ margin: 0;
2660
+ color: var(--lp-ink);
2661
+ }
2662
+
2663
+ .lp-theme02-roadmap-subtitle {
2664
+ font-size: 22px;
2665
+ font-weight: 600;
2666
+ color: var(--lp-ink2);
2667
+ margin: 0;
2668
+ max-width: 760px;
2669
+ }
2670
+
2671
+ .lp-theme02-roadmap-track {
2672
+ position: relative;
2673
+ display: flex;
2674
+ align-items: stretch;
2675
+ gap: 20px;
2676
+ flex: 1;
2677
+ }
2678
+
2679
+ .lp-theme02-roadmap-track::before {
2680
+ content: '';
2681
+ position: absolute;
2682
+ top: 28px;
2683
+ left: 0;
2684
+ right: 0;
2685
+ height: 2px;
2686
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool), var(--lp-accent-2));
2687
+ opacity: 0.4;
2688
+ }
2689
+
2690
+ .lp-theme02-roadmap-phase {
2691
+ position: relative;
2692
+ flex: 1;
2693
+ display: flex;
2694
+ flex-direction: column;
2695
+ gap: 22px;
2696
+ padding-top: 10px;
2697
+ }
2698
+
2699
+ .lp-theme02-roadmap-marker {
2700
+ width: 36px;
2701
+ height: 36px;
2702
+ border-radius: 50%;
2703
+ display: flex;
2704
+ align-items: center;
2705
+ justify-content: center;
2706
+ background: var(--lp-accent);
2707
+ border: 4px solid color-mix(in srgb, var(--lp-bg) 80%, transparent);
2708
+ box-shadow: 0 0 20px var(--lp-glow-accent);
2709
+ z-index: 2;
2710
+ }
2711
+
2712
+ .lp-theme02-roadmap-marker--cool {
2713
+ background: var(--lp-accent-cool);
2714
+ box-shadow: 0 0 20px var(--lp-glow-cool);
2715
+ }
2716
+
2717
+ .lp-theme02-roadmap-marker--warm {
2718
+ background: var(--lp-accent-2);
2719
+ box-shadow: 0 0 20px var(--lp-glow-warm);
2720
+ }
2721
+
2722
+ .lp-theme02-roadmap-number {
2723
+ font-family: var(--lp-font-mono);
2724
+ font-size: 12px;
2725
+ font-weight: 900;
2726
+ color: var(--lp-text-inverse);
2727
+ }
2728
+
2729
+ .lp-theme02-roadmap-card {
2730
+ flex: 1;
2731
+ padding: 24px;
2732
+ background: var(--lp-surface);
2733
+ border: 1px solid var(--lp-border);
2734
+ border-radius: var(--lp-radius-large);
2735
+ box-shadow: var(--lp-shadow);
2736
+ display: flex;
2737
+ flex-direction: column;
2738
+ gap: 14px;
2739
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2740
+ }
2741
+
2742
+ .lp-theme02-roadmap-card:hover {
2743
+ border-color: var(--lp-accent);
2744
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
2745
+ }
2746
+
2747
+ .lp-theme02-roadmap-phase-title {
2748
+ font-size: 20px;
2749
+ font-weight: 800;
2750
+ color: var(--lp-ink);
2751
+ margin: 0;
2752
+ }
2753
+
2754
+ .lp-theme02-roadmap-list {
2755
+ list-style: none;
2756
+ padding: 0;
2757
+ margin: 0;
2758
+ display: flex;
2759
+ flex-direction: column;
2760
+ gap: 10px;
2761
+ }
2762
+
2763
+ .lp-theme02-roadmap-list li {
2764
+ position: relative;
2765
+ padding-left: 18px;
2766
+ font-size: 15px;
2767
+ line-height: 1.5;
2768
+ color: var(--lp-ink2);
2769
+ }
2770
+
2771
+ .lp-theme02-roadmap-list li::before {
2772
+ content: '';
2773
+ position: absolute;
2774
+ left: 0;
2775
+ top: 9px;
2776
+ width: 6px;
2777
+ height: 6px;
2778
+ border-radius: 50%;
2779
+ background: var(--lp-accent);
2780
+ box-shadow: 0 0 10px var(--lp-glow-accent);
2781
+ }
2782
+
2783
+ .lp-theme02-roadmap-connector {
2784
+ position: absolute;
2785
+ top: 28px;
2786
+ right: -20px;
2787
+ width: 20px;
2788
+ height: 2px;
2789
+ background: linear-gradient(90deg, var(--lp-accent-cool), var(--lp-accent-2));
2790
+ opacity: 0.4;
2791
+ z-index: 1;
2792
+ }
2793
+
2794
+ /* ---- Pricing v1 ---- */
2795
+ .lp-theme02-pricing-v1 {
2796
+ display: flex;
2797
+ flex-direction: column;
2798
+ padding: 72px 84px;
2799
+ }
2800
+
2801
+ .lp-theme02-pricing-header {
2802
+ display: flex;
2803
+ flex-direction: column;
2804
+ gap: 14px;
2805
+ margin-bottom: 44px;
2806
+ text-align: center;
2807
+ align-items: center;
2808
+ }
2809
+
2810
+ .lp-theme02-pricing-title {
2811
+ font-size: 52px;
2812
+ font-weight: 900;
2813
+ line-height: 1.1;
2814
+ letter-spacing: -0.01em;
2815
+ margin: 0;
2816
+ color: var(--lp-ink);
2817
+ }
2818
+
2819
+ .lp-theme02-pricing-subtitle {
2820
+ font-size: 22px;
2821
+ font-weight: 600;
2822
+ color: var(--lp-ink2);
2823
+ margin: 0;
2824
+ max-width: 760px;
2825
+ }
2826
+
2827
+ .lp-theme02-pricing-grid {
2828
+ display: grid;
2829
+ grid-template-columns: repeat(3, 1fr);
2830
+ gap: 24px;
2831
+ flex: 1;
2832
+ align-items: center;
2833
+ }
2834
+
2835
+ .lp-theme02-pricing-card {
2836
+ position: relative;
2837
+ padding: 36px 28px;
2838
+ background: var(--lp-surface);
2839
+ border: 1px solid var(--lp-border);
2840
+ border-radius: var(--lp-radius-large);
2841
+ box-shadow: var(--lp-shadow);
2842
+ display: flex;
2843
+ flex-direction: column;
2844
+ gap: 20px;
2845
+ overflow: hidden;
2846
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
2847
+ }
2848
+
2849
+ .lp-theme02-pricing-card:hover {
2850
+ transform: translateY(-4px);
2851
+ border-color: var(--lp-accent);
2852
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
2853
+ }
2854
+
2855
+ .lp-theme02-pricing-card--highlight {
2856
+ border-color: var(--lp-accent);
2857
+ box-shadow: 0 0 40px var(--lp-glow-accent-subtle), var(--lp-shadow);
2858
+ transform: scale(1.03);
2859
+ background: linear-gradient(135deg, color-mix(in srgb, var(--lp-accent) 10%, transparent), var(--lp-surface));
2860
+ }
2861
+
2862
+ .lp-theme02-pricing-card--highlight:hover {
2863
+ box-shadow: 0 0 50px var(--lp-glow-accent), 0 12px 40px rgba(0, 0, 0, 0.25);
2864
+ }
2865
+
2866
+ .lp-theme02-pricing-badge {
2867
+ position: absolute;
2868
+ top: 16px;
2869
+ right: 16px;
2870
+ padding: 6px 12px;
2871
+ border-radius: 999px;
2872
+ background: var(--lp-accent);
2873
+ color: var(--lp-text-inverse);
2874
+ font-family: var(--lp-font-mono);
2875
+ font-size: 12px;
2876
+ font-weight: 800;
2877
+ letter-spacing: 0.04em;
2878
+ text-transform: uppercase;
2879
+ box-shadow: 0 0 16px var(--lp-glow-accent);
2880
+ }
2881
+
2882
+ .lp-theme02-pricing-name {
2883
+ font-size: 24px;
2884
+ font-weight: 900;
2885
+ color: var(--lp-ink);
2886
+ margin: 0;
2887
+ }
2888
+
2889
+ .lp-theme02-pricing-price-row {
2890
+ display: flex;
2891
+ align-items: baseline;
2892
+ gap: 8px;
2893
+ }
2894
+
2895
+ .lp-theme02-pricing-price {
2896
+ font-family: var(--lp-font-mono);
2897
+ font-size: 48px;
2898
+ font-weight: 900;
2899
+ line-height: 1;
2900
+ color: var(--lp-accent);
2901
+ text-shadow: 0 0 18px var(--lp-glow-accent);
2902
+ }
2903
+
2904
+ .lp-theme02-pricing-period {
2905
+ font-size: 16px;
2906
+ font-weight: 600;
2907
+ color: var(--lp-ink3);
2908
+ }
2909
+
2910
+ .lp-theme02-pricing-features {
2911
+ list-style: none;
2912
+ padding: 0;
2913
+ margin: 0;
2914
+ display: flex;
2915
+ flex-direction: column;
2916
+ gap: 12px;
2917
+ }
2918
+
2919
+ .lp-theme02-pricing-features li {
2920
+ position: relative;
2921
+ padding-left: 22px;
2922
+ font-size: 16px;
2923
+ line-height: 1.5;
2924
+ color: var(--lp-ink2);
2925
+ }
2926
+
2927
+ .lp-theme02-pricing-features li::before {
2928
+ content: '';
2929
+ position: absolute;
2930
+ left: 0;
2931
+ top: 8px;
2932
+ width: 8px;
2933
+ height: 8px;
2934
+ border-radius: 50%;
2935
+ background: var(--lp-accent-cool);
2936
+ box-shadow: 0 0 10px var(--lp-glow-cool);
2937
+ }
2938
+
2939
+ .lp-theme02-pricing-cta {
2940
+ margin-top: auto;
2941
+ padding: 14px 24px;
2942
+ text-align: center;
2943
+ border-radius: var(--lp-radius-small);
2944
+ background: linear-gradient(135deg, var(--lp-accent), var(--lp-accent-cool));
2945
+ color: var(--lp-text-inverse);
2946
+ font-size: 16px;
2947
+ font-weight: 800;
2948
+ box-shadow: 0 8px 24px var(--lp-glow-accent-subtle);
2949
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
2950
+ }
2951
+
2952
+ .lp-theme02-pricing-cta:hover {
2953
+ transform: translateY(-2px);
2954
+ box-shadow: 0 12px 32px var(--lp-glow-accent);
2955
+ }
2956
+
2957
+ /* ---- Gallery v1 ---- */
2958
+ .lp-theme02-gallery-v1 {
2959
+ display: flex;
2960
+ flex-direction: column;
2961
+ padding: 72px 84px;
2962
+ }
2963
+
2964
+ .lp-theme02-gallery-header {
2965
+ display: flex;
2966
+ flex-direction: column;
2967
+ gap: 14px;
2968
+ margin-bottom: 44px;
2969
+ }
2970
+
2971
+ .lp-theme02-gallery-title {
2972
+ font-size: 52px;
2973
+ font-weight: 900;
2974
+ line-height: 1.1;
2975
+ letter-spacing: -0.01em;
2976
+ margin: 0;
2977
+ color: var(--lp-ink);
2978
+ }
2979
+
2980
+ .lp-theme02-gallery-subtitle {
2981
+ font-size: 22px;
2982
+ font-weight: 600;
2983
+ color: var(--lp-ink2);
2984
+ margin: 0;
2985
+ max-width: 760px;
2986
+ }
2987
+
2988
+ .lp-theme02-gallery-grid {
2989
+ display: grid;
2990
+ gap: 20px;
2991
+ flex: 1;
2992
+ align-content: center;
2993
+ }
2994
+
2995
+ .lp-theme02-gallery-grid--1 {
2996
+ grid-template-columns: 1fr;
2997
+ }
2998
+
2999
+ .lp-theme02-gallery-grid--2 {
3000
+ grid-template-columns: repeat(2, 1fr);
3001
+ }
3002
+
3003
+ .lp-theme02-gallery-grid--3 {
3004
+ grid-template-columns: repeat(3, 1fr);
3005
+ }
3006
+
3007
+ .lp-theme02-gallery-grid--4 {
3008
+ grid-template-columns: repeat(2, 1fr);
3009
+ grid-template-rows: repeat(2, 1fr);
3010
+ }
3011
+
3012
+ .lp-theme02-gallery-card {
3013
+ position: relative;
3014
+ border-radius: var(--lp-radius-large);
3015
+ overflow: hidden;
3016
+ border: 1px solid var(--lp-border);
3017
+ box-shadow: var(--lp-shadow);
3018
+ background: var(--lp-surface);
3019
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3020
+ }
3021
+
3022
+ .lp-theme02-gallery-card:hover {
3023
+ border-color: var(--lp-accent);
3024
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3025
+ }
3026
+
3027
+ .lp-theme02-gallery-image {
3028
+ width: 100%;
3029
+ height: 100%;
3030
+ object-fit: cover;
3031
+ }
3032
+
3033
+ .lp-theme02-gallery-image-placeholder {
3034
+ width: 100%;
3035
+ height: 100%;
3036
+ display: flex;
3037
+ align-items: center;
3038
+ justify-content: center;
3039
+ border: 2px dashed var(--lp-border);
3040
+ border-radius: var(--lp-radius-large);
3041
+ color: var(--lp-ink3);
3042
+ font-size: 14px;
3043
+ background: var(--lp-overlay);
3044
+ }
3045
+
3046
+ .lp-theme02-gallery-image-placeholder:hover {
3047
+ border-color: var(--lp-accent);
3048
+ color: var(--lp-accent);
3049
+ }
3050
+
3051
+ .lp-theme02-gallery-caption {
3052
+ position: absolute;
3053
+ bottom: 0;
3054
+ left: 0;
3055
+ right: 0;
3056
+ padding: 16px 20px;
3057
+ background: linear-gradient(0deg, rgba(8, 10, 14, 0.92), transparent);
3058
+ font-size: 15px;
3059
+ font-weight: 700;
3060
+ color: var(--lp-ink);
3061
+ }
3062
+
3063
+ /* ---- SWOT v1 ---- */
3064
+ .lp-theme02-swot-v1 {
3065
+ display: flex;
3066
+ flex-direction: column;
3067
+ padding: 72px 84px;
3068
+ }
3069
+
3070
+ .lp-theme02-swot-header {
3071
+ display: flex;
3072
+ flex-direction: column;
3073
+ gap: 14px;
3074
+ margin-bottom: 44px;
3075
+ }
3076
+
3077
+ .lp-theme02-swot-title {
3078
+ font-size: 52px;
3079
+ font-weight: 900;
3080
+ line-height: 1.1;
3081
+ letter-spacing: -0.01em;
3082
+ margin: 0;
3083
+ color: var(--lp-ink);
3084
+ }
3085
+
3086
+ .lp-theme02-swot-subtitle {
3087
+ font-size: 22px;
3088
+ font-weight: 600;
3089
+ color: var(--lp-ink2);
3090
+ margin: 0;
3091
+ max-width: 760px;
3092
+ }
3093
+
3094
+ .lp-theme02-swot-grid {
3095
+ display: grid;
3096
+ grid-template-columns: repeat(2, 1fr);
3097
+ gap: 24px;
3098
+ flex: 1;
3099
+ align-content: center;
3100
+ }
3101
+
3102
+ .lp-theme02-swot-cell {
3103
+ position: relative;
3104
+ padding: 32px;
3105
+ background: var(--lp-surface);
3106
+ border: 1px solid var(--lp-border);
3107
+ border-radius: var(--lp-radius-large);
3108
+ box-shadow: var(--lp-shadow);
3109
+ display: flex;
3110
+ flex-direction: column;
3111
+ gap: 18px;
3112
+ overflow: hidden;
3113
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3114
+ }
3115
+
3116
+ .lp-theme02-swot-cell:hover {
3117
+ border-color: var(--lp-accent);
3118
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3119
+ }
3120
+
3121
+ .lp-theme02-swot-cell::before {
3122
+ content: '';
3123
+ position: absolute;
3124
+ top: 0;
3125
+ left: 0;
3126
+ right: 0;
3127
+ height: 3px;
3128
+ background: var(--lp-accent);
3129
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3130
+ }
3131
+
3132
+ .lp-theme02-swot-s::before {
3133
+ background: var(--lp-green);
3134
+ box-shadow: 0 0 16px rgba(74, 222, 128, 0.4);
3135
+ }
3136
+
3137
+ .lp-theme02-swot-w::before {
3138
+ background: var(--lp-red);
3139
+ box-shadow: 0 0 16px rgba(255, 107, 107, 0.4);
3140
+ }
3141
+
3142
+ .lp-theme02-swot-o::before {
3143
+ background: var(--lp-accent-cool);
3144
+ box-shadow: 0 0 16px var(--lp-glow-cool);
3145
+ }
3146
+
3147
+ .lp-theme02-swot-t::before {
3148
+ background: var(--lp-amber);
3149
+ box-shadow: 0 0 16px rgba(251, 191, 36, 0.4);
3150
+ }
3151
+
3152
+ .lp-theme02-swot-label-group {
3153
+ display: flex;
3154
+ align-items: baseline;
3155
+ gap: 12px;
3156
+ }
3157
+
3158
+ .lp-theme02-swot-label {
3159
+ font-family: var(--lp-font-mono);
3160
+ font-size: 42px;
3161
+ font-weight: 900;
3162
+ line-height: 1;
3163
+ color: var(--lp-accent);
3164
+ text-shadow: 0 0 18px var(--lp-glow-accent);
3165
+ }
3166
+
3167
+ .lp-theme02-swot-s .lp-theme02-swot-label {
3168
+ color: var(--lp-green);
3169
+ text-shadow: 0 0 18px rgba(74, 222, 128, 0.4);
3170
+ }
3171
+
3172
+ .lp-theme02-swot-w .lp-theme02-swot-label {
3173
+ color: var(--lp-red);
3174
+ text-shadow: 0 0 18px rgba(255, 107, 107, 0.4);
3175
+ }
3176
+
3177
+ .lp-theme02-swot-o .lp-theme02-swot-label {
3178
+ color: var(--lp-accent-cool);
3179
+ text-shadow: 0 0 18px var(--lp-glow-cool);
3180
+ }
3181
+
3182
+ .lp-theme02-swot-t .lp-theme02-swot-label {
3183
+ color: var(--lp-amber);
3184
+ text-shadow: 0 0 18px rgba(251, 191, 36, 0.4);
3185
+ }
3186
+
3187
+ .lp-theme02-swot-label-subtitle {
3188
+ font-size: 16px;
3189
+ font-weight: 700;
3190
+ letter-spacing: 0.04em;
3191
+ text-transform: uppercase;
3192
+ color: var(--lp-ink3);
3193
+ }
3194
+
3195
+ .lp-theme02-swot-value {
3196
+ font-size: 18px;
3197
+ line-height: 1.6;
3198
+ color: var(--lp-ink2);
3199
+ margin: 0;
3200
+ }
3201
+
3202
+ /* ---- FAQ v1 ---- */
3203
+ .lp-theme02-faq-v1 {
3204
+ display: flex;
3205
+ flex-direction: column;
3206
+ padding: 72px 84px;
3207
+ }
3208
+
3209
+ .lp-theme02-faq-header {
3210
+ display: flex;
3211
+ flex-direction: column;
3212
+ gap: 14px;
3213
+ margin-bottom: 44px;
3214
+ }
3215
+
3216
+ .lp-theme02-faq-title {
3217
+ font-size: 52px;
3218
+ font-weight: 900;
3219
+ line-height: 1.1;
3220
+ letter-spacing: -0.01em;
3221
+ margin: 0;
3222
+ color: var(--lp-ink);
3223
+ }
3224
+
3225
+ .lp-theme02-faq-subtitle {
3226
+ font-size: 22px;
3227
+ font-weight: 600;
3228
+ color: var(--lp-ink2);
3229
+ margin: 0;
3230
+ max-width: 760px;
3231
+ }
3232
+
3233
+ .lp-theme02-faq-list {
3234
+ display: flex;
3235
+ flex-direction: column;
3236
+ gap: 18px;
3237
+ flex: 1;
3238
+ justify-content: center;
3239
+ }
3240
+
3241
+ .lp-theme02-faq-card {
3242
+ padding: 24px 28px;
3243
+ background: var(--lp-surface);
3244
+ border: 1px solid var(--lp-border);
3245
+ border-radius: var(--lp-radius-large);
3246
+ box-shadow: var(--lp-shadow);
3247
+ display: flex;
3248
+ flex-direction: column;
3249
+ gap: 12px;
3250
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3251
+ }
3252
+
3253
+ .lp-theme02-faq-card:hover {
3254
+ border-color: var(--lp-accent);
3255
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3256
+ }
3257
+
3258
+ .lp-theme02-faq-question,
3259
+ .lp-theme02-faq-answer {
3260
+ display: flex;
3261
+ gap: 14px;
3262
+ align-items: baseline;
3263
+ }
3264
+
3265
+ .lp-theme02-faq-question h3,
3266
+ .lp-theme02-faq-answer p {
3267
+ margin: 0;
3268
+ font-size: 17px;
3269
+ line-height: 1.55;
3270
+ color: var(--lp-ink);
3271
+ font-weight: 800;
3272
+ }
3273
+
3274
+ .lp-theme02-faq-answer p {
3275
+ font-weight: 500;
3276
+ color: var(--lp-ink2);
3277
+ }
3278
+
3279
+ .lp-theme02-faq-marker {
3280
+ flex-shrink: 0;
3281
+ width: 28px;
3282
+ height: 28px;
3283
+ border-radius: 50%;
3284
+ display: flex;
3285
+ align-items: center;
3286
+ justify-content: center;
3287
+ font-family: var(--lp-font-mono);
3288
+ font-size: 13px;
3289
+ font-weight: 900;
3290
+ }
3291
+
3292
+ .lp-theme02-faq-marker--q {
3293
+ background: var(--lp-accent);
3294
+ color: var(--lp-text-inverse);
3295
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3296
+ }
3297
+
3298
+ .lp-theme02-faq-marker--a {
3299
+ background: var(--lp-surface);
3300
+ color: var(--lp-accent-cool);
3301
+ border: 1px solid var(--lp-border);
3302
+ box-shadow: 0 0 12px var(--lp-glow-cool);
3303
+ }
3304
+
3305
+ /* ---- Partners v1 ---- */
3306
+ .lp-theme02-partners-v1 {
3307
+ display: flex;
3308
+ flex-direction: column;
3309
+ padding: 72px 84px;
3310
+ }
3311
+
3312
+ .lp-theme02-partners-header {
3313
+ display: flex;
3314
+ flex-direction: column;
3315
+ gap: 14px;
3316
+ margin-bottom: 44px;
3317
+ text-align: center;
3318
+ align-items: center;
3319
+ }
3320
+
3321
+ .lp-theme02-partners-title {
3322
+ font-size: 52px;
3323
+ font-weight: 900;
3324
+ line-height: 1.1;
3325
+ letter-spacing: -0.01em;
3326
+ margin: 0;
3327
+ color: var(--lp-ink);
3328
+ }
3329
+
3330
+ .lp-theme02-partners-subtitle {
3331
+ font-size: 22px;
3332
+ font-weight: 600;
3333
+ color: var(--lp-ink2);
3334
+ margin: 0;
3335
+ max-width: 760px;
3336
+ }
3337
+
3338
+ .lp-theme02-partners-grid {
3339
+ display: grid;
3340
+ grid-template-columns: repeat(4, 1fr);
3341
+ gap: 20px;
3342
+ flex: 1;
3343
+ min-width: 0;
3344
+ align-content: center;
3345
+ }
3346
+
3347
+ .lp-theme02-partners-card {
3348
+ padding: 24px 20px;
3349
+ background: var(--lp-surface);
3350
+ border: 1px solid var(--lp-border);
3351
+ border-radius: var(--lp-radius-large);
3352
+ box-shadow: var(--lp-shadow);
3353
+ display: flex;
3354
+ flex-direction: column;
3355
+ align-items: center;
3356
+ justify-content: center;
3357
+ gap: 14px;
3358
+ min-width: 0;
3359
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
3360
+ }
3361
+
3362
+ .lp-theme02-partners-card:hover {
3363
+ transform: translateY(-4px);
3364
+ border-color: var(--lp-accent);
3365
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3366
+ }
3367
+
3368
+ .lp-theme02-partners-logo-placeholder {
3369
+ width: 100%;
3370
+ aspect-ratio: 2 / 1;
3371
+ display: flex;
3372
+ align-items: center;
3373
+ justify-content: center;
3374
+ border: 2px dashed var(--lp-border);
3375
+ border-radius: var(--lp-radius-small);
3376
+ color: var(--lp-ink3);
3377
+ font-size: 13px;
3378
+ background: var(--lp-overlay);
3379
+ }
3380
+
3381
+ .lp-theme02-partners-logo-placeholder:hover {
3382
+ border-color: var(--lp-accent);
3383
+ color: var(--lp-accent);
3384
+ }
3385
+
3386
+ .lp-theme02-partners-name {
3387
+ font-size: 15px;
3388
+ font-weight: 700;
3389
+ color: var(--lp-ink2);
3390
+ text-align: center;
3391
+ }
3392
+
3393
+ /* ---- Testimonial v1 ---- */
3394
+ .lp-theme02-testimonial-v1 {
3395
+ display: flex;
3396
+ flex-direction: column;
3397
+ align-items: center;
3398
+ justify-content: center;
3399
+ padding: 72px 120px;
3400
+ text-align: center;
3401
+ }
3402
+
3403
+ .lp-theme02-testimonial-content {
3404
+ display: flex;
3405
+ flex-direction: column;
3406
+ gap: 40px;
3407
+ align-items: center;
3408
+ max-width: 960px;
3409
+ }
3410
+
3411
+ .lp-theme02-testimonial-quote {
3412
+ position: relative;
3413
+ padding: 48px 56px;
3414
+ background: var(--lp-surface);
3415
+ border: 1px solid var(--lp-border);
3416
+ border-radius: var(--lp-radius-large);
3417
+ box-shadow: var(--lp-shadow);
3418
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3419
+ }
3420
+
3421
+ .lp-theme02-testimonial-quote:hover {
3422
+ border-color: var(--lp-accent);
3423
+ box-shadow: 0 0 40px var(--lp-glow-accent-subtle);
3424
+ }
3425
+
3426
+ .lp-theme02-testimonial-quote blockquote {
3427
+ margin: 0;
3428
+ font-size: 32px;
3429
+ font-weight: 800;
3430
+ line-height: 1.45;
3431
+ color: var(--lp-ink);
3432
+ }
3433
+
3434
+ .lp-theme02-testimonial-mark {
3435
+ position: absolute;
3436
+ top: 20px;
3437
+ left: 28px;
3438
+ font-size: 80px;
3439
+ line-height: 1;
3440
+ color: var(--lp-accent);
3441
+ opacity: 0.25;
3442
+ font-family: Georgia, serif;
3443
+ text-shadow: 0 0 30px var(--lp-glow-accent);
3444
+ }
3445
+
3446
+ .lp-theme02-testimonial-author {
3447
+ display: flex;
3448
+ align-items: center;
3449
+ gap: 18px;
3450
+ }
3451
+
3452
+ .lp-theme02-testimonial-avatar-placeholder {
3453
+ width: 72px;
3454
+ height: 72px;
3455
+ border-radius: 50%;
3456
+ display: flex;
3457
+ align-items: center;
3458
+ justify-content: center;
3459
+ border: 2px dashed var(--lp-border);
3460
+ color: var(--lp-ink3);
3461
+ font-size: 12px;
3462
+ background: var(--lp-overlay);
3463
+ }
3464
+
3465
+ .lp-theme02-testimonial-avatar-placeholder:hover {
3466
+ border-color: var(--lp-accent);
3467
+ color: var(--lp-accent);
3468
+ }
3469
+
3470
+ .lp-theme02-testimonial-meta {
3471
+ display: flex;
3472
+ flex-direction: column;
3473
+ gap: 6px;
3474
+ text-align: left;
3475
+ }
3476
+
3477
+ .lp-theme02-testimonial-name {
3478
+ font-size: 20px;
3479
+ font-weight: 800;
3480
+ color: var(--lp-ink);
3481
+ }
3482
+
3483
+ .lp-theme02-testimonial-role {
3484
+ font-size: 15px;
3485
+ font-weight: 600;
3486
+ color: var(--lp-ink2);
3487
+ }
3488
+
3489
+ /* ---- PEST v1 ---- */
3490
+ .lp-theme02-pest-v1 {
3491
+ display: flex;
3492
+ flex-direction: column;
3493
+ padding: 72px 84px;
3494
+ }
3495
+
3496
+ .lp-theme02-pest-header {
3497
+ display: flex;
3498
+ flex-direction: column;
3499
+ gap: 14px;
3500
+ margin-bottom: 44px;
3501
+ }
3502
+
3503
+ .lp-theme02-pest-title {
3504
+ font-size: 52px;
3505
+ font-weight: 900;
3506
+ line-height: 1.1;
3507
+ letter-spacing: -0.01em;
3508
+ margin: 0;
3509
+ color: var(--lp-ink);
3510
+ }
3511
+
3512
+ .lp-theme02-pest-subtitle {
3513
+ font-size: 22px;
3514
+ font-weight: 600;
3515
+ color: var(--lp-ink2);
3516
+ margin: 0;
3517
+ max-width: 760px;
3518
+ }
3519
+
3520
+ .lp-theme02-pest-grid {
3521
+ display: grid;
3522
+ grid-template-columns: repeat(2, 1fr);
3523
+ gap: 24px;
3524
+ flex: 1;
3525
+ align-content: center;
3526
+ }
3527
+
3528
+ .lp-theme02-pest-cell {
3529
+ position: relative;
3530
+ padding: 32px;
3531
+ background: var(--lp-surface);
3532
+ border: 1px solid var(--lp-border);
3533
+ border-radius: var(--lp-radius-large);
3534
+ box-shadow: var(--lp-shadow);
3535
+ display: flex;
3536
+ flex-direction: column;
3537
+ gap: 18px;
3538
+ overflow: hidden;
3539
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3540
+ }
3541
+
3542
+ .lp-theme02-pest-cell:hover {
3543
+ border-color: var(--lp-accent);
3544
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3545
+ }
3546
+
3547
+ .lp-theme02-pest-cell::before {
3548
+ content: '';
3549
+ position: absolute;
3550
+ top: 0;
3551
+ left: 0;
3552
+ right: 0;
3553
+ height: 3px;
3554
+ background: var(--lp-accent);
3555
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3556
+ }
3557
+
3558
+ .lp-theme02-pest-p::before {
3559
+ background: var(--lp-red);
3560
+ box-shadow: 0 0 16px rgba(255, 107, 107, 0.4);
3561
+ }
3562
+
3563
+ .lp-theme02-pest-e::before {
3564
+ background: var(--lp-amber);
3565
+ box-shadow: 0 0 16px rgba(251, 191, 36, 0.4);
3566
+ }
3567
+
3568
+ .lp-theme02-pest-s::before {
3569
+ background: var(--lp-accent-cool);
3570
+ box-shadow: 0 0 16px var(--lp-glow-cool);
3571
+ }
3572
+
3573
+ .lp-theme02-pest-t::before {
3574
+ background: var(--lp-green);
3575
+ box-shadow: 0 0 16px rgba(74, 222, 128, 0.4);
3576
+ }
3577
+
3578
+ .lp-theme02-pest-label-group {
3579
+ display: flex;
3580
+ align-items: baseline;
3581
+ gap: 12px;
3582
+ }
3583
+
3584
+ .lp-theme02-pest-label {
3585
+ font-family: var(--lp-font-mono);
3586
+ font-size: 42px;
3587
+ font-weight: 900;
3588
+ line-height: 1;
3589
+ color: var(--lp-accent);
3590
+ text-shadow: 0 0 18px var(--lp-glow-accent);
3591
+ }
3592
+
3593
+ .lp-theme02-pest-p .lp-theme02-pest-label {
3594
+ color: var(--lp-red);
3595
+ text-shadow: 0 0 18px rgba(255, 107, 107, 0.4);
3596
+ }
3597
+
3598
+ .lp-theme02-pest-e .lp-theme02-pest-label {
3599
+ color: var(--lp-amber);
3600
+ text-shadow: 0 0 18px rgba(251, 191, 36, 0.4);
3601
+ }
3602
+
3603
+ .lp-theme02-pest-s .lp-theme02-pest-label {
3604
+ color: var(--lp-accent-cool);
3605
+ text-shadow: 0 0 18px var(--lp-glow-cool);
3606
+ }
3607
+
3608
+ .lp-theme02-pest-t .lp-theme02-pest-label {
3609
+ color: var(--lp-green);
3610
+ text-shadow: 0 0 18px rgba(74, 222, 128, 0.4);
3611
+ }
3612
+
3613
+ .lp-theme02-pest-label-subtitle {
3614
+ font-size: 16px;
3615
+ font-weight: 700;
3616
+ letter-spacing: 0.04em;
3617
+ text-transform: uppercase;
3618
+ color: var(--lp-ink3);
3619
+ }
3620
+
3621
+ .lp-theme02-pest-value {
3622
+ font-size: 18px;
3623
+ line-height: 1.6;
3624
+ color: var(--lp-ink2);
3625
+ margin: 0;
3626
+ }
3627
+
3628
+ /* ---- Table v1 ---- */
3629
+ .lp-theme02-table-v1 {
3630
+ display: flex;
3631
+ flex-direction: column;
3632
+ padding: 72px 84px;
3633
+ }
3634
+
3635
+ .lp-theme02-table-header {
3636
+ display: flex;
3637
+ flex-direction: column;
3638
+ gap: 14px;
3639
+ margin-bottom: 36px;
3640
+ }
3641
+
3642
+ .lp-theme02-table-title {
3643
+ font-size: 52px;
3644
+ font-weight: 900;
3645
+ line-height: 1.1;
3646
+ letter-spacing: -0.01em;
3647
+ margin: 0;
3648
+ color: var(--lp-ink);
3649
+ }
3650
+
3651
+ .lp-theme02-table-subtitle {
3652
+ font-size: 22px;
3653
+ font-weight: 600;
3654
+ color: var(--lp-ink2);
3655
+ margin: 0;
3656
+ max-width: 760px;
3657
+ }
3658
+
3659
+ .lp-theme02-table-card {
3660
+ flex: 1;
3661
+ padding: 8px;
3662
+ background: var(--lp-surface);
3663
+ border: 1px solid var(--lp-border);
3664
+ border-radius: var(--lp-radius-large);
3665
+ box-shadow: var(--lp-shadow);
3666
+ overflow: hidden;
3667
+ display: flex;
3668
+ flex-direction: column;
3669
+ }
3670
+
3671
+ .lp-theme02-table {
3672
+ width: 100%;
3673
+ border-collapse: separate;
3674
+ border-spacing: 0;
3675
+ font-size: 16px;
3676
+ flex: 1;
3677
+ }
3678
+
3679
+ .lp-theme02-table thead th {
3680
+ padding: 18px 20px;
3681
+ text-align: left;
3682
+ font-weight: 800;
3683
+ color: var(--lp-ink);
3684
+ background: linear-gradient(135deg, color-mix(in srgb, var(--lp-accent) 12%, transparent), color-mix(in srgb, var(--lp-accent-cool) 8%, transparent));
3685
+ border-bottom: 1px solid var(--lp-border);
3686
+ text-transform: uppercase;
3687
+ letter-spacing: 0.04em;
3688
+ font-size: 13px;
3689
+ }
3690
+
3691
+ .lp-theme02-table thead th:first-child {
3692
+ border-top-left-radius: var(--lp-radius-small);
3693
+ }
3694
+
3695
+ .lp-theme02-table thead th:last-child {
3696
+ border-top-right-radius: var(--lp-radius-small);
3697
+ }
3698
+
3699
+ .lp-theme02-table td {
3700
+ padding: 18px 20px;
3701
+ color: var(--lp-ink2);
3702
+ border-bottom: 1px solid var(--lp-border);
3703
+ }
3704
+
3705
+ .lp-theme02-table tbody tr:last-child td {
3706
+ border-bottom: none;
3707
+ }
3708
+
3709
+ .lp-theme02-table tbody tr:hover td {
3710
+ background: color-mix(in srgb, var(--lp-accent) 5%, transparent);
3711
+ }
3712
+
3713
+ .lp-theme02-table td[data-lp-highlight='true'] {
3714
+ color: var(--lp-accent);
3715
+ font-weight: 800;
3716
+ text-shadow: 0 0 12px var(--lp-glow-accent);
3717
+ }
3718
+
3719
+ /* ---- Tags v1 ---- */
3720
+ .lp-theme02-tags-v1 {
3721
+ display: flex;
3722
+ flex-direction: column;
3723
+ padding: 72px 84px;
3724
+ }
3725
+
3726
+ .lp-theme02-tags-v1-header {
3727
+ display: flex;
3728
+ flex-direction: column;
3729
+ gap: 14px;
3730
+ margin-bottom: 44px;
3731
+ text-align: center;
3732
+ align-items: center;
3733
+ }
3734
+
3735
+ .lp-theme02-tags-v1-title {
3736
+ font-size: 52px;
3737
+ font-weight: 900;
3738
+ line-height: 1.1;
3739
+ letter-spacing: -0.01em;
3740
+ margin: 0;
3741
+ color: var(--lp-ink);
3742
+ }
3743
+
3744
+ .lp-theme02-tags-v1-subtitle {
3745
+ font-size: 22px;
3746
+ font-weight: 600;
3747
+ color: var(--lp-ink2);
3748
+ margin: 0;
3749
+ max-width: 760px;
3750
+ }
3751
+
3752
+ .lp-theme02-tags-v1-card {
3753
+ flex: 1;
3754
+ padding: 36px;
3755
+ background: var(--lp-surface);
3756
+ border: 1px solid var(--lp-border);
3757
+ border-radius: var(--lp-radius-large);
3758
+ box-shadow: var(--lp-shadow);
3759
+ display: flex;
3760
+ align-items: center;
3761
+ justify-content: center;
3762
+ }
3763
+
3764
+ .lp-theme02-tags-v1-cloud {
3765
+ display: flex;
3766
+ flex-wrap: wrap;
3767
+ gap: 14px;
3768
+ justify-content: center;
3769
+ }
3770
+
3771
+ .lp-theme02-tags-v1-tag {
3772
+ padding: 12px 20px;
3773
+ border-radius: 999px;
3774
+ background: var(--lp-overlay);
3775
+ border: 1px solid var(--lp-border);
3776
+ color: var(--lp-ink);
3777
+ font-size: 16px;
3778
+ font-weight: 700;
3779
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
3780
+ cursor: default;
3781
+ }
3782
+
3783
+ .lp-theme02-tags-v1-tag:hover {
3784
+ transform: translateY(-2px);
3785
+ border-color: var(--lp-accent);
3786
+ box-shadow: 0 0 18px var(--lp-glow-accent-subtle);
3787
+ }
3788
+
3789
+ .lp-theme02-tags-v1-tag--positive {
3790
+ border-color: var(--lp-green);
3791
+ color: var(--lp-green);
3792
+ box-shadow: 0 0 12px rgba(74, 222, 128, 0.2);
3793
+ }
3794
+
3795
+ .lp-theme02-tags-v1-tag--negative {
3796
+ border-color: var(--lp-red);
3797
+ color: var(--lp-red);
3798
+ box-shadow: 0 0 12px rgba(255, 107, 107, 0.2);
3799
+ }
3800
+
3801
+ .lp-theme02-tags-v1-tag--accent {
3802
+ border-color: var(--lp-accent);
3803
+ color: var(--lp-accent);
3804
+ box-shadow: 0 0 12px var(--lp-glow-accent-subtle);
3805
+ }
3806
+
3807
+ .lp-theme02-tags-v1-value {
3808
+ margin-left: 8px;
3809
+ padding: 2px 8px;
3810
+ border-radius: 999px;
3811
+ background: var(--lp-accent);
3812
+ color: var(--lp-text-inverse);
3813
+ font-size: 12px;
3814
+ font-weight: 800;
3815
+ }
3816
+
3817
+ /* ---- Filmstrip v1 ---- */
3818
+ .lp-theme02-filmstrip-v1 {
3819
+ display: flex;
3820
+ flex-direction: column;
3821
+ padding: 72px 84px;
3822
+ }
3823
+
3824
+ .lp-theme02-filmstrip-v1-header {
3825
+ display: flex;
3826
+ flex-direction: column;
3827
+ gap: 14px;
3828
+ margin-bottom: 36px;
3829
+ }
3830
+
3831
+ .lp-theme02-filmstrip-v1-title {
3832
+ font-size: 52px;
3833
+ font-weight: 900;
3834
+ line-height: 1.1;
3835
+ letter-spacing: -0.01em;
3836
+ margin: 0;
3837
+ color: var(--lp-ink);
3838
+ }
3839
+
3840
+ .lp-theme02-filmstrip-v1-subtitle {
3841
+ font-size: 22px;
3842
+ font-weight: 600;
3843
+ color: var(--lp-ink2);
3844
+ margin: 0;
3845
+ max-width: 760px;
3846
+ }
3847
+
3848
+ .lp-theme02-filmstrip-v1-track {
3849
+ display: flex;
3850
+ gap: 20px;
3851
+ flex: 1;
3852
+ overflow-x: auto;
3853
+ padding-bottom: 12px;
3854
+ align-items: stretch;
3855
+ }
3856
+
3857
+ .lp-theme02-filmstrip-v1-frame {
3858
+ flex: 0 0 320px;
3859
+ position: relative;
3860
+ border-radius: var(--lp-radius-large);
3861
+ overflow: hidden;
3862
+ border: 1px solid var(--lp-border);
3863
+ box-shadow: var(--lp-shadow);
3864
+ background: var(--lp-surface);
3865
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3866
+ }
3867
+
3868
+ .lp-theme02-filmstrip-v1-frame:hover {
3869
+ border-color: var(--lp-accent);
3870
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3871
+ }
3872
+
3873
+ .lp-theme02-filmstrip-v1-image {
3874
+ width: 100%;
3875
+ height: 100%;
3876
+ object-fit: cover;
3877
+ }
3878
+
3879
+ .lp-theme02-filmstrip-v1-image-placeholder {
3880
+ width: 100%;
3881
+ height: 100%;
3882
+ display: flex;
3883
+ align-items: center;
3884
+ justify-content: center;
3885
+ border: 2px dashed var(--lp-border);
3886
+ border-radius: var(--lp-radius-large);
3887
+ color: var(--lp-ink3);
3888
+ font-size: 14px;
3889
+ background: var(--lp-overlay);
3890
+ }
3891
+
3892
+ .lp-theme02-filmstrip-v1-image-placeholder:hover {
3893
+ border-color: var(--lp-accent);
3894
+ color: var(--lp-accent);
3895
+ }
3896
+
3897
+ .lp-theme02-filmstrip-v1-caption {
3898
+ position: absolute;
3899
+ bottom: 0;
3900
+ left: 0;
3901
+ right: 0;
3902
+ padding: 16px 20px;
3903
+ background: linear-gradient(0deg, rgba(8, 10, 14, 0.92), transparent);
3904
+ font-size: 15px;
3905
+ font-weight: 700;
3906
+ color: var(--lp-ink);
3907
+ }
3908
+
3909
+ /* ---- Stats v1 ---- */
3910
+ .lp-theme02-stats-v1 {
3911
+ display: flex;
3912
+ flex-direction: column;
3913
+ padding: 72px 84px;
3914
+ }
3915
+
3916
+ .lp-theme02-stats-header {
3917
+ display: flex;
3918
+ flex-direction: column;
3919
+ gap: 14px;
3920
+ margin-bottom: 44px;
3921
+ text-align: center;
3922
+ align-items: center;
3923
+ }
3924
+
3925
+ .lp-theme02-stats-title {
3926
+ font-size: 52px;
3927
+ font-weight: 900;
3928
+ line-height: 1.1;
3929
+ letter-spacing: -0.01em;
3930
+ margin: 0;
3931
+ color: var(--lp-ink);
3932
+ }
3933
+
3934
+ .lp-theme02-stats-subtitle {
3935
+ font-size: 22px;
3936
+ font-weight: 600;
3937
+ color: var(--lp-ink2);
3938
+ margin: 0;
3939
+ max-width: 760px;
3940
+ }
3941
+
3942
+ .lp-theme02-stats-grid {
3943
+ display: grid;
3944
+ grid-template-columns: repeat(3, 1fr);
3945
+ gap: 24px;
3946
+ flex: 1;
3947
+ align-content: center;
3948
+ }
3949
+
3950
+ .lp-theme02-stats-card {
3951
+ position: relative;
3952
+ padding: 36px 28px;
3953
+ background: var(--lp-surface);
3954
+ border: 1px solid var(--lp-border);
3955
+ border-radius: var(--lp-radius-large);
3956
+ box-shadow: var(--lp-shadow);
3957
+ display: flex;
3958
+ flex-direction: column;
3959
+ align-items: center;
3960
+ justify-content: center;
3961
+ gap: 10px;
3962
+ overflow: hidden;
3963
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
3964
+ }
3965
+
3966
+ .lp-theme02-stats-card:hover {
3967
+ transform: translateY(-4px);
3968
+ border-color: var(--lp-accent);
3969
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3970
+ }
3971
+
3972
+ .lp-theme02-stats-card::before {
3973
+ content: '';
3974
+ position: absolute;
3975
+ top: 0;
3976
+ left: 0;
3977
+ right: 0;
3978
+ height: 3px;
3979
+ background: var(--lp-accent);
3980
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3981
+ }
3982
+
3983
+ .lp-theme02-stats-card--cool::before {
3984
+ background: var(--lp-accent-cool);
3985
+ box-shadow: 0 0 16px var(--lp-glow-cool);
3986
+ }
3987
+
3988
+ .lp-theme02-stats-card--warm::before {
3989
+ background: var(--lp-accent-2);
3990
+ box-shadow: 0 0 16px var(--lp-glow-warm);
3991
+ }
3992
+
3993
+ .lp-theme02-stats-value {
3994
+ font-family: var(--lp-font-mono);
3995
+ font-size: 56px;
3996
+ font-weight: 900;
3997
+ line-height: 1;
3998
+ color: var(--lp-accent);
3999
+ text-shadow: 0 0 22px var(--lp-glow-accent);
4000
+ }
4001
+
4002
+ .lp-theme02-stats-unit {
4003
+ font-size: 24px;
4004
+ font-weight: 800;
4005
+ margin-left: 6px;
4006
+ color: var(--lp-ink2);
4007
+ }
4008
+
4009
+ .lp-theme02-stats-label {
4010
+ font-size: 16px;
4011
+ font-weight: 700;
4012
+ color: var(--lp-ink2);
4013
+ text-align: center;
4014
+ }
4015
+
4016
+ /* ---- 霓虹卡片统一扫光增强 ---- */
4017
+ .lp-theme02-bento-card,
4018
+ .lp-theme02-delta-item,
4019
+ .lp-theme02-metric-metric,
4020
+ .lp-theme02-stats-card,
4021
+ .lp-theme02-insight-panel,
4022
+ .lp-theme02-chart-insight {
4023
+ position: relative;
4024
+ overflow: hidden;
4025
+ }
4026
+
4027
+ .lp-theme02-bento-card::after,
4028
+ .lp-theme02-delta-item::after,
4029
+ .lp-theme02-metric-metric::after,
4030
+ .lp-theme02-stats-card::after,
4031
+ .lp-theme02-insight-panel::after,
4032
+ .lp-theme02-chart-insight::after {
4033
+ content: '';
4034
+ position: absolute;
4035
+ inset: 0;
4036
+ background: linear-gradient(
4037
+ 115deg,
4038
+ transparent 35%,
4039
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 48%,
4040
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 50%,
4041
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 52%,
4042
+ transparent 65%
4043
+ );
4044
+ transform: translateX(-120%) rotate(12deg);
4045
+ opacity: 0;
4046
+ transition: opacity 0.3s ease;
4047
+ pointer-events: none;
4048
+ }
4049
+
4050
+ .lp-theme02-bento-card:hover,
4051
+ .lp-theme02-delta-item:hover,
4052
+ .lp-theme02-metric-metric:hover,
4053
+ .lp-theme02-stats-card:hover,
4054
+ .lp-theme02-insight-panel:hover,
4055
+ .lp-theme02-chart-insight:hover {
4056
+ border-color: var(--lp-accent);
4057
+ box-shadow: 0 0 36px var(--lp-glow-accent);
4058
+ }
4059
+
4060
+ .lp-theme02-bento-card:hover::after,
4061
+ .lp-theme02-delta-item:hover::after,
4062
+ .lp-theme02-metric-metric:hover::after,
4063
+ .lp-theme02-stats-card:hover::after,
4064
+ .lp-theme02-insight-panel:hover::after,
4065
+ .lp-theme02-chart-insight:hover::after {
4066
+ opacity: 1;
4067
+ animation: lp-theme02-sweep 1.2s ease-in-out;
4068
+ }
4069
+
4070
+ /* ---- 图表霓虹描边动画 ---- */
4071
+ .lp-theme02-chart-svg path,
4072
+ .lp-theme02-chart-svg line,
4073
+ .lp-theme02-chart-svg rect,
4074
+ .lp-theme02-chart-svg circle,
4075
+ .lp-theme02-chart-svg polyline {
4076
+ animation: lp-theme02-stroke-glow 3s ease-in-out infinite;
4077
+ }
4078
+
4079
+ .lp-theme02-chart-svg text {
4080
+ animation: none;
4081
+ }
4082
+
4083
+ /* ---- 大数字光晕呼吸 ---- */
4084
+ .lp-theme02-metric-value,
4085
+ .lp-theme02-stats-value,
4086
+ .lp-theme02-bento-value,
4087
+ .lp-theme02-metrics-value,
4088
+ .lp-theme02-insight-value {
4089
+ animation: lp-theme02-text-glow 4s ease-in-out infinite;
4090
+ }
4091
+
4092
+ /* ============================================================
4093
+ * 高冲击力版式(cover-v2 / chapter-v2 / quote-v2 / number-showcase-v1)
4094
+ * ============================================================ */
4095
+
4096
+ @keyframes lp-theme02-gradient-shift {
4097
+ 0%, 100% {
4098
+ background-position: 0% 50%;
4099
+ transform: scale(1);
4100
+ }
4101
+ 50% {
4102
+ background-position: 100% 50%;
4103
+ transform: scale(1.06);
4104
+ }
4105
+ }
4106
+
4107
+ @keyframes lp-theme02-ring-rotate {
4108
+ from { transform: rotate(0deg); }
4109
+ to { transform: rotate(360deg); }
4110
+ }
4111
+
4112
+ @keyframes lp-theme02-number-pulse {
4113
+ 0%, 100% {
4114
+ text-shadow:
4115
+ 0 0 40px var(--lp-glow-accent),
4116
+ 0 0 80px var(--lp-glow-accent-strong),
4117
+ 0 0 140px var(--lp-glow-accent-subtle);
4118
+ }
4119
+ 50% {
4120
+ text-shadow:
4121
+ 0 0 70px var(--lp-glow-accent),
4122
+ 0 0 130px var(--lp-glow-accent-strong),
4123
+ 0 0 220px var(--lp-glow-accent-subtle);
4124
+ }
4125
+ }
4126
+
4127
+ /* ---- Cover v2 ---- */
4128
+
4129
+ .lp-theme02-cover-v2 {
4130
+ display: flex;
4131
+ align-items: center;
4132
+ justify-content: center;
4133
+ padding: 84px;
4134
+ overflow: hidden;
4135
+ }
4136
+
4137
+ .lp-theme02-cover-v2-gradient {
4138
+ position: absolute;
4139
+ inset: -10%;
4140
+ background:
4141
+ radial-gradient(circle at 20% 30%, var(--lp-glow-accent) 0%, transparent 45%),
4142
+ radial-gradient(circle at 80% 70%, var(--lp-glow-cool) 0%, transparent 45%),
4143
+ radial-gradient(circle at 50% 50%, var(--lp-glow-warm-subtle) 0%, transparent 55%),
4144
+ linear-gradient(135deg, var(--lp-bg-gradient-start) 0%, var(--lp-bg-gradient-end) 50%, var(--lp-bg-gradient-start) 100%);
4145
+ background-size: 200% 200%;
4146
+ animation: lp-theme02-gradient-shift 18s ease-in-out infinite;
4147
+ pointer-events: none;
4148
+ z-index: 0;
4149
+ }
4150
+
4151
+ .lp-theme02-cover-v2-grid {
4152
+ position: absolute;
4153
+ inset: 0;
4154
+ background-image:
4155
+ linear-gradient(var(--lp-border) 1px, transparent 1px),
4156
+ linear-gradient(90deg, var(--lp-border) 1px, transparent 1px);
4157
+ background-size: 80px 80px;
4158
+ opacity: 0.18;
4159
+ mask-image: radial-gradient(circle at 50% 50%, black 0%, transparent 70%);
4160
+ -webkit-mask-image: radial-gradient(circle at 50% 50%, black 0%, transparent 70%);
4161
+ pointer-events: none;
4162
+ z-index: 1;
4163
+ }
4164
+
4165
+ .lp-theme02-cover-v2-orb-accent {
4166
+ width: 560px;
4167
+ height: 560px;
4168
+ top: -18%;
4169
+ right: -12%;
4170
+ opacity: 0.28;
4171
+ animation-duration: 10s;
4172
+ }
4173
+
4174
+ .lp-theme02-cover-v2-orb-cool {
4175
+ width: 480px;
4176
+ height: 480px;
4177
+ bottom: -20%;
4178
+ left: -10%;
4179
+ opacity: 0.22;
4180
+ animation-duration: 12s;
4181
+ }
4182
+
4183
+ .lp-theme02-cover-v2-image {
4184
+ position: absolute;
4185
+ inset: 0;
4186
+ width: 100%;
4187
+ height: 100%;
4188
+ object-fit: cover;
4189
+ z-index: 0;
4190
+ opacity: 0.45;
4191
+ }
4192
+
4193
+ .lp-theme02-cover-v2-overlay {
4194
+ position: absolute;
4195
+ inset: 0;
4196
+ background:
4197
+ linear-gradient(180deg, rgba(8, 10, 14, 0.55) 0%, rgba(8, 10, 14, 0.82) 60%, rgba(8, 10, 14, 0.92) 100%),
4198
+ radial-gradient(circle at 50% 50%, transparent 0%, rgba(8, 10, 14, 0.55) 100%);
4199
+ z-index: 1;
4200
+ pointer-events: none;
4201
+ }
4202
+
4203
+ .lp-theme02-cover-v2-content {
4204
+ position: relative;
4205
+ z-index: 2;
4206
+ width: 100%;
4207
+ max-width: 1080px;
4208
+ display: flex;
4209
+ flex-direction: column;
4210
+ align-items: center;
4211
+ text-align: center;
4212
+ gap: 28px;
4213
+ }
4214
+
4215
+ .lp-theme02-cover-v2-title {
4216
+ font-family: var(--lp-font);
4217
+ font-size: 96px;
4218
+ font-weight: 900;
4219
+ line-height: 1.0;
4220
+ letter-spacing: -0.03em;
4221
+ margin: 0;
4222
+ background: linear-gradient(135deg, var(--lp-ink) 0%, var(--lp-accent) 55%, var(--lp-accent-cool) 100%);
4223
+ -webkit-background-clip: text;
4224
+ background-clip: text;
4225
+ -webkit-text-fill-color: transparent;
4226
+ text-shadow: 0 0 60px var(--lp-glow-accent-subtle);
4227
+ animation: lp-theme02-text-glow 4s ease-in-out infinite;
4228
+ }
4229
+
4230
+ .lp-theme02-cover-v2-subtitle {
4231
+ font-size: 30px;
4232
+ font-weight: 600;
4233
+ line-height: 1.45;
4234
+ color: var(--lp-ink2);
4235
+ margin: 0;
4236
+ max-width: 760px;
4237
+ }
4238
+
4239
+ .lp-theme02-cover-v2-date {
4240
+ font-family: var(--lp-font-mono);
4241
+ font-size: 15px;
4242
+ font-weight: 700;
4243
+ letter-spacing: 0.08em;
4244
+ text-transform: uppercase;
4245
+ color: var(--lp-ink3);
4246
+ padding: 12px 22px;
4247
+ background: rgba(255, 255, 255, 0.05);
4248
+ border: 1px solid var(--lp-border);
4249
+ border-radius: var(--lp-radius-small);
4250
+ }
4251
+
4252
+ /* ---- Chapter v2 ---- */
4253
+
4254
+ .lp-theme02-chapter-v2 {
4255
+ display: flex;
4256
+ align-items: center;
4257
+ justify-content: center;
4258
+ padding: 84px;
4259
+ overflow: hidden;
4260
+ }
4261
+
4262
+ .lp-theme02-chapter-v2-rings {
4263
+ position: absolute;
4264
+ inset: 0;
4265
+ display: flex;
4266
+ align-items: center;
4267
+ justify-content: center;
4268
+ pointer-events: none;
4269
+ z-index: 0;
4270
+ }
4271
+
4272
+ .lp-theme02-chapter-v2-ring {
4273
+ position: absolute;
4274
+ width: 560px;
4275
+ height: 560px;
4276
+ border-radius: 50%;
4277
+ border: 1px solid var(--lp-border);
4278
+ box-shadow:
4279
+ inset 0 0 60px var(--lp-glow-accent-subtle),
4280
+ 0 0 80px var(--lp-glow-accent-subtle);
4281
+ animation: lp-theme02-ring-rotate 24s linear infinite;
4282
+ }
4283
+
4284
+ .lp-theme02-chapter-v2-ring::before {
4285
+ content: '';
4286
+ position: absolute;
4287
+ inset: 24px;
4288
+ border-radius: 50%;
4289
+ border: 1px dashed color-mix(in srgb, var(--lp-accent) 35%, transparent);
4290
+ opacity: 0.6;
4291
+ }
4292
+
4293
+ .lp-theme02-chapter-v2-ring--inner {
4294
+ width: 420px;
4295
+ height: 420px;
4296
+ animation-direction: reverse;
4297
+ animation-duration: 18s;
4298
+ border-color: color-mix(in srgb, var(--lp-accent-cool) 40%, transparent);
4299
+ box-shadow:
4300
+ inset 0 0 50px var(--lp-glow-cool-subtle),
4301
+ 0 0 60px var(--lp-glow-cool-subtle);
4302
+ }
4303
+
4304
+ .lp-theme02-chapter-v2-content {
4305
+ position: relative;
4306
+ z-index: 2;
4307
+ width: 100%;
4308
+ max-width: 960px;
4309
+ display: flex;
4310
+ flex-direction: column;
4311
+ align-items: center;
4312
+ text-align: center;
4313
+ gap: 28px;
4314
+ }
4315
+
4316
+ .lp-theme02-chapter-v2-number {
4317
+ font-family: var(--lp-font-mono);
4318
+ font-size: 180px;
4319
+ font-weight: 900;
4320
+ line-height: 1;
4321
+ color: transparent;
4322
+ -webkit-text-stroke: 3px var(--lp-accent);
4323
+ text-shadow:
4324
+ 0 0 40px var(--lp-glow-accent),
4325
+ 0 0 80px var(--lp-glow-accent-strong);
4326
+ animation: lp-theme02-text-glow 3.5s ease-in-out infinite;
4327
+ }
4328
+
4329
+ .lp-theme02-chapter-v2-title {
4330
+ font-family: var(--lp-font);
4331
+ font-size: 68px;
4332
+ font-weight: 900;
4333
+ line-height: 1.08;
4334
+ letter-spacing: -0.02em;
4335
+ margin: 0;
4336
+ color: var(--lp-ink);
4337
+ }
4338
+
4339
+ .lp-theme02-chapter-v2-subtitle {
4340
+ font-size: 24px;
4341
+ font-weight: 600;
4342
+ line-height: 1.5;
4343
+ color: var(--lp-ink2);
4344
+ margin: 0;
4345
+ max-width: 720px;
4346
+ }
4347
+
4348
+ /* ---- Quote v2 ---- */
4349
+
4350
+ .lp-theme02-quote-v2 {
4351
+ display: flex;
4352
+ align-items: center;
4353
+ justify-content: center;
4354
+ padding: 84px;
4355
+ overflow: hidden;
4356
+ }
4357
+
4358
+ .lp-theme02-quote-v2-glow {
4359
+ position: absolute;
4360
+ width: 520px;
4361
+ height: 520px;
4362
+ border-radius: 50%;
4363
+ background: radial-gradient(circle at center, var(--lp-glow-accent) 0%, transparent 60%);
4364
+ opacity: 0.22;
4365
+ filter: blur(40px);
4366
+ pointer-events: none;
4367
+ z-index: 0;
4368
+ animation: lp-theme02-pulse 8s ease-in-out infinite;
4369
+ }
4370
+
4371
+ .lp-theme02-quote-v2-card {
4372
+ position: relative;
4373
+ z-index: 2;
4374
+ width: 100%;
4375
+ max-width: 1000px;
4376
+ padding: 64px 72px;
4377
+ background: var(--lp-surface);
4378
+ border: 1px solid var(--lp-border);
4379
+ border-radius: var(--lp-radius-large);
4380
+ box-shadow: var(--lp-shadow), 0 0 60px var(--lp-glow-accent-subtle);
4381
+ display: flex;
4382
+ flex-direction: column;
4383
+ align-items: center;
4384
+ text-align: center;
4385
+ gap: 36px;
4386
+ overflow: hidden;
4387
+ }
4388
+
4389
+ .lp-theme02-quote-v2-card::before {
4390
+ content: '';
4391
+ position: absolute;
4392
+ top: 0;
4393
+ left: 0;
4394
+ right: 0;
4395
+ height: 3px;
4396
+ background: linear-gradient(90deg, transparent, var(--lp-accent), var(--lp-accent-cool), transparent);
4397
+ box-shadow: 0 0 24px var(--lp-glow-accent);
4398
+ }
4399
+
4400
+ .lp-theme02-quote-v2-card::after {
4401
+ content: '';
4402
+ position: absolute;
4403
+ inset: 0;
4404
+ background: linear-gradient(
4405
+ 115deg,
4406
+ transparent 35%,
4407
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 48%,
4408
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 50%,
4409
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 52%,
4410
+ transparent 65%
4411
+ );
4412
+ transform: translateX(-120%) rotate(12deg);
4413
+ opacity: 0;
4414
+ transition: opacity 0.3s ease;
4415
+ pointer-events: none;
4416
+ }
4417
+
4418
+ .lp-theme02-quote-v2-card:hover::after {
4419
+ opacity: 1;
4420
+ animation: lp-theme02-sweep 1.2s ease-in-out;
4421
+ }
4422
+
4423
+ .lp-theme02-quote-v2-mark {
4424
+ font-family: var(--lp-font);
4425
+ font-size: 120px;
4426
+ font-weight: 900;
4427
+ line-height: 1;
4428
+ color: var(--lp-accent);
4429
+ text-shadow: 0 0 40px var(--lp-glow-accent);
4430
+ margin-bottom: -24px;
4431
+ animation: lp-theme02-text-glow 3s ease-in-out infinite;
4432
+ }
4433
+
4434
+ .lp-theme02-quote-v2-text {
4435
+ font-size: 38px;
4436
+ font-weight: 700;
4437
+ line-height: 1.45;
4438
+ color: var(--lp-ink);
4439
+ margin: 0;
4440
+ }
4441
+
4442
+ .lp-theme02-quote-v2-text::before {
4443
+ content: '“';
4444
+ color: var(--lp-accent);
4445
+ margin-right: 4px;
4446
+ text-shadow: 0 0 18px var(--lp-glow-accent);
4447
+ }
4448
+
4449
+ .lp-theme02-quote-v2-text::after {
4450
+ content: '”';
4451
+ color: var(--lp-accent);
4452
+ margin-left: 4px;
4453
+ text-shadow: 0 0 18px var(--lp-glow-accent);
4454
+ }
4455
+
4456
+ .lp-theme02-quote-v2-meta {
4457
+ display: flex;
4458
+ align-items: center;
4459
+ gap: 16px;
4460
+ flex-wrap: wrap;
4461
+ justify-content: center;
4462
+ }
4463
+
4464
+ .lp-theme02-quote-v2-author {
4465
+ font-size: 20px;
4466
+ font-weight: 800;
4467
+ color: var(--lp-ink);
4468
+ }
4469
+
4470
+ .lp-theme02-quote-v2-role,
4471
+ .lp-theme02-quote-v2-source {
4472
+ font-family: var(--lp-font-mono);
4473
+ font-size: 14px;
4474
+ font-weight: 700;
4475
+ letter-spacing: 0.04em;
4476
+ color: var(--lp-ink3);
4477
+ }
4478
+
4479
+ .lp-theme02-quote-v2-role::before {
4480
+ content: '/';
4481
+ margin-right: 10px;
4482
+ color: var(--lp-border);
4483
+ }
4484
+
4485
+ .lp-theme02-quote-v2-source::before {
4486
+ content: '·';
4487
+ margin-right: 10px;
4488
+ color: var(--lp-border);
4489
+ }
4490
+
4491
+ /* ---- Number Showcase v1 ---- */
4492
+
4493
+ .lp-theme02-number-showcase-v1 {
4494
+ display: flex;
4495
+ align-items: center;
4496
+ justify-content: center;
4497
+ padding: 84px;
4498
+ overflow: hidden;
4499
+ }
4500
+
4501
+ .lp-theme02-number-showcase-v1-glow {
4502
+ position: absolute;
4503
+ width: 600px;
4504
+ height: 600px;
4505
+ border-radius: 50%;
4506
+ background: radial-gradient(circle at center, var(--lp-glow-accent) 0%, transparent 55%);
4507
+ opacity: 0.22;
4508
+ filter: blur(60px);
4509
+ pointer-events: none;
4510
+ z-index: 0;
4511
+ animation: lp-theme02-pulse 7s ease-in-out infinite;
4512
+ }
4513
+
4514
+ .lp-theme02-number-showcase-v1-rings {
4515
+ position: absolute;
4516
+ inset: 0;
4517
+ display: flex;
4518
+ align-items: center;
4519
+ justify-content: center;
4520
+ pointer-events: none;
4521
+ z-index: 0;
4522
+ }
4523
+
4524
+ .lp-theme02-number-showcase-v1-ring {
4525
+ position: absolute;
4526
+ width: 520px;
4527
+ height: 520px;
4528
+ border-radius: 50%;
4529
+ border: 1px solid var(--lp-border);
4530
+ box-shadow:
4531
+ inset 0 0 80px var(--lp-glow-accent-subtle),
4532
+ 0 0 80px var(--lp-glow-accent-subtle);
4533
+ animation: lp-theme02-ring-rotate 28s linear infinite;
4534
+ }
4535
+
4536
+ .lp-theme02-number-showcase-v1-ring--inner {
4537
+ width: 380px;
4538
+ height: 380px;
4539
+ animation-direction: reverse;
4540
+ animation-duration: 20s;
4541
+ border-color: color-mix(in srgb, var(--lp-accent-cool) 35%, transparent);
4542
+ box-shadow:
4543
+ inset 0 0 60px var(--lp-glow-cool-subtle),
4544
+ 0 0 60px var(--lp-glow-cool-subtle);
4545
+ }
4546
+
4547
+ .lp-theme02-number-showcase-v1-content {
4548
+ position: relative;
4549
+ z-index: 2;
4550
+ width: 100%;
4551
+ max-width: 1000px;
4552
+ display: flex;
4553
+ flex-direction: column;
4554
+ align-items: center;
4555
+ text-align: center;
4556
+ gap: 24px;
4557
+ }
4558
+
4559
+ .lp-theme02-number-showcase-v1-title {
4560
+ font-size: 44px;
4561
+ font-weight: 900;
4562
+ line-height: 1.1;
4563
+ letter-spacing: -0.01em;
4564
+ margin: 0;
4565
+ color: var(--lp-ink);
4566
+ }
4567
+
4568
+ .lp-theme02-number-showcase-v1-value-wrap {
4569
+ display: flex;
4570
+ align-items: baseline;
4571
+ gap: 18px;
4572
+ }
4573
+
4574
+ .lp-theme02-number-showcase-v1-value {
4575
+ font-family: var(--lp-font-mono);
4576
+ font-size: 180px;
4577
+ font-weight: 900;
4578
+ line-height: 1;
4579
+ letter-spacing: -0.04em;
4580
+ color: var(--lp-ink);
4581
+ background: linear-gradient(135deg, var(--lp-ink) 0%, var(--lp-accent) 60%, var(--lp-accent-cool) 100%);
4582
+ -webkit-background-clip: text;
4583
+ background-clip: text;
4584
+ -webkit-text-fill-color: transparent;
4585
+ animation: lp-theme02-number-pulse 4s ease-in-out infinite;
4586
+ }
4587
+
4588
+ .lp-theme02-number-showcase-v1-unit {
4589
+ font-family: var(--lp-font-mono);
4590
+ font-size: 36px;
4591
+ font-weight: 800;
4592
+ color: var(--lp-ink2);
4593
+ }
4594
+
4595
+ .lp-theme02-number-showcase-v1-description {
4596
+ font-size: 24px;
4597
+ font-weight: 600;
4598
+ line-height: 1.5;
4599
+ color: var(--lp-ink2);
4600
+ margin: 0;
4601
+ max-width: 720px;
4602
+ }
4603
+
4604
+ .lp-theme02-number-showcase-v1-footnote {
4605
+ font-family: var(--lp-font-mono);
4606
+ font-size: 13px;
4607
+ font-weight: 700;
4608
+ letter-spacing: 0.04em;
4609
+ color: var(--lp-ink3);
4610
+ padding: 10px 18px;
4611
+ background: rgba(255, 255, 255, 0.05);
4612
+ border: 1px solid var(--lp-border);
4613
+ border-radius: var(--lp-radius-small);
4614
+ }
4615
+
4616
+ @media (prefers-reduced-motion: reduce) {
4617
+ .lp-theme02-cover-v2-gradient,
4618
+ .lp-theme02-chapter-v2-ring,
4619
+ .lp-theme02-quote-v2-glow,
4620
+ .lp-theme02-number-showcase-v1-glow,
4621
+ .lp-theme02-number-showcase-v1-ring,
4622
+ .lp-theme02-number-showcase-v1-value,
4623
+ .lp-theme02-cover-v2-title,
4624
+ .lp-theme02-chapter-v2-number,
4625
+ .lp-theme02-quote-v2-mark {
4626
+ animation: none;
4627
+ }
4628
+ }
4629
+
4630
+ /* ===== Theme02 扩展版式 (Batch A) ===== */
4631
+
4632
+ /* ---- feature-v2 图标特性网格 ---- */
4633
+ .lp-theme02-feature-v2 { position: relative; }
4634
+ .lp-theme02-feature-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4635
+ .lp-theme02-feature-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 36px; }
4636
+ .lp-theme02-feature-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4637
+ .lp-theme02-feature-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4638
+ .lp-theme02-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 28px; }
4639
+ .lp-theme02-feature-item { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 24px; display: flex; flex-direction: column; gap: 10px; box-shadow: var(--lp-shadow-sm); }
4640
+ .lp-theme02-feature-icon { font-size: 32px; line-height: 1; }
4641
+ .lp-theme02-feature-item-title { font-size: 22px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4642
+ .lp-theme02-feature-item-desc { font-size: 15px; color: var(--lp-ink2); line-height: 1.5; margin: 0; }
4643
+
4644
+ /* ---- checklist-v1 行动清单 ---- */
4645
+ .lp-theme02-checklist-v1 { position: relative; }
4646
+ .lp-theme02-checklist-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4647
+ .lp-theme02-checklist-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; }
4648
+ .lp-theme02-checklist-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4649
+ .lp-theme02-checklist-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4650
+ .lp-theme02-checklist-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
4651
+ .lp-theme02-checklist-item { display: flex; align-items: flex-start; gap: 16px; }
4652
+ .lp-theme02-checklist-mark { flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--lp-glow-accent-subtle); border: 1px solid var(--lp-accent); color: var(--lp-accent); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; }
4653
+ .lp-theme02-checklist-body { display: flex; flex-direction: column; gap: 4px; }
4654
+ .lp-theme02-checklist-text { font-size: 22px; font-weight: 700; color: var(--lp-ink); }
4655
+ .lp-theme02-checklist-note { font-size: 15px; color: var(--lp-ink2); }
4656
+
4657
+ /* ---- steps-v1 编号步骤 ---- */
4658
+ .lp-theme02-steps-v1 { position: relative; }
4659
+ .lp-theme02-steps-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4660
+ .lp-theme02-steps-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 36px; }
4661
+ .lp-theme02-steps-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4662
+ .lp-theme02-steps-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4663
+ .lp-theme02-steps-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 28px; }
4664
+ .lp-theme02-step { display: flex; flex-direction: column; gap: 10px; }
4665
+ .lp-theme02-step-index { width: 48px; height: 48px; border-radius: 50%; background: var(--lp-surface); border: 1px solid var(--lp-accent); color: var(--lp-accent); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 20px; box-shadow: 0 0 18px var(--lp-glow-accent-subtle); }
4666
+ .lp-theme02-step-title { font-size: 22px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4667
+ .lp-theme02-step-desc { font-size: 15px; color: var(--lp-ink2); line-height: 1.5; margin: 0; }
4668
+
4669
+ /* ---- card-grid-v1 通用卡片网格 ---- */
4670
+ .lp-theme02-card-grid-v1 { position: relative; }
4671
+ .lp-theme02-card-grid-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4672
+ .lp-theme02-card-grid-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; }
4673
+ .lp-theme02-card-grid-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4674
+ .lp-theme02-card-grid-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4675
+ .lp-theme02-card-grid-items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 24px; }
4676
+ .lp-theme02-card-grid-item { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 22px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--lp-shadow-sm); }
4677
+ .lp-theme02-card-grid-tag { align-self: flex-start; font-family: var(--lp-font-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--lp-accent); padding: 4px 10px; border: 1px solid var(--lp-border); border-radius: 999px; }
4678
+ .lp-theme02-card-grid-item-title { font-size: 21px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4679
+ .lp-theme02-card-grid-item-desc { font-size: 15px; color: var(--lp-ink2); line-height: 1.5; margin: 0; }
4680
+
4681
+ /* ---- highlight-v1 关键结论 ---- */
4682
+ .lp-theme02-highlight-v1 { position: relative; }
4683
+ .lp-theme02-highlight-card { position: relative; z-index: 1; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; text-align: center; padding: 60px 100px; }
4684
+ .lp-theme02-highlight-pill { margin-bottom: 2px; }
4685
+ .lp-theme02-highlight-title { font-size: 24px; font-weight: 700; color: var(--lp-ink2); margin: 0; }
4686
+ .lp-theme02-highlight-statement { font-size: 46px; font-weight: 900; line-height: 1.25; letter-spacing: -0.01em; color: var(--lp-ink); margin: 0; max-width: 1000px; }
4687
+ .lp-theme02-highlight-footnote { font-size: 18px; color: var(--lp-ink2); margin: 0; }
4688
+
4689
+ /* ---- comparison-v2 双栏对比 ---- */
4690
+ .lp-theme02-comparison-v2 { position: relative; }
4691
+ .lp-theme02-comparison-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4692
+ .lp-theme02-comparison-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; }
4693
+ .lp-theme02-comparison-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4694
+ .lp-theme02-comparison-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4695
+ .lp-theme02-comparison-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 24px; }
4696
+ .lp-theme02-comparison-col { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 28px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--lp-shadow-sm); }
4697
+ .lp-theme02-comparison-col--right { border-color: var(--lp-accent); }
4698
+ .lp-theme02-comparison-col-title { font-size: 26px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4699
+ .lp-theme02-comparison-points { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
4700
+ .lp-theme02-comparison-points li { position: relative; padding-left: 24px; font-size: 18px; color: var(--lp-ink); line-height: 1.5; }
4701
+ .lp-theme02-comparison-points li::before { content: ''; position: absolute; left: 0; top: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--lp-accent); }
4702
+ .lp-theme02-comparison-col--left .lp-theme02-comparison-points li::before { background: var(--lp-ink3); }
4703
+
4704
+ /* ---- matrix-v1 四象限 ---- */
4705
+ .lp-theme02-matrix-v1 { position: relative; }
4706
+ .lp-theme02-matrix-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4707
+ .lp-theme02-matrix-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 24px; }
4708
+ .lp-theme02-matrix-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4709
+ .lp-theme02-matrix-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4710
+ .lp-theme02-matrix-body { display: flex; gap: 12px; margin-top: 16px; flex: 1; min-height: 0; }
4711
+ .lp-theme02-matrix-yaxis { writing-mode: vertical-rl; text-orientation: mixed; align-self: center; font-size: 13px; color: var(--lp-ink3); font-family: var(--lp-font-mono); letter-spacing: 0.1em; text-transform: uppercase; }
4712
+ .lp-theme02-matrix-grid { flex: 1; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; min-height: 0; }
4713
+ .lp-theme02-matrix-cell { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 20px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--lp-shadow-sm); min-height: 0; }
4714
+ .lp-theme02-matrix-cell--0 { border-top: 3px solid var(--lp-accent); }
4715
+ .lp-theme02-matrix-cell--1 { border-top: 3px solid var(--lp-accent-cool); }
4716
+ .lp-theme02-matrix-cell--2 { border-top: 3px solid var(--lp-violet); }
4717
+ .lp-theme02-matrix-cell--3 { border-top: 3px solid var(--lp-pink); }
4718
+ .lp-theme02-matrix-cell-title { font-size: 20px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4719
+ .lp-theme02-matrix-cell-desc { font-size: 14px; color: var(--lp-ink2); line-height: 1.45; margin: 0; overflow: hidden; }
4720
+ .lp-theme02-matrix-xaxis { text-align: center; font-size: 13px; color: var(--lp-ink3); font-family: var(--lp-font-mono); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 6px; }
4721
+
4722
+ /* ---- stat-grid-v1 指标网格 ---- */
4723
+ .lp-theme02-stat-grid-v1 { position: relative; }
4724
+ .lp-theme02-stat-grid-card { position: relative; z-index: 1; width: 100%; height: 100%; padding: 60px 80px; display: flex; flex-direction: column; }
4725
+ .lp-theme02-stat-grid-header { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; }
4726
+ .lp-theme02-stat-grid-title { font-size: 48px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4727
+ .lp-theme02-stat-grid-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4728
+ .lp-theme02-stat-grid-items { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 24px; }
4729
+ .lp-theme02-stat-grid-item { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 22px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--lp-shadow-sm); }
4730
+ .lp-theme02-stat-grid-value { font-size: 38px; font-weight: 900; color: var(--lp-accent); line-height: 1; display: flex; align-items: baseline; gap: 4px; }
4731
+ .lp-theme02-stat-grid-unit { font-size: 18px; font-weight: 700; color: var(--lp-ink2); }
4732
+ .lp-theme02-stat-grid-label { font-size: 15px; color: var(--lp-ink2); }
4733
+ .lp-theme02-stat-grid-delta { font-size: 14px; font-weight: 700; color: var(--lp-green); font-family: var(--lp-font-mono); }
4734
+
4735
+ /* ---- cover-v3 备选封面 ---- */
4736
+ .lp-theme02-cover-v3 { display: flex; align-items: center; justify-content: center; }
4737
+ .lp-theme02-cover-v3-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; padding: 0 80px; }
4738
+ .lp-theme02-cover-v3-title { font-size: 72px; font-weight: 900; line-height: 1.05; letter-spacing: -0.02em; color: var(--lp-ink); margin: 0; background: linear-gradient(135deg, var(--lp-ink) 0%, var(--lp-accent) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
4739
+ .lp-theme02-cover-v3-subtitle { font-size: 24px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 880px; }
4740
+ .lp-theme02-cover-v3-date { font-size: 15px; color: var(--lp-ink3); font-family: var(--lp-font-mono); letter-spacing: 0.08em; }
4741
+
4742
+ /* ---- closing-v2 备选收尾 ---- */
4743
+ .lp-theme02-closing-v2 { display: flex; align-items: center; justify-content: center; }
4744
+ .lp-theme02-closing-v2-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; padding: 0 80px; }
4745
+ .lp-theme02-closing-v2-title { font-size: 64px; font-weight: 900; line-height: 1.08; color: var(--lp-ink); margin: 0; }
4746
+ .lp-theme02-closing-v2-subtitle { font-size: 24px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 900px; }
4747
+ .lp-theme02-closing-v2-cta { margin-top: 8px; font-size: 18px; font-weight: 800; color: var(--lp-text-inverse); background: var(--lp-accent); padding: 14px 32px; border-radius: 999px; box-shadow: 0 0 24px var(--lp-glow-accent); }
4748
+
4749
+ /* ===== Theme02 扩展版式 (Batch B) ===== */
4750
+
4751
+ /* 公共版式容器 */
4752
+ .lp-theme02-chart-bar-inner,
4753
+ .lp-theme02-chart-line-inner,
4754
+ .lp-theme02-chart-area-inner,
4755
+ .lp-theme02-chart-stack-inner,
4756
+ .lp-theme02-kpi-strip-inner,
4757
+ .lp-theme02-big-stat-inner,
4758
+ .lp-theme02-cycle-inner,
4759
+ .lp-theme02-swimlane-inner,
4760
+ .lp-theme02-pyramid-inner,
4761
+ .lp-theme02-org-chart-inner,
4762
+ .lp-theme02-flow-inner,
4763
+ .lp-theme02-table-v2-inner,
4764
+ .lp-theme02-image-split-inner,
4765
+ .lp-theme02-image-grid-v2-inner,
4766
+ .lp-theme02-logo-wall-inner {
4767
+ position: relative;
4768
+ z-index: 1;
4769
+ width: 100%;
4770
+ height: 100%;
4771
+ padding: 56px 64px;
4772
+ display: flex;
4773
+ flex-direction: column;
4774
+ }
4775
+ .lp-theme02-chart-bar-header,
4776
+ .lp-theme02-chart-line-header,
4777
+ .lp-theme02-chart-area-header,
4778
+ .lp-theme02-chart-stack-header,
4779
+ .lp-theme02-kpi-strip-header,
4780
+ .lp-theme02-cycle-header,
4781
+ .lp-theme02-swimlane-header,
4782
+ .lp-theme02-pyramid-header,
4783
+ .lp-theme02-org-chart-header,
4784
+ .lp-theme02-flow-header,
4785
+ .lp-theme02-table-v2-header,
4786
+ .lp-theme02-image-grid-v2-header,
4787
+ .lp-theme02-logo-wall-header {
4788
+ display: flex;
4789
+ flex-direction: column;
4790
+ gap: 14px;
4791
+ margin-bottom: 28px;
4792
+ }
4793
+ .lp-theme02-chart-bar-title,
4794
+ .lp-theme02-chart-line-title,
4795
+ .lp-theme02-chart-area-title,
4796
+ .lp-theme02-chart-stack-title,
4797
+ .lp-theme02-kpi-strip-title,
4798
+ .lp-theme02-cycle-title,
4799
+ .lp-theme02-swimlane-title,
4800
+ .lp-theme02-pyramid-title,
4801
+ .lp-theme02-org-chart-title,
4802
+ .lp-theme02-flow-title,
4803
+ .lp-theme02-table-v2-title,
4804
+ .lp-theme02-image-grid-v2-title,
4805
+ .lp-theme02-logo-wall-title {
4806
+ font-size: 38px;
4807
+ font-weight: 900;
4808
+ line-height: 1.1;
4809
+ color: var(--lp-ink);
4810
+ margin: 0;
4811
+ }
4812
+ .lp-theme02-chart-bar-subtitle,
4813
+ .lp-theme02-chart-line-subtitle,
4814
+ .lp-theme02-chart-area-subtitle,
4815
+ .lp-theme02-chart-stack-subtitle,
4816
+ .lp-theme02-kpi-strip-subtitle,
4817
+ .lp-theme02-cycle-subtitle,
4818
+ .lp-theme02-swimlane-subtitle,
4819
+ .lp-theme02-pyramid-subtitle,
4820
+ .lp-theme02-org-chart-subtitle,
4821
+ .lp-theme02-flow-subtitle,
4822
+ .lp-theme02-table-v2-subtitle,
4823
+ .lp-theme02-image-grid-v2-subtitle,
4824
+ .lp-theme02-logo-wall-subtitle {
4825
+ font-size: 17px;
4826
+ font-weight: 600;
4827
+ color: var(--lp-ink2);
4828
+ margin: 0;
4829
+ max-width: 920px;
4830
+ }
4831
+ .lp-theme02-chart-bar-unit,
4832
+ .lp-theme02-chart-line-unit,
4833
+ .lp-theme02-chart-area-unit,
4834
+ .lp-theme02-chart-stack-unit {
4835
+ font-family: var(--lp-font-mono);
4836
+ font-size: 13px;
4837
+ color: var(--lp-ink3);
4838
+ margin: -10px 0 12px;
4839
+ }
4840
+
4841
+ /* ---- chart-bar-v1 ---- */
4842
+ .lp-theme02-chart-bar-svg { width: 100%; height: auto; flex: 1; min-height: 0; }
4843
+ .lp-theme02-chart-bar-rect { transition: opacity 0.2s ease; }
4844
+ .lp-theme02-chart-bar-rect:hover { opacity: 0.82; }
4845
+ .lp-theme02-chart-bar-empty,
4846
+ .lp-theme02-chart-line-empty,
4847
+ .lp-theme02-chart-area-empty,
4848
+ .lp-theme02-chart-stack-empty { flex: 1; display: flex; align-items: center; justify-content: center; color: var(--lp-ink3); font-family: var(--lp-font-mono); font-size: 14px; }
4849
+ .lp-theme02-chart-bar-legend,
4850
+ .lp-theme02-chart-line-legend,
4851
+ .lp-theme02-chart-area-legend,
4852
+ .lp-theme02-chart-stack-legend { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 18px; }
4853
+ .lp-theme02-chart-bar-legend-item,
4854
+ .lp-theme02-chart-line-legend-item,
4855
+ .lp-theme02-chart-area-legend-item,
4856
+ .lp-theme02-chart-stack-legend-item { display: flex; align-items: center; gap: 8px; }
4857
+ .lp-theme02-chart-bar-legend-dot,
4858
+ .lp-theme02-chart-line-legend-dot,
4859
+ .lp-theme02-chart-area-legend-dot,
4860
+ .lp-theme02-chart-stack-legend-dot { width: 12px; height: 12px; border-radius: 4px; flex: none; box-shadow: 0 0 10px currentColor; }
4861
+ .lp-theme02-chart-bar-legend-name,
4862
+ .lp-theme02-chart-line-legend-name,
4863
+ .lp-theme02-chart-area-legend-name,
4864
+ .lp-theme02-chart-stack-legend-name { font-size: 14px; color: var(--lp-ink); font-weight: 600; }
4865
+
4866
+ /* ---- chart-line-v1 ---- */
4867
+ .lp-theme02-chart-line-svg { width: 100%; height: auto; flex: 1; min-height: 0; }
4868
+ .lp-theme02-chart-line-path { filter: drop-shadow(0 0 8px var(--lp-glow-accent)); }
4869
+
4870
+ /* ---- chart-area-v1 ---- */
4871
+ .lp-theme02-chart-area-svg { width: 100%; height: auto; flex: 1; min-height: 0; }
4872
+ .lp-theme02-chart-area-path { filter: drop-shadow(0 0 6px var(--lp-glow-cool-subtle)); }
4873
+
4874
+ /* ---- chart-stack-v1 ---- */
4875
+ .lp-theme02-chart-stack-rows { display: flex; flex-direction: column; gap: 16px; flex: 1; justify-content: center; }
4876
+ .lp-theme02-chart-stack-row { display: flex; align-items: center; gap: 16px; }
4877
+ .lp-theme02-chart-stack-label { width: 150px; flex: none; font-size: 15px; color: var(--lp-ink); font-weight: 700; text-align: right; }
4878
+ .lp-theme02-chart-stack-track { flex: 1; display: flex; height: 34px; border-radius: var(--lp-radius-small); overflow: hidden; background: var(--lp-surface); border: 1px solid var(--lp-border); }
4879
+ .lp-theme02-chart-stack-seg { display: flex; align-items: center; justify-content: center; transition: filter 0.2s ease; }
4880
+ .lp-theme02-chart-stack-seg:hover { filter: brightness(1.12); }
4881
+ .lp-theme02-chart-stack-seg-pct { font-family: var(--lp-font-mono); font-size: 12px; font-weight: 800; color: var(--lp-text-inverse); }
4882
+
4883
+ /* ---- kpi-strip-v1 ---- */
4884
+ .lp-theme02-kpi-strip-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; flex: 1; align-items: stretch; margin-top: 8px; }
4885
+ .lp-theme02-kpi-strip-card { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 22px 20px; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--lp-shadow-sm); justify-content: center; }
4886
+ .lp-theme02-kpi-strip-value { display: flex; align-items: baseline; gap: 6px; }
4887
+ .lp-theme02-kpi-strip-value-num { font-size: 44px; font-weight: 900; color: var(--lp-accent); line-height: 1; text-shadow: 0 0 18px var(--lp-glow-accent-subtle); }
4888
+ .lp-theme02-kpi-strip-value-unit { font-size: 18px; font-weight: 700; color: var(--lp-ink2); }
4889
+ .lp-theme02-kpi-strip-delta { font-family: var(--lp-font-mono); font-size: 14px; font-weight: 700; color: var(--lp-ink2); }
4890
+ .lp-theme02-kpi-strip-label { font-size: 15px; color: var(--lp-ink); font-weight: 600; }
4891
+
4892
+ /* ---- big-stat-v1 ---- */
4893
+ .lp-theme02-big-stat-v1 { display: flex; align-items: center; justify-content: center; }
4894
+ .lp-theme02-big-stat-inner { align-items: center; text-align: center; gap: 18px; }
4895
+ .lp-theme02-big-stat-pill { align-self: center; }
4896
+ .lp-theme02-big-stat-title { font-size: 26px; font-weight: 700; color: var(--lp-ink2); margin: 0; }
4897
+ .lp-theme02-big-stat-hero { display: flex; align-items: baseline; justify-content: center; gap: 10px; }
4898
+ .lp-theme02-big-stat-value { font-size: 150px; font-weight: 900; line-height: 0.95; color: var(--lp-accent); text-shadow: 0 0 50px var(--lp-glow-accent); letter-spacing: -0.02em; }
4899
+ .lp-theme02-big-stat-unit { font-size: 40px; font-weight: 800; color: var(--lp-accent); }
4900
+ .lp-theme02-big-stat-meta { display: flex; align-items: center; gap: 18px; justify-content: center; }
4901
+ .lp-theme02-big-stat-label { font-size: 22px; font-weight: 700; color: var(--lp-ink); }
4902
+ .lp-theme02-big-stat-delta { font-family: var(--lp-font-mono); font-size: 18px; font-weight: 700; color: var(--lp-ink2); padding: 4px 12px; border: 1px solid var(--lp-border); border-radius: 999px; }
4903
+ .lp-theme02-big-stat-footnote { font-size: 15px; color: var(--lp-ink3); font-family: var(--lp-font-mono); }
4904
+
4905
+ /* ---- cycle-v1 ---- */
4906
+ .lp-theme02-cycle-body { display: flex; align-items: center; gap: 40px; flex: 1; min-height: 0; }
4907
+ .lp-theme02-cycle-ring { width: 320px; height: 320px; flex: none; }
4908
+ .lp-theme02-cycle-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; flex: 1; align-content: center; }
4909
+ .lp-theme02-cycle-step { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; box-shadow: var(--lp-shadow-sm); }
4910
+ .lp-theme02-cycle-step-no { width: 30px; height: 30px; border-radius: 50%; background: var(--lp-glow-accent-subtle); border: 1px solid var(--lp-accent); color: var(--lp-accent); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
4911
+ .lp-theme02-cycle-step-title { font-size: 18px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4912
+ .lp-theme02-cycle-step-desc { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin: 0; }
4913
+
4914
+ /* ---- swimlane-v1 ---- */
4915
+ .lp-theme02-swimlane-grid { display: grid; gap: 1px; background: var(--lp-border); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); overflow: hidden; flex: 1; min-height: 0; }
4916
+ .lp-theme02-swimlane-corner { background: var(--lp-surface-strong); }
4917
+ .lp-theme02-swimlane-phase { background: var(--lp-surface-strong); color: var(--lp-accent); font-weight: 800; font-size: 16px; padding: 14px 16px; display: flex; align-items: center; }
4918
+ .lp-theme02-swimlane-name { background: var(--lp-surface-strong); color: var(--lp-ink); font-weight: 800; font-size: 16px; padding: 16px; display: flex; align-items: center; }
4919
+ .lp-theme02-swimlane-cell { background: var(--lp-surface); padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; justify-content: center; }
4920
+ .lp-theme02-swimlane-chip { background: rgba(255,255,255,0.04); border: 1px solid var(--lp-border); border-radius: 8px; padding: 6px 10px; font-size: 14px; color: var(--lp-ink); line-height: 1.4; }
4921
+
4922
+ /* ---- pyramid-v1 ---- */
4923
+ .lp-theme02-pyramid-body { display: flex; align-items: center; gap: 36px; flex: 1; min-height: 0; }
4924
+ .lp-theme02-pyramid-svg { width: 440px; height: auto; flex: none; }
4925
+ .lp-theme02-pyramid-band { transition: fill-opacity 0.2s ease; }
4926
+ .lp-theme02-pyramid-legend { display: flex; flex-direction: column; gap: 14px; flex: 1; justify-content: center; }
4927
+ .lp-theme02-pyramid-legend-item { display: flex; flex-direction: column; gap: 4px; padding-left: 16px; border-left: 3px solid var(--lp-border); }
4928
+ .lp-theme02-pyramid-legend-item:nth-child(1) { border-left-color: var(--lp-accent); }
4929
+ .lp-theme02-pyramid-legend-item:nth-child(2) { border-left-color: var(--lp-accent-cool); }
4930
+ .lp-theme02-pyramid-legend-item:nth-child(3) { border-left-color: var(--lp-accent-2); }
4931
+ .lp-theme02-pyramid-legend-item:nth-child(4) { border-left-color: var(--lp-violet); }
4932
+ .lp-theme02-pyramid-legend-item:nth-child(5) { border-left-color: var(--lp-cyan); }
4933
+ .lp-theme02-pyramid-legend-title { font-size: 18px; font-weight: 800; color: var(--lp-ink); }
4934
+ .lp-theme02-pyramid-legend-desc { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; }
4935
+
4936
+ /* ---- org-chart-v1 ---- */
4937
+ .lp-theme02-org-chart-tree { display: flex; flex-direction: column; align-items: center; gap: 0; flex: 1; justify-content: center; }
4938
+ .lp-theme02-org-chart-root { background: var(--lp-surface-strong); border: 1px solid var(--lp-accent); border-radius: var(--lp-radius-medium); padding: 20px 40px; display: flex; flex-direction: column; align-items: center; gap: 6px; box-shadow: 0 0 24px var(--lp-glow-accent-subtle); min-width: 220px; }
4939
+ .lp-theme02-org-chart-connector { width: 2px; height: 36px; background: var(--lp-accent); opacity: 0.6; }
4940
+ .lp-theme02-org-chart-children { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
4941
+ .lp-theme02-org-chart-node { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 16px 22px; display: flex; flex-direction: column; align-items: center; gap: 6px; box-shadow: var(--lp-shadow-sm); min-width: 150px; }
4942
+ .lp-theme02-org-chart-node-title { font-size: 18px; font-weight: 800; color: var(--lp-ink); }
4943
+ .lp-theme02-org-chart-node-sub { font-size: 13px; color: var(--lp-ink2); }
4944
+
4945
+ /* ---- flow-v1 ---- */
4946
+ .lp-theme02-flow-track { display: flex; align-items: stretch; gap: 0; flex: 1; align-content: center; flex-wrap: nowrap; }
4947
+ .lp-theme02-flow-step-wrap { display: flex; align-items: center; flex: 1; }
4948
+ .lp-theme02-flow-step { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 24px 22px; display: flex; flex-direction: column; gap: 10px; box-shadow: var(--lp-shadow-sm); flex: 1; }
4949
+ .lp-theme02-flow-badge { width: 42px; height: 42px; border-radius: 50%; background: var(--lp-surface-strong); border: 1px solid var(--lp-accent); color: var(--lp-accent); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; box-shadow: 0 0 16px var(--lp-glow-accent-subtle); }
4950
+ .lp-theme02-flow-step-title { font-size: 20px; font-weight: 800; color: var(--lp-ink); margin: 0; }
4951
+ .lp-theme02-flow-step-desc { font-size: 14px; color: var(--lp-ink2); line-height: 1.5; margin: 0; }
4952
+ .lp-theme02-flow-arrow { font-size: 30px; color: var(--lp-accent); padding: 0 14px; flex: none; text-shadow: 0 0 12px var(--lp-glow-accent); }
4953
+
4954
+ /* ---- table-v2 ---- */
4955
+ .lp-theme02-table-v2-scroll { flex: 1; min-height: 0; overflow: hidden; display: flex; }
4956
+ .lp-theme02-table-v2-table { width: 100%; border-collapse: collapse; table-layout: fixed; align-self: center; }
4957
+ .lp-theme02-table-v2-table th { background: var(--lp-surface-strong); color: var(--lp-accent); font-size: 16px; font-weight: 800; text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--lp-border); }
4958
+ .lp-theme02-table-v2-table td { color: var(--lp-ink); font-size: 15px; padding: 12px 18px; border-bottom: 1px solid var(--lp-border); }
4959
+ .lp-theme02-table-v2-odd { background: rgba(255,255,255,0.03); }
4960
+ .lp-theme02-table-v2-th, .lp-theme02-table-v2-td { display: block; }
4961
+
4962
+ /* ---- image-split-v1 ---- */
4963
+ .lp-theme02-image-split-v1 { position: relative; }
4964
+ .lp-theme02-image-split-inner { position: relative; z-index: 1; width: 100%; height: 100%; padding: 56px 64px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
4965
+ .lp-theme02-image-split-left { display: flex; flex-direction: column; gap: 18px; }
4966
+ .lp-theme02-image-split-title { font-size: 40px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
4967
+ .lp-theme02-image-split-subtitle { font-size: 18px; font-weight: 600; color: var(--lp-ink2); margin: 0; }
4968
+ .lp-theme02-image-split-bullets { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
4969
+ .lp-theme02-image-split-bullet { display: flex; align-items: flex-start; gap: 12px; }
4970
+ .lp-theme02-image-split-check { color: var(--lp-accent); font-weight: 900; font-size: 16px; line-height: 1.5; }
4971
+ .lp-theme02-image-split-bullet-text { font-size: 16px; color: var(--lp-ink); line-height: 1.5; }
4972
+ .lp-theme02-image-split-right { height: 100%; border-radius: var(--lp-radius-medium); overflow: hidden; border: 1px solid var(--lp-border); }
4973
+ .lp-theme02-image-split-media { width: 100%; height: 100%; object-fit: cover; display: block; }
4974
+ .lp-theme02-image-split-placeholder { width: 100%; height: 100%; }
4975
+
4976
+ /* ---- image-grid-v2 ---- */
4977
+ .lp-theme02-image-grid-v2-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 16px; flex: 1; min-height: 0; }
4978
+ .lp-theme02-image-grid-v2-cell { position: relative; border-radius: var(--lp-radius-medium); overflow: hidden; border: 1px solid var(--lp-border); background: var(--lp-surface); }
4979
+ .lp-theme02-image-grid-v2-media { width: 100%; height: 100%; object-fit: cover; display: block; }
4980
+ .lp-theme02-image-grid-v2-placeholder { width: 100%; height: 100%; }
4981
+ .lp-theme02-image-grid-v2-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 14px; background: var(--lp-image-overlay); color: var(--lp-ink); font-size: 14px; font-weight: 600; }
4982
+
4983
+ /* ---- spotlight-v1 ---- */
4984
+ .lp-theme02-spotlight-v1 { position: relative; display: flex; align-items: center; }
4985
+ .lp-theme02-spotlight-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; z-index: 0; }
4986
+ .lp-theme02-spotlight-overlay { position: absolute; inset: 0; background: var(--lp-image-overlay); z-index: 1; }
4987
+ .lp-theme02-spotlight-content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: 0 96px; max-width: 880px; }
4988
+ .lp-theme02-spotlight-title { font-size: 60px; font-weight: 900; line-height: 1.05; color: var(--lp-ink); margin: 0; text-shadow: 0 0 30px var(--lp-glow-accent-subtle); }
4989
+ .lp-theme02-spotlight-subtitle { font-size: 22px; font-weight: 600; color: var(--lp-ink2); margin: 0; }
4990
+ .lp-theme02-spotlight-caption { font-size: 15px; color: var(--lp-ink3); font-family: var(--lp-font-mono); }
4991
+ .lp-theme02-spotlight-placeholder { width: 100%; height: 100%; }
4992
+
4993
+ /* ---- chapter-v3 ---- */
4994
+ .lp-theme02-chapter-v3 { display: flex; align-items: center; justify-content: center; }
4995
+ .lp-theme02-chapter-v3-inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; padding: 0 100px; }
4996
+ .lp-theme02-chapter-v3-pill { align-self: center; }
4997
+ .lp-theme02-chapter-v3-rule { width: 200px; height: 1px; background: var(--lp-border); }
4998
+ .lp-theme02-chapter-v3-rule--top { box-shadow: 0 0 12px var(--lp-glow-accent-subtle); }
4999
+ .lp-theme02-chapter-v3-rule--bottom { box-shadow: 0 0 12px var(--lp-glow-accent-subtle); }
5000
+ .lp-theme02-chapter-v3-number { font-size: 160px; font-weight: 900; line-height: 0.9; color: transparent; -webkit-text-stroke: 2px var(--lp-accent); text-stroke: 2px var(--lp-accent); text-shadow: 0 0 40px var(--lp-glow-accent); letter-spacing: 0.02em; }
5001
+ .lp-theme02-chapter-v3-title { font-size: 52px; font-weight: 900; line-height: 1.1; color: var(--lp-ink); margin: 0; }
5002
+ .lp-theme02-chapter-v3-subtitle { font-size: 20px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 760px; }
5003
+
5004
+ /* ---- section-divider-v1 ---- */
5005
+ .lp-theme02-section-divider-v1 { display: flex; align-items: center; }
5006
+ .lp-theme02-section-divider-inner { position: relative; z-index: 1; width: 100%; padding: 0 96px; display: flex; flex-direction: column; gap: 18px; }
5007
+ .lp-theme02-section-divider-top { display: flex; align-items: center; gap: 16px; }
5008
+ .lp-theme02-section-divider-index { font-family: var(--lp-font-mono); font-size: 18px; font-weight: 800; color: var(--lp-accent); letter-spacing: 0.1em; }
5009
+ .lp-theme02-section-divider-title { font-size: 56px; font-weight: 900; line-height: 1.08; color: var(--lp-ink); margin: 0; }
5010
+ .lp-theme02-section-divider-rule { width: 280px; height: 3px; border-radius: 999px; background: linear-gradient(90deg, var(--lp-accent), transparent); box-shadow: 0 0 18px var(--lp-glow-accent); }
5011
+ .lp-theme02-section-divider-subtitle { font-size: 20px; font-weight: 600; color: var(--lp-ink2); margin: 0; max-width: 820px; }
5012
+
5013
+ /* ---- logo-wall-v1 ---- */
5014
+ .lp-theme02-logo-wall-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; flex: 1; align-content: center; }
5015
+ .lp-theme02-logo-wall-card { background: var(--lp-surface); border: 1px solid var(--lp-border); border-radius: var(--lp-radius-medium); padding: 26px 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; box-shadow: var(--lp-shadow-sm); min-height: 110px; }
5016
+ .lp-theme02-logo-wall-name { font-size: 22px; font-weight: 800; color: var(--lp-ink); text-align: center; }
5017
+ .lp-theme02-logo-wall-sub { font-size: 13px; color: var(--lp-ink3); text-align: center; }