@lemonppt/themes 0.1.7 → 0.2.0

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 (54) hide show
  1. package/dist/index.d.ts +169 -60
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +13 -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/package.json +2 -2
  30. package/src/theme01/styles.css +4796 -0
  31. package/src/theme02/styles.css +4624 -0
  32. package/src/theme03/styles.css +8348 -0
  33. package/src/theme04/styles.css +8739 -0
  34. package/src/theme05/styles.css +3587 -0
  35. package/src/theme06/styles.css +7071 -0
  36. package/dist/base/tokens.d.ts +0 -34
  37. package/dist/base/tokens.d.ts.map +0 -1
  38. package/dist/base/tokens.js +0 -37
  39. package/dist/base/tokens.js.map +0 -1
  40. package/dist/dark-tech/tokens.d.ts +0 -34
  41. package/dist/dark-tech/tokens.d.ts.map +0 -1
  42. package/dist/dark-tech/tokens.js +0 -37
  43. package/dist/dark-tech/tokens.js.map +0 -1
  44. package/dist/minimal/tokens.d.ts +0 -34
  45. package/dist/minimal/tokens.d.ts.map +0 -1
  46. package/dist/minimal/tokens.js +0 -34
  47. package/dist/minimal/tokens.js.map +0 -1
  48. package/dist/warm-business/tokens.d.ts +0 -34
  49. package/dist/warm-business/tokens.d.ts.map +0 -1
  50. package/dist/warm-business/tokens.js +0 -37
  51. package/dist/warm-business/tokens.js.map +0 -1
  52. package/src/base/styles.css +0 -3061
  53. package/src/dark-tech/styles.css +0 -2969
  54. package/src/warm-business/styles.css +0 -2848
@@ -0,0 +1,4624 @@
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: 28px;
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: 20px;
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: 32px;
970
+ align-items: stretch;
971
+ padding: 72px 84px;
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
+ display: flex;
982
+ flex-direction: column;
983
+ }
984
+
985
+ .lp-theme02-chart-insight {
986
+ padding: 32px;
987
+ background: var(--lp-surface);
988
+ border: 1px solid var(--lp-border);
989
+ border-radius: var(--lp-radius-large);
990
+ box-shadow: var(--lp-shadow);
991
+ display: flex;
992
+ flex-direction: column;
993
+ gap: 24px;
994
+ }
995
+
996
+ .lp-theme02-chart-insight-headline {
997
+ display: flex;
998
+ flex-direction: column;
999
+ gap: 6px;
1000
+ }
1001
+
1002
+ .lp-theme02-chart-insight-value {
1003
+ font-family: var(--lp-font-mono);
1004
+ font-size: 48px;
1005
+ font-weight: 900;
1006
+ line-height: 1;
1007
+ color: var(--lp-accent);
1008
+ text-shadow: 0 0 20px var(--lp-glow-accent);
1009
+ }
1010
+
1011
+ .lp-theme02-chart-insight-sub {
1012
+ font-size: 14px;
1013
+ font-weight: 700;
1014
+ letter-spacing: 0.06em;
1015
+ text-transform: uppercase;
1016
+ color: var(--lp-ink3);
1017
+ }
1018
+
1019
+ .lp-theme02-chart-insight-badge {
1020
+ align-self: flex-start;
1021
+ }
1022
+
1023
+ .lp-theme02-chart-insight-badge--cool {
1024
+ background: var(--lp-accent-cool);
1025
+ box-shadow: 0 4px 16px var(--lp-glow-cool-subtle);
1026
+ }
1027
+
1028
+ .lp-theme02-chart-insight-badge--accent2 {
1029
+ background: var(--lp-accent-2);
1030
+ box-shadow: 0 4px 16px var(--lp-glow-warm-subtle);
1031
+ }
1032
+
1033
+ .lp-theme02-chart-insight-items {
1034
+ display: flex;
1035
+ flex-direction: column;
1036
+ gap: 16px;
1037
+ margin-top: auto;
1038
+ }
1039
+
1040
+ .lp-theme02-chart-insight-item {
1041
+ display: flex;
1042
+ justify-content: space-between;
1043
+ align-items: center;
1044
+ padding-bottom: 14px;
1045
+ border-bottom: 1px solid var(--lp-border);
1046
+ }
1047
+
1048
+ .lp-theme02-chart-insight-item:last-child {
1049
+ border-bottom: none;
1050
+ padding-bottom: 0;
1051
+ }
1052
+
1053
+ .lp-theme02-chart-insight-label {
1054
+ font-size: 15px;
1055
+ font-weight: 600;
1056
+ color: var(--lp-ink2);
1057
+ }
1058
+
1059
+ .lp-theme02-chart-insight-item-value {
1060
+ font-family: var(--lp-font-mono);
1061
+ font-size: 18px;
1062
+ font-weight: 800;
1063
+ color: var(--lp-ink);
1064
+ }
1065
+
1066
+ /* ---- Chart Funnel ---- */
1067
+
1068
+ .lp-theme02-chart-funnel {
1069
+ padding: 72px 84px 68px;
1070
+ }
1071
+
1072
+ .lp-theme02-chart-funnel .lp-theme02-chart-wrapper {
1073
+ position: relative;
1074
+ flex: 1;
1075
+ min-height: 360px;
1076
+ border-radius: var(--lp-radius-large);
1077
+ background: var(--lp-surface);
1078
+ border: 1px solid var(--lp-border);
1079
+ box-shadow: var(--lp-shadow-sm);
1080
+ overflow: hidden;
1081
+ }
1082
+
1083
+ .lp-theme02-chart-funnel .lp-theme02-chart-wrapper::before {
1084
+ content: '';
1085
+ position: absolute;
1086
+ inset: 0;
1087
+ pointer-events: none;
1088
+ border-radius: inherit;
1089
+ box-shadow: inset 0 0 60px var(--lp-glow-accent-subtle);
1090
+ opacity: 0.5;
1091
+ }
1092
+
1093
+ .lp-theme02-chart-funnel-description {
1094
+ font-size: 16px;
1095
+ line-height: 1.65;
1096
+ color: var(--lp-ink2);
1097
+ margin-top: auto;
1098
+ }
1099
+
1100
+ /* ---- Chart Donut ---- */
1101
+
1102
+ .lp-theme02-chart-donut {
1103
+ padding: 72px 84px 68px;
1104
+ justify-content: center;
1105
+ }
1106
+
1107
+ .lp-theme02-chart-donut-card {
1108
+ width: 100%;
1109
+ height: 100%;
1110
+ display: flex;
1111
+ flex-direction: column;
1112
+ gap: 28px;
1113
+ }
1114
+
1115
+ .lp-theme02-chart-donut-header {
1116
+ display: flex;
1117
+ flex-direction: column;
1118
+ gap: 14px;
1119
+ }
1120
+
1121
+ .lp-theme02-chart-donut-title {
1122
+ font-size: 44px;
1123
+ font-weight: 900;
1124
+ line-height: 1.1;
1125
+ letter-spacing: -0.01em;
1126
+ margin: 0;
1127
+ color: var(--lp-ink);
1128
+ }
1129
+
1130
+ .lp-theme02-chart-donut-subtitle {
1131
+ font-size: 20px;
1132
+ font-weight: 600;
1133
+ color: var(--lp-ink2);
1134
+ margin: 0;
1135
+ }
1136
+
1137
+ .lp-theme02-chart-donut-body {
1138
+ display: flex;
1139
+ align-items: center;
1140
+ justify-content: center;
1141
+ flex: 1;
1142
+ min-height: 0;
1143
+ }
1144
+
1145
+ .lp-theme02-chart-donut-side {
1146
+ display: flex;
1147
+ flex-direction: column;
1148
+ gap: 20px;
1149
+ min-width: 0;
1150
+ }
1151
+
1152
+ .lp-theme02-chart-donut-insight {
1153
+ flex-shrink: 0;
1154
+ }
1155
+
1156
+ .lp-theme02-chart-donut-chart {
1157
+ position: relative;
1158
+ flex: 1;
1159
+ display: flex;
1160
+ align-items: center;
1161
+ justify-content: center;
1162
+ min-width: 0;
1163
+ }
1164
+
1165
+ .lp-theme02-chart-donut-svg {
1166
+ width: 100%;
1167
+ max-width: 360px;
1168
+ height: auto;
1169
+ overflow: visible;
1170
+ animation: lp-theme02-donut-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
1171
+ }
1172
+
1173
+ .lp-theme02-chart-donut-ring {
1174
+ transform-origin: center;
1175
+ transform: rotate(-90deg);
1176
+ animation: lp-theme02-donut-ring-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
1177
+ transition: filter 0.2s ease, stroke-width 0.2s ease;
1178
+ cursor: pointer;
1179
+ }
1180
+
1181
+ .lp-theme02-chart-donut-ring:hover {
1182
+ filter: brightness(1.12);
1183
+ stroke-width: 54;
1184
+ }
1185
+
1186
+ @keyframes lp-theme02-donut-in {
1187
+ from { opacity: 0; transform: scale(0.92); }
1188
+ to { opacity: 1; transform: scale(1); }
1189
+ }
1190
+
1191
+ @keyframes lp-theme02-donut-ring-in {
1192
+ from { stroke-dasharray: 0 2000; }
1193
+ }
1194
+
1195
+ .lp-theme02-chart-donut-center {
1196
+ position: absolute;
1197
+ top: 50%;
1198
+ left: 50%;
1199
+ transform: translate(-50%, -50%);
1200
+ text-align: center;
1201
+ pointer-events: none;
1202
+ }
1203
+
1204
+ .lp-theme02-chart-donut-total-value {
1205
+ font-size: 52px;
1206
+ font-weight: 900;
1207
+ line-height: 1;
1208
+ letter-spacing: -0.02em;
1209
+ color: var(--lp-ink);
1210
+ text-shadow: 0 0 24px var(--lp-glow-accent-subtle);
1211
+ }
1212
+
1213
+ .lp-theme02-chart-donut-total-label {
1214
+ font-size: 13px;
1215
+ font-weight: 700;
1216
+ color: var(--lp-ink3);
1217
+ letter-spacing: 0.1em;
1218
+ text-transform: uppercase;
1219
+ margin-top: 6px;
1220
+ font-family: var(--lp-font-mono);
1221
+ }
1222
+
1223
+ .lp-theme02-chart-donut-legend {
1224
+ flex: 1;
1225
+ display: flex;
1226
+ flex-direction: column;
1227
+ gap: 14px;
1228
+ min-width: 0;
1229
+ }
1230
+
1231
+ .lp-theme02-chart-donut-legend-item {
1232
+ display: flex;
1233
+ align-items: center;
1234
+ gap: 14px;
1235
+ padding: 14px 18px;
1236
+ background: var(--lp-surface);
1237
+ border: 1px solid var(--lp-border);
1238
+ border-radius: var(--lp-radius-medium);
1239
+ box-shadow: var(--lp-shadow-sm);
1240
+ animation: lp-theme02-donut-item-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
1241
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
1242
+ }
1243
+
1244
+ .lp-theme02-chart-donut-legend-item:hover {
1245
+ transform: translateY(-2px);
1246
+ box-shadow: var(--lp-shadow), 0 0 24px var(--lp-glow-accent-subtle);
1247
+ }
1248
+
1249
+ @keyframes lp-theme02-donut-item-in {
1250
+ from { opacity: 0; transform: translateX(16px); }
1251
+ to { opacity: 1; transform: translateX(0); }
1252
+ }
1253
+
1254
+ .lp-theme02-chart-donut-legend-dot {
1255
+ width: 14px;
1256
+ height: 14px;
1257
+ border-radius: 4px;
1258
+ flex-shrink: 0;
1259
+ box-shadow: 0 0 10px currentColor;
1260
+ }
1261
+
1262
+ .lp-theme02-chart-donut-legend-text {
1263
+ flex: 1;
1264
+ min-width: 0;
1265
+ }
1266
+
1267
+ .lp-theme02-chart-donut-legend-label {
1268
+ font-size: 17px;
1269
+ font-weight: 800;
1270
+ color: var(--lp-ink);
1271
+ }
1272
+
1273
+ .lp-theme02-chart-donut-legend-en {
1274
+ font-size: 12px;
1275
+ color: var(--lp-ink3);
1276
+ letter-spacing: 0.04em;
1277
+ margin-top: 2px;
1278
+ font-family: var(--lp-font-mono);
1279
+ }
1280
+
1281
+ .lp-theme02-chart-donut-legend-numbers {
1282
+ text-align: right;
1283
+ flex-shrink: 0;
1284
+ }
1285
+
1286
+ .lp-theme02-chart-donut-legend-percent {
1287
+ font-size: 20px;
1288
+ font-weight: 900;
1289
+ color: var(--lp-accent);
1290
+ font-family: var(--lp-font-mono);
1291
+ text-shadow: 0 0 12px var(--lp-glow-accent-subtle);
1292
+ }
1293
+
1294
+ .lp-theme02-chart-donut-legend-value {
1295
+ font-size: 13px;
1296
+ color: var(--lp-ink3);
1297
+ margin-top: 2px;
1298
+ font-family: var(--lp-font-mono);
1299
+ }
1300
+
1301
+ .lp-theme02-chart-donut-footnote {
1302
+ font-size: 13px;
1303
+ color: var(--lp-ink3);
1304
+ text-align: right;
1305
+ font-family: var(--lp-font-mono);
1306
+ margin-top: 8px;
1307
+ }
1308
+
1309
+ /* ---- Chart Heatmap ---- */
1310
+
1311
+ .lp-theme02-chart-heatmap {
1312
+ padding: 72px 84px 68px;
1313
+ }
1314
+
1315
+ .lp-theme02-chart-heatmap .lp-theme02-chart-wrapper {
1316
+ position: relative;
1317
+ flex: 1;
1318
+ min-height: 360px;
1319
+ border-radius: var(--lp-radius-large);
1320
+ background: var(--lp-surface);
1321
+ border: 1px solid var(--lp-border);
1322
+ box-shadow: var(--lp-shadow-sm);
1323
+ overflow: hidden;
1324
+ }
1325
+
1326
+ .lp-theme02-chart-heatmap .lp-theme02-chart-wrapper::before {
1327
+ content: '';
1328
+ position: absolute;
1329
+ inset: 0;
1330
+ pointer-events: none;
1331
+ border-radius: inherit;
1332
+ box-shadow: inset 0 0 60px var(--lp-glow-accent-subtle);
1333
+ opacity: 0.4;
1334
+ }
1335
+
1336
+ /* ---- Chart Radar ---- */
1337
+
1338
+ .lp-theme02-chart-radar {
1339
+ padding: 72px 84px 68px;
1340
+ }
1341
+
1342
+ .lp-theme02-chart-radar .lp-theme02-chart-wrapper {
1343
+ position: relative;
1344
+ flex: 1;
1345
+ min-height: 360px;
1346
+ border-radius: var(--lp-radius-large);
1347
+ background: var(--lp-surface);
1348
+ border: 1px solid var(--lp-border);
1349
+ box-shadow: var(--lp-shadow-sm);
1350
+ overflow: hidden;
1351
+ }
1352
+
1353
+ .lp-theme02-chart-radar .lp-theme02-chart-wrapper::before {
1354
+ content: '';
1355
+ position: absolute;
1356
+ inset: 0;
1357
+ pointer-events: none;
1358
+ border-radius: inherit;
1359
+ box-shadow: inset 0 0 60px var(--lp-glow-accent-subtle);
1360
+ opacity: 0.4;
1361
+ }
1362
+
1363
+ /* ---- Chart Gauge ---- */
1364
+
1365
+ .lp-theme02-chart-gauge {
1366
+ padding: 72px 84px 68px;
1367
+ }
1368
+
1369
+ .lp-theme02-chart-gauge .lp-theme02-chart-wrapper {
1370
+ position: relative;
1371
+ flex: 1;
1372
+ min-height: 360px;
1373
+ border-radius: var(--lp-radius-large);
1374
+ background: var(--lp-surface);
1375
+ border: 1px solid var(--lp-border);
1376
+ box-shadow: var(--lp-shadow-sm);
1377
+ overflow: hidden;
1378
+ }
1379
+
1380
+ .lp-theme02-chart-gauge .lp-theme02-chart-wrapper::before {
1381
+ content: '';
1382
+ position: absolute;
1383
+ inset: 0;
1384
+ pointer-events: none;
1385
+ border-radius: inherit;
1386
+ box-shadow: inset 0 0 80px var(--lp-glow-accent-subtle);
1387
+ opacity: 0.5;
1388
+ }
1389
+
1390
+ /* ---- Content v1 ---- */
1391
+
1392
+ .lp-theme02-content-v1 {
1393
+ display: flex;
1394
+ align-items: center;
1395
+ justify-content: center;
1396
+ }
1397
+
1398
+ .lp-theme02-content-card {
1399
+ width: 100%;
1400
+ height: 100%;
1401
+ padding: 64px 80px;
1402
+ display: flex;
1403
+ flex-direction: column;
1404
+ }
1405
+
1406
+ .lp-theme02-content-header {
1407
+ display: flex;
1408
+ flex-direction: column;
1409
+ gap: 16px;
1410
+ margin-bottom: 44px;
1411
+ }
1412
+
1413
+ .lp-theme02-content-title {
1414
+ font-size: 52px;
1415
+ font-weight: 900;
1416
+ line-height: 1.1;
1417
+ letter-spacing: -0.01em;
1418
+ margin: 0;
1419
+ color: var(--lp-ink);
1420
+ }
1421
+
1422
+ .lp-theme02-content-subtitle {
1423
+ font-size: 24px;
1424
+ font-weight: 600;
1425
+ color: var(--lp-ink2);
1426
+ margin: 0;
1427
+ max-width: 820px;
1428
+ }
1429
+
1430
+ .lp-theme02-bullet-list {
1431
+ list-style: none;
1432
+ padding: 0;
1433
+ margin: 0;
1434
+ display: flex;
1435
+ flex-direction: column;
1436
+ gap: 22px;
1437
+ }
1438
+
1439
+ .lp-theme02-bullet-list li {
1440
+ position: relative;
1441
+ padding-left: 34px;
1442
+ font-size: 26px;
1443
+ font-weight: 600;
1444
+ line-height: 1.5;
1445
+ color: var(--lp-ink);
1446
+ }
1447
+
1448
+ .lp-theme02-bullet-list li::before {
1449
+ content: '';
1450
+ position: absolute;
1451
+ left: 0;
1452
+ top: 14px;
1453
+ width: 12px;
1454
+ height: 12px;
1455
+ border-radius: 50%;
1456
+ background: var(--lp-accent);
1457
+ box-shadow: 0 0 16px var(--lp-glow-accent);
1458
+ }
1459
+
1460
+ .lp-theme02-bullet-list li:nth-child(2n)::before {
1461
+ background: var(--lp-accent-cool);
1462
+ box-shadow: 0 0 16px var(--lp-glow-cool);
1463
+ }
1464
+
1465
+ .lp-theme02-bullet-list li:nth-child(3n)::before {
1466
+ background: var(--lp-accent-2);
1467
+ box-shadow: 0 0 16px var(--lp-glow-warm);
1468
+ }
1469
+
1470
+ /* ---- Closing v1 ---- */
1471
+
1472
+ .lp-theme02-closing-v1 {
1473
+ display: flex;
1474
+ align-items: center;
1475
+ justify-content: center;
1476
+ text-align: center;
1477
+ }
1478
+
1479
+ .lp-theme02-closing-content {
1480
+ position: relative;
1481
+ z-index: 2;
1482
+ max-width: 960px;
1483
+ display: flex;
1484
+ flex-direction: column;
1485
+ align-items: center;
1486
+ gap: 28px;
1487
+ }
1488
+
1489
+ .lp-theme02-closing-title {
1490
+ font-size: 82px;
1491
+ font-weight: 900;
1492
+ line-height: 1.05;
1493
+ letter-spacing: -0.02em;
1494
+ margin: 0;
1495
+ color: var(--lp-ink);
1496
+ }
1497
+
1498
+ .lp-theme02-closing-subtitle {
1499
+ font-size: 28px;
1500
+ font-weight: 600;
1501
+ line-height: 1.45;
1502
+ color: var(--lp-ink2);
1503
+ margin: 0;
1504
+ max-width: 760px;
1505
+ }
1506
+
1507
+ .lp-theme02-closing-cta {
1508
+ margin-top: 16px;
1509
+ padding: 18px 42px;
1510
+ font-size: 22px;
1511
+ font-weight: 800;
1512
+ letter-spacing: 0.04em;
1513
+ color: var(--lp-text-inverse);
1514
+ background: linear-gradient(135deg, var(--lp-accent), var(--lp-accent-cool));
1515
+ border-radius: var(--lp-radius-small);
1516
+ box-shadow:
1517
+ inset 0 1px 0 rgba(255, 255, 255, 0.25),
1518
+ 0 8px 32px var(--lp-glow-accent);
1519
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
1520
+ }
1521
+
1522
+ .lp-theme02-closing-cta:hover {
1523
+ transform: translateY(-2px);
1524
+ box-shadow:
1525
+ inset 0 1px 0 rgba(255, 255, 255, 0.3),
1526
+ 0 12px 40px var(--lp-glow-accent);
1527
+ }
1528
+
1529
+ .lp-theme02-closing-contacts {
1530
+ display: flex;
1531
+ gap: 28px;
1532
+ margin-top: 24px;
1533
+ flex-wrap: wrap;
1534
+ justify-content: center;
1535
+ }
1536
+
1537
+ .lp-theme02-closing-contact,
1538
+ .lp-theme02-closing-email,
1539
+ .lp-theme02-closing-link {
1540
+ font-family: var(--lp-font-mono);
1541
+ font-size: 15px;
1542
+ font-weight: 600;
1543
+ color: var(--lp-ink2);
1544
+ padding: 10px 18px;
1545
+ background: rgba(255, 255, 255, 0.05);
1546
+ border: 1px solid var(--lp-border);
1547
+ border-radius: var(--lp-radius-small);
1548
+ }
1549
+
1550
+ /* ---- Non-MVP layouts for theme02 ---- */
1551
+
1552
+ /* ---- Table of Contents v1 ---- */
1553
+ .lp-theme02-toc-v1 {
1554
+ display: flex;
1555
+ flex-direction: column;
1556
+ padding: 72px 84px;
1557
+ overflow: hidden;
1558
+ }
1559
+
1560
+ .lp-theme02-toc-glow {
1561
+ position: absolute;
1562
+ right: -20%;
1563
+ top: -30%;
1564
+ width: 70%;
1565
+ height: 90%;
1566
+ background: radial-gradient(ellipse at center, var(--lp-glow-accent) 0%, transparent 60%);
1567
+ opacity: 0.25;
1568
+ pointer-events: none;
1569
+ z-index: 0;
1570
+ }
1571
+
1572
+ .lp-theme02-toc-header {
1573
+ position: relative;
1574
+ z-index: 2;
1575
+ display: flex;
1576
+ flex-direction: column;
1577
+ gap: 16px;
1578
+ margin-bottom: 52px;
1579
+ }
1580
+
1581
+ .lp-theme02-toc-title {
1582
+ font-size: 56px;
1583
+ font-weight: 900;
1584
+ line-height: 1.1;
1585
+ letter-spacing: -0.01em;
1586
+ margin: 0;
1587
+ color: var(--lp-ink);
1588
+ }
1589
+
1590
+ .lp-theme02-toc-subtitle {
1591
+ font-size: 24px;
1592
+ font-weight: 600;
1593
+ color: var(--lp-ink2);
1594
+ margin: 0;
1595
+ max-width: 760px;
1596
+ }
1597
+
1598
+ .lp-theme02-toc-list {
1599
+ position: relative;
1600
+ z-index: 2;
1601
+ list-style: none;
1602
+ padding: 0;
1603
+ margin: 0;
1604
+ display: grid;
1605
+ grid-template-columns: repeat(2, 1fr);
1606
+ gap: 18px;
1607
+ }
1608
+
1609
+ .lp-theme02-toc-item {
1610
+ display: flex;
1611
+ align-items: center;
1612
+ gap: 18px;
1613
+ padding: 22px 24px;
1614
+ background: var(--lp-surface);
1615
+ border: 1px solid var(--lp-border);
1616
+ border-radius: var(--lp-radius-medium);
1617
+ box-shadow: var(--lp-shadow);
1618
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1619
+ }
1620
+
1621
+ .lp-theme02-toc-item:hover {
1622
+ border-color: var(--lp-accent);
1623
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
1624
+ }
1625
+
1626
+ .lp-theme02-toc-number {
1627
+ font-family: var(--lp-font-mono);
1628
+ font-size: 28px;
1629
+ font-weight: 900;
1630
+ color: var(--lp-accent);
1631
+ text-shadow: 0 0 18px var(--lp-glow-accent);
1632
+ min-width: 48px;
1633
+ }
1634
+
1635
+ .lp-theme02-toc-text {
1636
+ flex: 1;
1637
+ font-size: 22px;
1638
+ font-weight: 700;
1639
+ color: var(--lp-ink);
1640
+ }
1641
+
1642
+ .lp-theme02-toc-page {
1643
+ font-family: var(--lp-font-mono);
1644
+ font-size: 16px;
1645
+ font-weight: 700;
1646
+ color: var(--lp-ink3);
1647
+ }
1648
+
1649
+ /* ---- Metrics v1 ---- */
1650
+ .lp-theme02-metrics-v1 {
1651
+ display: flex;
1652
+ flex-direction: column;
1653
+ padding: 72px 84px;
1654
+ }
1655
+
1656
+ .lp-theme02-metrics-header {
1657
+ display: flex;
1658
+ flex-direction: column;
1659
+ gap: 14px;
1660
+ margin-bottom: 44px;
1661
+ }
1662
+
1663
+ .lp-theme02-metrics-title {
1664
+ font-size: 52px;
1665
+ font-weight: 900;
1666
+ line-height: 1.1;
1667
+ letter-spacing: -0.01em;
1668
+ margin: 0;
1669
+ color: var(--lp-ink);
1670
+ }
1671
+
1672
+ .lp-theme02-metrics-subtitle {
1673
+ font-size: 22px;
1674
+ font-weight: 600;
1675
+ color: var(--lp-ink2);
1676
+ margin: 0;
1677
+ max-width: 760px;
1678
+ }
1679
+
1680
+ .lp-theme02-metrics-grid {
1681
+ display: grid;
1682
+ grid-template-columns: repeat(4, 1fr);
1683
+ gap: 22px;
1684
+ flex: 1;
1685
+ align-content: center;
1686
+ }
1687
+
1688
+ .lp-theme02-metrics-card {
1689
+ position: relative;
1690
+ padding: 32px 28px;
1691
+ background: var(--lp-surface);
1692
+ border: 1px solid var(--lp-border);
1693
+ border-radius: var(--lp-radius-large);
1694
+ box-shadow: var(--lp-shadow);
1695
+ display: flex;
1696
+ flex-direction: column;
1697
+ gap: 8px;
1698
+ overflow: hidden;
1699
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
1700
+ }
1701
+
1702
+ .lp-theme02-metrics-card::before {
1703
+ content: '';
1704
+ position: absolute;
1705
+ top: 0;
1706
+ left: 0;
1707
+ right: 0;
1708
+ height: 3px;
1709
+ background: var(--lp-accent);
1710
+ box-shadow: 0 0 16px var(--lp-glow-accent);
1711
+ }
1712
+
1713
+ .lp-theme02-metrics-card::after {
1714
+ content: '';
1715
+ position: absolute;
1716
+ inset: 0;
1717
+ background: linear-gradient(
1718
+ 115deg,
1719
+ transparent 35%,
1720
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 48%,
1721
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 50%,
1722
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 52%,
1723
+ transparent 65%
1724
+ );
1725
+ transform: translateX(-120%) rotate(12deg);
1726
+ opacity: 0;
1727
+ transition: opacity 0.3s ease;
1728
+ pointer-events: none;
1729
+ }
1730
+
1731
+ .lp-theme02-metrics-card:hover {
1732
+ transform: translateY(-4px);
1733
+ border-color: var(--lp-accent);
1734
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 36px var(--lp-glow-accent);
1735
+ }
1736
+
1737
+ .lp-theme02-metrics-card:hover::after {
1738
+ opacity: 1;
1739
+ animation: lp-theme02-sweep 1.2s ease-in-out;
1740
+ }
1741
+
1742
+ .lp-theme02-metrics-card--accent::before {
1743
+ background: var(--lp-accent);
1744
+ box-shadow: 0 0 16px var(--lp-glow-accent);
1745
+ }
1746
+
1747
+ .lp-theme02-metrics-card--cool::before {
1748
+ background: var(--lp-accent-cool);
1749
+ box-shadow: 0 0 16px var(--lp-glow-cool);
1750
+ }
1751
+
1752
+ .lp-theme02-metrics-card--accent2::before {
1753
+ background: var(--lp-accent-2);
1754
+ box-shadow: 0 0 16px var(--lp-glow-warm);
1755
+ }
1756
+
1757
+ .lp-theme02-metrics-value {
1758
+ font-family: var(--lp-font-mono);
1759
+ font-size: 48px;
1760
+ font-weight: 900;
1761
+ line-height: 1;
1762
+ color: var(--lp-ink);
1763
+ }
1764
+
1765
+ .lp-theme02-metrics-card--accent .lp-theme02-metrics-value {
1766
+ color: var(--lp-accent);
1767
+ text-shadow: 0 0 18px var(--lp-glow-accent);
1768
+ }
1769
+
1770
+ .lp-theme02-metrics-card--cool .lp-theme02-metrics-value {
1771
+ color: var(--lp-accent-cool);
1772
+ text-shadow: 0 0 18px var(--lp-glow-cool);
1773
+ }
1774
+
1775
+ .lp-theme02-metrics-card--accent2 .lp-theme02-metrics-value {
1776
+ color: var(--lp-accent-2);
1777
+ text-shadow: 0 0 18px var(--lp-glow-warm);
1778
+ }
1779
+
1780
+ .lp-theme02-metrics-unit {
1781
+ font-family: var(--lp-font-mono);
1782
+ font-size: 16px;
1783
+ font-weight: 700;
1784
+ color: var(--lp-ink3);
1785
+ margin-top: -4px;
1786
+ }
1787
+
1788
+ .lp-theme02-metrics-label {
1789
+ font-size: 14px;
1790
+ font-weight: 700;
1791
+ letter-spacing: 0.04em;
1792
+ text-transform: uppercase;
1793
+ color: var(--lp-ink3);
1794
+ }
1795
+
1796
+ /* ---- Team v1 ---- */
1797
+ .lp-theme02-team-v1 {
1798
+ display: flex;
1799
+ flex-direction: column;
1800
+ padding: 72px 84px;
1801
+ }
1802
+
1803
+ .lp-theme02-team-header {
1804
+ display: flex;
1805
+ flex-direction: column;
1806
+ gap: 14px;
1807
+ margin-bottom: 44px;
1808
+ }
1809
+
1810
+ .lp-theme02-team-title {
1811
+ font-size: 52px;
1812
+ font-weight: 900;
1813
+ line-height: 1.1;
1814
+ letter-spacing: -0.01em;
1815
+ margin: 0;
1816
+ color: var(--lp-ink);
1817
+ }
1818
+
1819
+ .lp-theme02-team-subtitle {
1820
+ font-size: 22px;
1821
+ font-weight: 600;
1822
+ color: var(--lp-ink2);
1823
+ margin: 0;
1824
+ max-width: 760px;
1825
+ }
1826
+
1827
+ .lp-theme02-team-grid {
1828
+ display: grid;
1829
+ grid-template-columns: repeat(4, 1fr);
1830
+ gap: 24px;
1831
+ flex: 1;
1832
+ align-content: center;
1833
+ }
1834
+
1835
+ .lp-theme02-team-card {
1836
+ padding: 32px 24px;
1837
+ background: var(--lp-surface);
1838
+ border: 1px solid var(--lp-border);
1839
+ border-radius: var(--lp-radius-large);
1840
+ box-shadow: var(--lp-shadow);
1841
+ display: flex;
1842
+ flex-direction: column;
1843
+ align-items: center;
1844
+ text-align: center;
1845
+ gap: 14px;
1846
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
1847
+ }
1848
+
1849
+ .lp-theme02-team-card:hover {
1850
+ transform: translateY(-4px);
1851
+ border-color: var(--lp-accent);
1852
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
1853
+ }
1854
+
1855
+ .lp-theme02-team-avatar {
1856
+ width: 96px;
1857
+ height: 96px;
1858
+ border-radius: 50%;
1859
+ overflow: hidden;
1860
+ border: 2px solid var(--lp-accent);
1861
+ box-shadow: 0 0 24px var(--lp-glow-accent);
1862
+ display: flex;
1863
+ align-items: center;
1864
+ justify-content: center;
1865
+ }
1866
+
1867
+ .lp-theme02-team-avatar img {
1868
+ width: 100%;
1869
+ height: 100%;
1870
+ object-fit: cover;
1871
+ }
1872
+
1873
+ .lp-theme02-team-avatar-placeholder {
1874
+ font-family: var(--lp-font-mono);
1875
+ font-size: 36px;
1876
+ font-weight: 900;
1877
+ color: var(--lp-accent);
1878
+ }
1879
+
1880
+ .lp-theme02-team-name {
1881
+ font-size: 22px;
1882
+ font-weight: 800;
1883
+ color: var(--lp-ink);
1884
+ margin: 0;
1885
+ }
1886
+
1887
+ .lp-theme02-team-role {
1888
+ font-size: 14px;
1889
+ font-weight: 700;
1890
+ letter-spacing: 0.04em;
1891
+ text-transform: uppercase;
1892
+ color: var(--lp-accent-cool);
1893
+ }
1894
+
1895
+ .lp-theme02-team-bio {
1896
+ font-size: 15px;
1897
+ line-height: 1.55;
1898
+ color: var(--lp-ink2);
1899
+ margin: 0;
1900
+ }
1901
+
1902
+ /* ---- Timeline v1 ---- */
1903
+ .lp-theme02-timeline-v1 {
1904
+ display: flex;
1905
+ flex-direction: column;
1906
+ padding: 72px 84px;
1907
+ }
1908
+
1909
+ .lp-theme02-timeline-header {
1910
+ display: flex;
1911
+ flex-direction: column;
1912
+ gap: 14px;
1913
+ margin-bottom: 52px;
1914
+ }
1915
+
1916
+ .lp-theme02-timeline-title {
1917
+ font-size: 52px;
1918
+ font-weight: 900;
1919
+ line-height: 1.1;
1920
+ letter-spacing: -0.01em;
1921
+ margin: 0;
1922
+ color: var(--lp-ink);
1923
+ }
1924
+
1925
+ .lp-theme02-timeline-subtitle {
1926
+ font-size: 22px;
1927
+ font-weight: 600;
1928
+ color: var(--lp-ink2);
1929
+ margin: 0;
1930
+ max-width: 760px;
1931
+ }
1932
+
1933
+ .lp-theme02-timeline-track {
1934
+ position: relative;
1935
+ display: flex;
1936
+ align-items: stretch;
1937
+ gap: 20px;
1938
+ flex: 1;
1939
+ }
1940
+
1941
+ .lp-theme02-timeline-track::before {
1942
+ content: '';
1943
+ position: absolute;
1944
+ top: 24px;
1945
+ left: 0;
1946
+ right: 0;
1947
+ height: 2px;
1948
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool), var(--lp-accent-2));
1949
+ opacity: 0.4;
1950
+ }
1951
+
1952
+ .lp-theme02-timeline-node {
1953
+ position: relative;
1954
+ flex: 1;
1955
+ display: flex;
1956
+ flex-direction: column;
1957
+ gap: 22px;
1958
+ padding-top: 10px;
1959
+ }
1960
+
1961
+ .lp-theme02-timeline-dot {
1962
+ width: 28px;
1963
+ height: 28px;
1964
+ border-radius: 50%;
1965
+ background: var(--lp-accent);
1966
+ border: 4px solid color-mix(in srgb, var(--lp-bg) 80%, transparent);
1967
+ box-shadow: 0 0 20px var(--lp-glow-accent);
1968
+ z-index: 2;
1969
+ }
1970
+
1971
+ .lp-theme02-timeline-node:nth-child(2) .lp-theme02-timeline-dot {
1972
+ background: var(--lp-accent-cool);
1973
+ box-shadow: 0 0 20px var(--lp-glow-cool);
1974
+ }
1975
+
1976
+ .lp-theme02-timeline-node:nth-child(3) .lp-theme02-timeline-dot {
1977
+ background: var(--lp-accent-2);
1978
+ box-shadow: 0 0 20px var(--lp-glow-warm);
1979
+ }
1980
+
1981
+ .lp-theme02-timeline-card {
1982
+ flex: 1;
1983
+ padding: 24px;
1984
+ background: var(--lp-surface);
1985
+ border: 1px solid var(--lp-border);
1986
+ border-radius: var(--lp-radius-large);
1987
+ box-shadow: var(--lp-shadow);
1988
+ display: flex;
1989
+ flex-direction: column;
1990
+ gap: 10px;
1991
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1992
+ }
1993
+
1994
+ .lp-theme02-timeline-card:hover {
1995
+ border-color: var(--lp-accent);
1996
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
1997
+ }
1998
+
1999
+ .lp-theme02-timeline-date {
2000
+ font-family: var(--lp-font-mono);
2001
+ font-size: 14px;
2002
+ font-weight: 800;
2003
+ letter-spacing: 0.04em;
2004
+ color: var(--lp-accent);
2005
+ text-transform: uppercase;
2006
+ }
2007
+
2008
+ .lp-theme02-timeline-card-title {
2009
+ font-size: 20px;
2010
+ font-weight: 800;
2011
+ color: var(--lp-ink);
2012
+ margin: 0;
2013
+ }
2014
+
2015
+ .lp-theme02-timeline-description {
2016
+ font-size: 15px;
2017
+ line-height: 1.55;
2018
+ color: var(--lp-ink2);
2019
+ margin: 0;
2020
+ }
2021
+
2022
+ /* ---- Comparison v1 ---- */
2023
+ .lp-theme02-comparison-v1 {
2024
+ display: flex;
2025
+ flex-direction: column;
2026
+ padding: 72px 84px;
2027
+ }
2028
+
2029
+ .lp-theme02-comparison-header {
2030
+ display: flex;
2031
+ flex-direction: column;
2032
+ gap: 14px;
2033
+ margin-bottom: 44px;
2034
+ }
2035
+
2036
+ .lp-theme02-comparison-title {
2037
+ font-size: 52px;
2038
+ font-weight: 900;
2039
+ line-height: 1.1;
2040
+ letter-spacing: -0.01em;
2041
+ margin: 0;
2042
+ color: var(--lp-ink);
2043
+ }
2044
+
2045
+ .lp-theme02-comparison-subtitle {
2046
+ font-size: 22px;
2047
+ font-weight: 600;
2048
+ color: var(--lp-ink2);
2049
+ margin: 0;
2050
+ max-width: 760px;
2051
+ }
2052
+
2053
+ .lp-theme02-comparison-grid {
2054
+ display: grid;
2055
+ grid-template-columns: 1fr auto 1fr;
2056
+ gap: 28px;
2057
+ flex: 1;
2058
+ align-items: center;
2059
+ }
2060
+
2061
+ .lp-theme02-comparison-column {
2062
+ padding: 40px;
2063
+ background: var(--lp-surface);
2064
+ border: 1px solid var(--lp-border);
2065
+ border-radius: var(--lp-radius-large);
2066
+ box-shadow: var(--lp-shadow);
2067
+ min-height: 320px;
2068
+ }
2069
+
2070
+ .lp-theme02-comparison-column--left {
2071
+ border-top: 3px solid var(--lp-accent-cool);
2072
+ box-shadow: var(--lp-shadow), 0 0 20px var(--lp-glow-cool-subtle);
2073
+ }
2074
+
2075
+ .lp-theme02-comparison-column--right {
2076
+ border-top: 3px solid var(--lp-accent-2);
2077
+ box-shadow: var(--lp-shadow), 0 0 20px var(--lp-glow-warm-subtle);
2078
+ }
2079
+
2080
+ .lp-theme02-comparison-column-title {
2081
+ font-size: 28px;
2082
+ font-weight: 900;
2083
+ color: var(--lp-ink);
2084
+ margin: 0 0 24px;
2085
+ }
2086
+
2087
+ .lp-theme02-comparison-list {
2088
+ list-style: none;
2089
+ padding: 0;
2090
+ margin: 0;
2091
+ display: flex;
2092
+ flex-direction: column;
2093
+ gap: 16px;
2094
+ }
2095
+
2096
+ .lp-theme02-comparison-list li {
2097
+ position: relative;
2098
+ padding-left: 26px;
2099
+ font-size: 18px;
2100
+ line-height: 1.5;
2101
+ color: var(--lp-ink);
2102
+ }
2103
+
2104
+ .lp-theme02-comparison-list li::before {
2105
+ content: '';
2106
+ position: absolute;
2107
+ left: 0;
2108
+ top: 10px;
2109
+ width: 8px;
2110
+ height: 8px;
2111
+ border-radius: 50%;
2112
+ background: var(--lp-accent);
2113
+ box-shadow: 0 0 12px var(--lp-glow-accent);
2114
+ }
2115
+
2116
+ .lp-theme02-comparison-column--right .lp-theme02-comparison-list li::before {
2117
+ background: var(--lp-accent-2);
2118
+ box-shadow: 0 0 12px var(--lp-glow-warm);
2119
+ }
2120
+
2121
+ .lp-theme02-comparison-vs {
2122
+ font-family: var(--lp-font-mono);
2123
+ font-size: 24px;
2124
+ font-weight: 900;
2125
+ color: var(--lp-ink3);
2126
+ padding: 14px 18px;
2127
+ border: 1px solid var(--lp-border);
2128
+ border-radius: 50%;
2129
+ background: var(--lp-surface);
2130
+ box-shadow: var(--lp-shadow);
2131
+ }
2132
+
2133
+ /* ---- Image v1 ---- */
2134
+ .lp-theme02-image-v1 {
2135
+ position: relative;
2136
+ display: flex;
2137
+ align-items: flex-end;
2138
+ overflow: hidden;
2139
+ }
2140
+
2141
+ .lp-theme02-image-media {
2142
+ position: absolute;
2143
+ inset: 0;
2144
+ width: 100%;
2145
+ height: 100%;
2146
+ object-fit: cover;
2147
+ z-index: 0;
2148
+ }
2149
+
2150
+ .lp-theme02-image-placeholder {
2151
+ position: absolute;
2152
+ inset: 0;
2153
+ width: 100%;
2154
+ height: 100%;
2155
+ z-index: 0;
2156
+ border-radius: 0;
2157
+ border-width: 0;
2158
+ background: color-mix(in srgb, var(--lp-ink) 8%, transparent);
2159
+ }
2160
+
2161
+ .lp-theme02-image-placeholder:hover {
2162
+ background: color-mix(in srgb, var(--lp-accent) 10%, transparent);
2163
+ }
2164
+
2165
+ .lp-theme02-image-overlay {
2166
+ position: absolute;
2167
+ inset: 0;
2168
+ background: linear-gradient(
2169
+ 0deg,
2170
+ color-mix(in srgb, var(--lp-bg) 92%, transparent) 0%,
2171
+ color-mix(in srgb, var(--lp-bg) 45%, transparent) 55%,
2172
+ color-mix(in srgb, var(--lp-bg) 20%, transparent) 100%
2173
+ );
2174
+ z-index: 1;
2175
+ pointer-events: none;
2176
+ }
2177
+
2178
+ .lp-theme02-image-content {
2179
+ position: relative;
2180
+ z-index: 2;
2181
+ padding: 72px 84px;
2182
+ width: 100%;
2183
+ display: flex;
2184
+ flex-direction: column;
2185
+ gap: 18px;
2186
+ }
2187
+
2188
+ .lp-theme02-image-title {
2189
+ font-size: 64px;
2190
+ font-weight: 900;
2191
+ line-height: 1.08;
2192
+ letter-spacing: -0.01em;
2193
+ margin: 0;
2194
+ color: var(--lp-ink);
2195
+ text-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
2196
+ max-width: 880px;
2197
+ }
2198
+
2199
+ .lp-theme02-image-subtitle {
2200
+ font-size: 26px;
2201
+ font-weight: 600;
2202
+ color: var(--lp-ink2);
2203
+ margin: 0;
2204
+ max-width: 720px;
2205
+ }
2206
+
2207
+ .lp-theme02-image-caption {
2208
+ align-self: flex-start;
2209
+ margin-top: 10px;
2210
+ padding: 10px 18px;
2211
+ background: var(--lp-surface);
2212
+ border: 1px solid var(--lp-border);
2213
+ border-radius: var(--lp-radius-small);
2214
+ font-family: var(--lp-font-mono);
2215
+ font-size: 14px;
2216
+ font-weight: 700;
2217
+ color: var(--lp-ink3);
2218
+ }
2219
+
2220
+ /* ---- Quote v1 ---- */
2221
+ .lp-theme02-quote-v1 {
2222
+ position: relative;
2223
+ display: flex;
2224
+ align-items: center;
2225
+ justify-content: center;
2226
+ padding: 72px 84px;
2227
+ overflow: hidden;
2228
+ }
2229
+
2230
+ .lp-theme02-quote-mark {
2231
+ position: absolute;
2232
+ top: 50%;
2233
+ left: 50%;
2234
+ transform: translate(-50%, -55%);
2235
+ font-family: var(--lp-font);
2236
+ font-size: 360px;
2237
+ font-weight: 900;
2238
+ line-height: 1;
2239
+ color: var(--lp-accent);
2240
+ opacity: 0.06;
2241
+ text-shadow: 0 0 80px var(--lp-glow-accent);
2242
+ pointer-events: none;
2243
+ z-index: 0;
2244
+ }
2245
+
2246
+ .lp-theme02-quote-content {
2247
+ position: relative;
2248
+ z-index: 2;
2249
+ max-width: 980px;
2250
+ text-align: center;
2251
+ display: flex;
2252
+ flex-direction: column;
2253
+ align-items: center;
2254
+ gap: 36px;
2255
+ }
2256
+
2257
+ .lp-theme02-quote-text {
2258
+ font-size: 44px;
2259
+ font-weight: 800;
2260
+ line-height: 1.35;
2261
+ color: var(--lp-ink);
2262
+ margin: 0;
2263
+ }
2264
+
2265
+ .lp-theme02-quote-author {
2266
+ display: flex;
2267
+ align-items: center;
2268
+ gap: 18px;
2269
+ }
2270
+
2271
+ .lp-theme02-quote-avatar {
2272
+ width: 64px;
2273
+ height: 64px;
2274
+ border-radius: 50%;
2275
+ object-fit: cover;
2276
+ border: 2px solid var(--lp-accent);
2277
+ box-shadow: 0 0 18px var(--lp-glow-accent);
2278
+ }
2279
+
2280
+ .lp-theme02-quote-meta {
2281
+ display: flex;
2282
+ flex-direction: column;
2283
+ gap: 4px;
2284
+ text-align: left;
2285
+ }
2286
+
2287
+ .lp-theme02-quote-name {
2288
+ font-size: 20px;
2289
+ font-weight: 800;
2290
+ color: var(--lp-ink);
2291
+ }
2292
+
2293
+ .lp-theme02-quote-role {
2294
+ font-size: 15px;
2295
+ font-weight: 600;
2296
+ color: var(--lp-ink3);
2297
+ }
2298
+
2299
+ /* ---- Bento v1 ---- */
2300
+ .lp-theme02-bento-v1 {
2301
+ display: flex;
2302
+ flex-direction: column;
2303
+ padding: 72px 84px;
2304
+ }
2305
+
2306
+ .lp-theme02-bento-header {
2307
+ display: flex;
2308
+ flex-direction: column;
2309
+ gap: 14px;
2310
+ margin-bottom: 36px;
2311
+ }
2312
+
2313
+ .lp-theme02-bento-title {
2314
+ font-size: 52px;
2315
+ font-weight: 900;
2316
+ line-height: 1.1;
2317
+ letter-spacing: -0.01em;
2318
+ margin: 0;
2319
+ color: var(--lp-ink);
2320
+ }
2321
+
2322
+ .lp-theme02-bento-subtitle {
2323
+ font-size: 22px;
2324
+ font-weight: 600;
2325
+ color: var(--lp-ink2);
2326
+ margin: 0;
2327
+ max-width: 760px;
2328
+ }
2329
+
2330
+ .lp-theme02-bento-grid {
2331
+ display: grid;
2332
+ grid-template-columns: repeat(4, 1fr);
2333
+ grid-auto-rows: minmax(140px, auto);
2334
+ gap: 20px;
2335
+ flex: 1;
2336
+ }
2337
+
2338
+ .lp-theme02-bento-card {
2339
+ position: relative;
2340
+ padding: 28px;
2341
+ background: var(--lp-surface);
2342
+ border: 1px solid var(--lp-border);
2343
+ border-radius: var(--lp-radius-large);
2344
+ box-shadow: var(--lp-shadow);
2345
+ display: flex;
2346
+ flex-direction: column;
2347
+ justify-content: flex-end;
2348
+ gap: 6px;
2349
+ overflow: hidden;
2350
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
2351
+ }
2352
+
2353
+ .lp-theme02-bento-card:hover {
2354
+ transform: translateY(-3px);
2355
+ border-color: var(--lp-accent);
2356
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
2357
+ }
2358
+
2359
+ .lp-theme02-bento-card--large {
2360
+ grid-column: span 2;
2361
+ grid-row: span 2;
2362
+ }
2363
+
2364
+ .lp-theme02-bento-card--medium {
2365
+ grid-column: span 2;
2366
+ }
2367
+
2368
+ .lp-theme02-bento-card--small {
2369
+ grid-column: span 1;
2370
+ }
2371
+
2372
+ .lp-theme02-bento-value {
2373
+ font-family: var(--lp-font-mono);
2374
+ font-size: 44px;
2375
+ font-weight: 900;
2376
+ line-height: 1;
2377
+ color: var(--lp-ink);
2378
+ }
2379
+
2380
+ .lp-theme02-bento-card--large .lp-theme02-bento-value {
2381
+ font-size: 72px;
2382
+ }
2383
+
2384
+ .lp-theme02-bento-unit {
2385
+ font-family: var(--lp-font-mono);
2386
+ font-size: 16px;
2387
+ font-weight: 700;
2388
+ color: var(--lp-ink3);
2389
+ }
2390
+
2391
+ .lp-theme02-bento-label {
2392
+ font-size: 15px;
2393
+ font-weight: 700;
2394
+ color: var(--lp-ink2);
2395
+ letter-spacing: 0.02em;
2396
+ }
2397
+
2398
+ .lp-theme02-bento-card:nth-child(4n+1) .lp-theme02-bento-value {
2399
+ color: var(--lp-accent);
2400
+ text-shadow: 0 0 18px var(--lp-glow-accent);
2401
+ }
2402
+
2403
+ .lp-theme02-bento-card:nth-child(4n+2) .lp-theme02-bento-value {
2404
+ color: var(--lp-accent-cool);
2405
+ text-shadow: 0 0 18px var(--lp-glow-cool);
2406
+ }
2407
+
2408
+ .lp-theme02-bento-card:nth-child(4n+3) .lp-theme02-bento-value {
2409
+ color: var(--lp-accent-2);
2410
+ text-shadow: 0 0 18px var(--lp-glow-warm);
2411
+ }
2412
+
2413
+ /* ---- Feature v1 ---- */
2414
+ .lp-theme02-feature-v1 {
2415
+ display: flex;
2416
+ flex-direction: column;
2417
+ padding: 72px 84px;
2418
+ }
2419
+
2420
+ .lp-theme02-feature-header {
2421
+ display: flex;
2422
+ flex-direction: column;
2423
+ gap: 14px;
2424
+ margin-bottom: 44px;
2425
+ }
2426
+
2427
+ .lp-theme02-feature-title {
2428
+ font-size: 52px;
2429
+ font-weight: 900;
2430
+ line-height: 1.1;
2431
+ letter-spacing: -0.01em;
2432
+ margin: 0;
2433
+ color: var(--lp-ink);
2434
+ }
2435
+
2436
+ .lp-theme02-feature-subtitle {
2437
+ font-size: 22px;
2438
+ font-weight: 600;
2439
+ color: var(--lp-ink2);
2440
+ margin: 0;
2441
+ max-width: 760px;
2442
+ }
2443
+
2444
+ .lp-theme02-feature-grid {
2445
+ display: grid;
2446
+ grid-template-columns: repeat(3, 1fr);
2447
+ gap: 24px;
2448
+ flex: 1;
2449
+ align-content: center;
2450
+ }
2451
+
2452
+ .lp-theme02-feature-card {
2453
+ position: relative;
2454
+ padding: 32px 28px;
2455
+ background: var(--lp-surface);
2456
+ border: 1px solid var(--lp-border);
2457
+ border-radius: var(--lp-radius-large);
2458
+ box-shadow: var(--lp-shadow);
2459
+ display: flex;
2460
+ flex-direction: column;
2461
+ gap: 14px;
2462
+ overflow: hidden;
2463
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
2464
+ }
2465
+
2466
+ .lp-theme02-feature-card:hover {
2467
+ transform: translateY(-4px);
2468
+ border-color: var(--lp-accent);
2469
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
2470
+ }
2471
+
2472
+ .lp-theme02-feature-card::before {
2473
+ content: '';
2474
+ position: absolute;
2475
+ top: 0;
2476
+ left: 0;
2477
+ right: 0;
2478
+ height: 3px;
2479
+ background: var(--lp-accent);
2480
+ box-shadow: 0 0 16px var(--lp-glow-accent);
2481
+ }
2482
+
2483
+ .lp-theme02-feature-card--cool::before {
2484
+ background: var(--lp-accent-cool);
2485
+ box-shadow: 0 0 16px var(--lp-glow-cool);
2486
+ }
2487
+
2488
+ .lp-theme02-feature-card--warm::before {
2489
+ background: var(--lp-accent-2);
2490
+ box-shadow: 0 0 16px var(--lp-glow-warm);
2491
+ }
2492
+
2493
+ .lp-theme02-feature-number {
2494
+ font-family: var(--lp-font-mono);
2495
+ font-size: 42px;
2496
+ font-weight: 900;
2497
+ line-height: 1;
2498
+ color: var(--lp-ink3);
2499
+ opacity: 0.5;
2500
+ }
2501
+
2502
+ .lp-theme02-feature-card-title {
2503
+ font-size: 24px;
2504
+ font-weight: 800;
2505
+ color: var(--lp-ink);
2506
+ margin: 0;
2507
+ }
2508
+
2509
+ .lp-theme02-feature-card-description {
2510
+ font-size: 16px;
2511
+ line-height: 1.6;
2512
+ color: var(--lp-ink2);
2513
+ margin: 0;
2514
+ }
2515
+
2516
+ /* ---- Process v1 ---- */
2517
+ .lp-theme02-process-v1 {
2518
+ display: flex;
2519
+ flex-direction: column;
2520
+ padding: 72px 84px;
2521
+ }
2522
+
2523
+ .lp-theme02-process-header {
2524
+ display: flex;
2525
+ flex-direction: column;
2526
+ gap: 14px;
2527
+ margin-bottom: 52px;
2528
+ }
2529
+
2530
+ .lp-theme02-process-title {
2531
+ font-size: 52px;
2532
+ font-weight: 900;
2533
+ line-height: 1.1;
2534
+ letter-spacing: -0.01em;
2535
+ margin: 0;
2536
+ color: var(--lp-ink);
2537
+ }
2538
+
2539
+ .lp-theme02-process-subtitle {
2540
+ font-size: 22px;
2541
+ font-weight: 600;
2542
+ color: var(--lp-ink2);
2543
+ margin: 0;
2544
+ max-width: 760px;
2545
+ }
2546
+
2547
+ .lp-theme02-process-track {
2548
+ position: relative;
2549
+ display: flex;
2550
+ align-items: stretch;
2551
+ gap: 16px;
2552
+ flex: 1;
2553
+ }
2554
+
2555
+ .lp-theme02-process-step {
2556
+ position: relative;
2557
+ flex: 1;
2558
+ display: flex;
2559
+ flex-direction: column;
2560
+ align-items: center;
2561
+ gap: 24px;
2562
+ }
2563
+
2564
+ .lp-theme02-process-node {
2565
+ width: 56px;
2566
+ height: 56px;
2567
+ border-radius: 50%;
2568
+ display: flex;
2569
+ align-items: center;
2570
+ justify-content: center;
2571
+ background: var(--lp-surface);
2572
+ border: 2px solid var(--lp-accent);
2573
+ box-shadow: 0 0 24px var(--lp-glow-accent);
2574
+ z-index: 2;
2575
+ }
2576
+
2577
+ .lp-theme02-process-node--cool {
2578
+ border-color: var(--lp-accent-cool);
2579
+ box-shadow: 0 0 24px var(--lp-glow-cool);
2580
+ }
2581
+
2582
+ .lp-theme02-process-node--warm {
2583
+ border-color: var(--lp-accent-2);
2584
+ box-shadow: 0 0 24px var(--lp-glow-warm);
2585
+ }
2586
+
2587
+ .lp-theme02-process-node-number {
2588
+ font-family: var(--lp-font-mono);
2589
+ font-size: 22px;
2590
+ font-weight: 900;
2591
+ color: var(--lp-ink);
2592
+ }
2593
+
2594
+ .lp-theme02-process-card {
2595
+ width: 100%;
2596
+ flex: 1;
2597
+ padding: 24px;
2598
+ background: var(--lp-surface);
2599
+ border: 1px solid var(--lp-border);
2600
+ border-radius: var(--lp-radius-large);
2601
+ box-shadow: var(--lp-shadow);
2602
+ display: flex;
2603
+ flex-direction: column;
2604
+ gap: 10px;
2605
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2606
+ }
2607
+
2608
+ .lp-theme02-process-card:hover {
2609
+ border-color: var(--lp-accent);
2610
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
2611
+ }
2612
+
2613
+ .lp-theme02-process-step-title {
2614
+ font-size: 20px;
2615
+ font-weight: 800;
2616
+ color: var(--lp-ink);
2617
+ margin: 0;
2618
+ }
2619
+
2620
+ .lp-theme02-process-step-description {
2621
+ font-size: 15px;
2622
+ line-height: 1.55;
2623
+ color: var(--lp-ink2);
2624
+ margin: 0;
2625
+ }
2626
+
2627
+ .lp-theme02-process-arrow {
2628
+ position: absolute;
2629
+ top: 28px;
2630
+ right: -16px;
2631
+ width: 16px;
2632
+ height: 2px;
2633
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool));
2634
+ opacity: 0.5;
2635
+ z-index: 1;
2636
+ }
2637
+
2638
+ /* ---- Roadmap v1 ---- */
2639
+ .lp-theme02-roadmap-v1 {
2640
+ display: flex;
2641
+ flex-direction: column;
2642
+ padding: 72px 84px;
2643
+ }
2644
+
2645
+ .lp-theme02-roadmap-header {
2646
+ display: flex;
2647
+ flex-direction: column;
2648
+ gap: 14px;
2649
+ margin-bottom: 52px;
2650
+ }
2651
+
2652
+ .lp-theme02-roadmap-title {
2653
+ font-size: 52px;
2654
+ font-weight: 900;
2655
+ line-height: 1.1;
2656
+ letter-spacing: -0.01em;
2657
+ margin: 0;
2658
+ color: var(--lp-ink);
2659
+ }
2660
+
2661
+ .lp-theme02-roadmap-subtitle {
2662
+ font-size: 22px;
2663
+ font-weight: 600;
2664
+ color: var(--lp-ink2);
2665
+ margin: 0;
2666
+ max-width: 760px;
2667
+ }
2668
+
2669
+ .lp-theme02-roadmap-track {
2670
+ position: relative;
2671
+ display: flex;
2672
+ align-items: stretch;
2673
+ gap: 20px;
2674
+ flex: 1;
2675
+ }
2676
+
2677
+ .lp-theme02-roadmap-track::before {
2678
+ content: '';
2679
+ position: absolute;
2680
+ top: 28px;
2681
+ left: 0;
2682
+ right: 0;
2683
+ height: 2px;
2684
+ background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent-cool), var(--lp-accent-2));
2685
+ opacity: 0.4;
2686
+ }
2687
+
2688
+ .lp-theme02-roadmap-phase {
2689
+ position: relative;
2690
+ flex: 1;
2691
+ display: flex;
2692
+ flex-direction: column;
2693
+ gap: 22px;
2694
+ padding-top: 10px;
2695
+ }
2696
+
2697
+ .lp-theme02-roadmap-marker {
2698
+ width: 36px;
2699
+ height: 36px;
2700
+ border-radius: 50%;
2701
+ display: flex;
2702
+ align-items: center;
2703
+ justify-content: center;
2704
+ background: var(--lp-accent);
2705
+ border: 4px solid color-mix(in srgb, var(--lp-bg) 80%, transparent);
2706
+ box-shadow: 0 0 20px var(--lp-glow-accent);
2707
+ z-index: 2;
2708
+ }
2709
+
2710
+ .lp-theme02-roadmap-marker--cool {
2711
+ background: var(--lp-accent-cool);
2712
+ box-shadow: 0 0 20px var(--lp-glow-cool);
2713
+ }
2714
+
2715
+ .lp-theme02-roadmap-marker--warm {
2716
+ background: var(--lp-accent-2);
2717
+ box-shadow: 0 0 20px var(--lp-glow-warm);
2718
+ }
2719
+
2720
+ .lp-theme02-roadmap-number {
2721
+ font-family: var(--lp-font-mono);
2722
+ font-size: 12px;
2723
+ font-weight: 900;
2724
+ color: var(--lp-text-inverse);
2725
+ }
2726
+
2727
+ .lp-theme02-roadmap-card {
2728
+ flex: 1;
2729
+ padding: 24px;
2730
+ background: var(--lp-surface);
2731
+ border: 1px solid var(--lp-border);
2732
+ border-radius: var(--lp-radius-large);
2733
+ box-shadow: var(--lp-shadow);
2734
+ display: flex;
2735
+ flex-direction: column;
2736
+ gap: 14px;
2737
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2738
+ }
2739
+
2740
+ .lp-theme02-roadmap-card:hover {
2741
+ border-color: var(--lp-accent);
2742
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
2743
+ }
2744
+
2745
+ .lp-theme02-roadmap-phase-title {
2746
+ font-size: 20px;
2747
+ font-weight: 800;
2748
+ color: var(--lp-ink);
2749
+ margin: 0;
2750
+ }
2751
+
2752
+ .lp-theme02-roadmap-list {
2753
+ list-style: none;
2754
+ padding: 0;
2755
+ margin: 0;
2756
+ display: flex;
2757
+ flex-direction: column;
2758
+ gap: 10px;
2759
+ }
2760
+
2761
+ .lp-theme02-roadmap-list li {
2762
+ position: relative;
2763
+ padding-left: 18px;
2764
+ font-size: 15px;
2765
+ line-height: 1.5;
2766
+ color: var(--lp-ink2);
2767
+ }
2768
+
2769
+ .lp-theme02-roadmap-list li::before {
2770
+ content: '';
2771
+ position: absolute;
2772
+ left: 0;
2773
+ top: 9px;
2774
+ width: 6px;
2775
+ height: 6px;
2776
+ border-radius: 50%;
2777
+ background: var(--lp-accent);
2778
+ box-shadow: 0 0 10px var(--lp-glow-accent);
2779
+ }
2780
+
2781
+ .lp-theme02-roadmap-connector {
2782
+ position: absolute;
2783
+ top: 28px;
2784
+ right: -20px;
2785
+ width: 20px;
2786
+ height: 2px;
2787
+ background: linear-gradient(90deg, var(--lp-accent-cool), var(--lp-accent-2));
2788
+ opacity: 0.4;
2789
+ z-index: 1;
2790
+ }
2791
+
2792
+ /* ---- Pricing v1 ---- */
2793
+ .lp-theme02-pricing-v1 {
2794
+ display: flex;
2795
+ flex-direction: column;
2796
+ padding: 72px 84px;
2797
+ }
2798
+
2799
+ .lp-theme02-pricing-header {
2800
+ display: flex;
2801
+ flex-direction: column;
2802
+ gap: 14px;
2803
+ margin-bottom: 44px;
2804
+ text-align: center;
2805
+ align-items: center;
2806
+ }
2807
+
2808
+ .lp-theme02-pricing-title {
2809
+ font-size: 52px;
2810
+ font-weight: 900;
2811
+ line-height: 1.1;
2812
+ letter-spacing: -0.01em;
2813
+ margin: 0;
2814
+ color: var(--lp-ink);
2815
+ }
2816
+
2817
+ .lp-theme02-pricing-subtitle {
2818
+ font-size: 22px;
2819
+ font-weight: 600;
2820
+ color: var(--lp-ink2);
2821
+ margin: 0;
2822
+ max-width: 760px;
2823
+ }
2824
+
2825
+ .lp-theme02-pricing-grid {
2826
+ display: grid;
2827
+ grid-template-columns: repeat(3, 1fr);
2828
+ gap: 24px;
2829
+ flex: 1;
2830
+ align-items: center;
2831
+ }
2832
+
2833
+ .lp-theme02-pricing-card {
2834
+ position: relative;
2835
+ padding: 36px 28px;
2836
+ background: var(--lp-surface);
2837
+ border: 1px solid var(--lp-border);
2838
+ border-radius: var(--lp-radius-large);
2839
+ box-shadow: var(--lp-shadow);
2840
+ display: flex;
2841
+ flex-direction: column;
2842
+ gap: 20px;
2843
+ overflow: hidden;
2844
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
2845
+ }
2846
+
2847
+ .lp-theme02-pricing-card:hover {
2848
+ transform: translateY(-4px);
2849
+ border-color: var(--lp-accent);
2850
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25), 0 0 24px var(--lp-glow-accent-subtle);
2851
+ }
2852
+
2853
+ .lp-theme02-pricing-card--highlight {
2854
+ border-color: var(--lp-accent);
2855
+ box-shadow: 0 0 40px var(--lp-glow-accent-subtle), var(--lp-shadow);
2856
+ transform: scale(1.03);
2857
+ background: linear-gradient(135deg, color-mix(in srgb, var(--lp-accent) 10%, transparent), var(--lp-surface));
2858
+ }
2859
+
2860
+ .lp-theme02-pricing-card--highlight:hover {
2861
+ box-shadow: 0 0 50px var(--lp-glow-accent), 0 12px 40px rgba(0, 0, 0, 0.25);
2862
+ }
2863
+
2864
+ .lp-theme02-pricing-badge {
2865
+ position: absolute;
2866
+ top: 16px;
2867
+ right: 16px;
2868
+ padding: 6px 12px;
2869
+ border-radius: 999px;
2870
+ background: var(--lp-accent);
2871
+ color: var(--lp-text-inverse);
2872
+ font-family: var(--lp-font-mono);
2873
+ font-size: 12px;
2874
+ font-weight: 800;
2875
+ letter-spacing: 0.04em;
2876
+ text-transform: uppercase;
2877
+ box-shadow: 0 0 16px var(--lp-glow-accent);
2878
+ }
2879
+
2880
+ .lp-theme02-pricing-name {
2881
+ font-size: 24px;
2882
+ font-weight: 900;
2883
+ color: var(--lp-ink);
2884
+ margin: 0;
2885
+ }
2886
+
2887
+ .lp-theme02-pricing-price-row {
2888
+ display: flex;
2889
+ align-items: baseline;
2890
+ gap: 8px;
2891
+ }
2892
+
2893
+ .lp-theme02-pricing-price {
2894
+ font-family: var(--lp-font-mono);
2895
+ font-size: 48px;
2896
+ font-weight: 900;
2897
+ line-height: 1;
2898
+ color: var(--lp-accent);
2899
+ text-shadow: 0 0 18px var(--lp-glow-accent);
2900
+ }
2901
+
2902
+ .lp-theme02-pricing-period {
2903
+ font-size: 16px;
2904
+ font-weight: 600;
2905
+ color: var(--lp-ink3);
2906
+ }
2907
+
2908
+ .lp-theme02-pricing-features {
2909
+ list-style: none;
2910
+ padding: 0;
2911
+ margin: 0;
2912
+ display: flex;
2913
+ flex-direction: column;
2914
+ gap: 12px;
2915
+ }
2916
+
2917
+ .lp-theme02-pricing-features li {
2918
+ position: relative;
2919
+ padding-left: 22px;
2920
+ font-size: 16px;
2921
+ line-height: 1.5;
2922
+ color: var(--lp-ink2);
2923
+ }
2924
+
2925
+ .lp-theme02-pricing-features li::before {
2926
+ content: '';
2927
+ position: absolute;
2928
+ left: 0;
2929
+ top: 8px;
2930
+ width: 8px;
2931
+ height: 8px;
2932
+ border-radius: 50%;
2933
+ background: var(--lp-accent-cool);
2934
+ box-shadow: 0 0 10px var(--lp-glow-cool);
2935
+ }
2936
+
2937
+ .lp-theme02-pricing-cta {
2938
+ margin-top: auto;
2939
+ padding: 14px 24px;
2940
+ text-align: center;
2941
+ border-radius: var(--lp-radius-small);
2942
+ background: linear-gradient(135deg, var(--lp-accent), var(--lp-accent-cool));
2943
+ color: var(--lp-text-inverse);
2944
+ font-size: 16px;
2945
+ font-weight: 800;
2946
+ box-shadow: 0 8px 24px var(--lp-glow-accent-subtle);
2947
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
2948
+ }
2949
+
2950
+ .lp-theme02-pricing-cta:hover {
2951
+ transform: translateY(-2px);
2952
+ box-shadow: 0 12px 32px var(--lp-glow-accent);
2953
+ }
2954
+
2955
+ /* ---- Gallery v1 ---- */
2956
+ .lp-theme02-gallery-v1 {
2957
+ display: flex;
2958
+ flex-direction: column;
2959
+ padding: 72px 84px;
2960
+ }
2961
+
2962
+ .lp-theme02-gallery-header {
2963
+ display: flex;
2964
+ flex-direction: column;
2965
+ gap: 14px;
2966
+ margin-bottom: 44px;
2967
+ }
2968
+
2969
+ .lp-theme02-gallery-title {
2970
+ font-size: 52px;
2971
+ font-weight: 900;
2972
+ line-height: 1.1;
2973
+ letter-spacing: -0.01em;
2974
+ margin: 0;
2975
+ color: var(--lp-ink);
2976
+ }
2977
+
2978
+ .lp-theme02-gallery-subtitle {
2979
+ font-size: 22px;
2980
+ font-weight: 600;
2981
+ color: var(--lp-ink2);
2982
+ margin: 0;
2983
+ max-width: 760px;
2984
+ }
2985
+
2986
+ .lp-theme02-gallery-grid {
2987
+ display: grid;
2988
+ gap: 20px;
2989
+ flex: 1;
2990
+ align-content: center;
2991
+ }
2992
+
2993
+ .lp-theme02-gallery-grid--1 {
2994
+ grid-template-columns: 1fr;
2995
+ }
2996
+
2997
+ .lp-theme02-gallery-grid--2 {
2998
+ grid-template-columns: repeat(2, 1fr);
2999
+ }
3000
+
3001
+ .lp-theme02-gallery-grid--3 {
3002
+ grid-template-columns: repeat(3, 1fr);
3003
+ }
3004
+
3005
+ .lp-theme02-gallery-grid--4 {
3006
+ grid-template-columns: repeat(2, 1fr);
3007
+ grid-template-rows: repeat(2, 1fr);
3008
+ }
3009
+
3010
+ .lp-theme02-gallery-card {
3011
+ position: relative;
3012
+ border-radius: var(--lp-radius-large);
3013
+ overflow: hidden;
3014
+ border: 1px solid var(--lp-border);
3015
+ box-shadow: var(--lp-shadow);
3016
+ background: var(--lp-surface);
3017
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3018
+ }
3019
+
3020
+ .lp-theme02-gallery-card:hover {
3021
+ border-color: var(--lp-accent);
3022
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3023
+ }
3024
+
3025
+ .lp-theme02-gallery-image {
3026
+ width: 100%;
3027
+ height: 100%;
3028
+ object-fit: cover;
3029
+ }
3030
+
3031
+ .lp-theme02-gallery-image-placeholder {
3032
+ width: 100%;
3033
+ height: 100%;
3034
+ display: flex;
3035
+ align-items: center;
3036
+ justify-content: center;
3037
+ border: 2px dashed var(--lp-border);
3038
+ border-radius: var(--lp-radius-large);
3039
+ color: var(--lp-ink3);
3040
+ font-size: 14px;
3041
+ background: var(--lp-overlay);
3042
+ }
3043
+
3044
+ .lp-theme02-gallery-image-placeholder:hover {
3045
+ border-color: var(--lp-accent);
3046
+ color: var(--lp-accent);
3047
+ }
3048
+
3049
+ .lp-theme02-gallery-caption {
3050
+ position: absolute;
3051
+ bottom: 0;
3052
+ left: 0;
3053
+ right: 0;
3054
+ padding: 16px 20px;
3055
+ background: linear-gradient(0deg, rgba(8, 10, 14, 0.92), transparent);
3056
+ font-size: 15px;
3057
+ font-weight: 700;
3058
+ color: var(--lp-ink);
3059
+ }
3060
+
3061
+ /* ---- SWOT v1 ---- */
3062
+ .lp-theme02-swot-v1 {
3063
+ display: flex;
3064
+ flex-direction: column;
3065
+ padding: 72px 84px;
3066
+ }
3067
+
3068
+ .lp-theme02-swot-header {
3069
+ display: flex;
3070
+ flex-direction: column;
3071
+ gap: 14px;
3072
+ margin-bottom: 44px;
3073
+ }
3074
+
3075
+ .lp-theme02-swot-title {
3076
+ font-size: 52px;
3077
+ font-weight: 900;
3078
+ line-height: 1.1;
3079
+ letter-spacing: -0.01em;
3080
+ margin: 0;
3081
+ color: var(--lp-ink);
3082
+ }
3083
+
3084
+ .lp-theme02-swot-subtitle {
3085
+ font-size: 22px;
3086
+ font-weight: 600;
3087
+ color: var(--lp-ink2);
3088
+ margin: 0;
3089
+ max-width: 760px;
3090
+ }
3091
+
3092
+ .lp-theme02-swot-grid {
3093
+ display: grid;
3094
+ grid-template-columns: repeat(2, 1fr);
3095
+ gap: 24px;
3096
+ flex: 1;
3097
+ align-content: center;
3098
+ }
3099
+
3100
+ .lp-theme02-swot-cell {
3101
+ position: relative;
3102
+ padding: 32px;
3103
+ background: var(--lp-surface);
3104
+ border: 1px solid var(--lp-border);
3105
+ border-radius: var(--lp-radius-large);
3106
+ box-shadow: var(--lp-shadow);
3107
+ display: flex;
3108
+ flex-direction: column;
3109
+ gap: 18px;
3110
+ overflow: hidden;
3111
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3112
+ }
3113
+
3114
+ .lp-theme02-swot-cell:hover {
3115
+ border-color: var(--lp-accent);
3116
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3117
+ }
3118
+
3119
+ .lp-theme02-swot-cell::before {
3120
+ content: '';
3121
+ position: absolute;
3122
+ top: 0;
3123
+ left: 0;
3124
+ right: 0;
3125
+ height: 3px;
3126
+ background: var(--lp-accent);
3127
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3128
+ }
3129
+
3130
+ .lp-theme02-swot-s::before {
3131
+ background: var(--lp-green);
3132
+ box-shadow: 0 0 16px rgba(74, 222, 128, 0.4);
3133
+ }
3134
+
3135
+ .lp-theme02-swot-w::before {
3136
+ background: var(--lp-red);
3137
+ box-shadow: 0 0 16px rgba(255, 107, 107, 0.4);
3138
+ }
3139
+
3140
+ .lp-theme02-swot-o::before {
3141
+ background: var(--lp-accent-cool);
3142
+ box-shadow: 0 0 16px var(--lp-glow-cool);
3143
+ }
3144
+
3145
+ .lp-theme02-swot-t::before {
3146
+ background: var(--lp-amber);
3147
+ box-shadow: 0 0 16px rgba(251, 191, 36, 0.4);
3148
+ }
3149
+
3150
+ .lp-theme02-swot-label-group {
3151
+ display: flex;
3152
+ align-items: baseline;
3153
+ gap: 12px;
3154
+ }
3155
+
3156
+ .lp-theme02-swot-label {
3157
+ font-family: var(--lp-font-mono);
3158
+ font-size: 42px;
3159
+ font-weight: 900;
3160
+ line-height: 1;
3161
+ color: var(--lp-accent);
3162
+ text-shadow: 0 0 18px var(--lp-glow-accent);
3163
+ }
3164
+
3165
+ .lp-theme02-swot-s .lp-theme02-swot-label {
3166
+ color: var(--lp-green);
3167
+ text-shadow: 0 0 18px rgba(74, 222, 128, 0.4);
3168
+ }
3169
+
3170
+ .lp-theme02-swot-w .lp-theme02-swot-label {
3171
+ color: var(--lp-red);
3172
+ text-shadow: 0 0 18px rgba(255, 107, 107, 0.4);
3173
+ }
3174
+
3175
+ .lp-theme02-swot-o .lp-theme02-swot-label {
3176
+ color: var(--lp-accent-cool);
3177
+ text-shadow: 0 0 18px var(--lp-glow-cool);
3178
+ }
3179
+
3180
+ .lp-theme02-swot-t .lp-theme02-swot-label {
3181
+ color: var(--lp-amber);
3182
+ text-shadow: 0 0 18px rgba(251, 191, 36, 0.4);
3183
+ }
3184
+
3185
+ .lp-theme02-swot-label-subtitle {
3186
+ font-size: 16px;
3187
+ font-weight: 700;
3188
+ letter-spacing: 0.04em;
3189
+ text-transform: uppercase;
3190
+ color: var(--lp-ink3);
3191
+ }
3192
+
3193
+ .lp-theme02-swot-value {
3194
+ font-size: 18px;
3195
+ line-height: 1.6;
3196
+ color: var(--lp-ink2);
3197
+ margin: 0;
3198
+ }
3199
+
3200
+ /* ---- FAQ v1 ---- */
3201
+ .lp-theme02-faq-v1 {
3202
+ display: flex;
3203
+ flex-direction: column;
3204
+ padding: 72px 84px;
3205
+ }
3206
+
3207
+ .lp-theme02-faq-header {
3208
+ display: flex;
3209
+ flex-direction: column;
3210
+ gap: 14px;
3211
+ margin-bottom: 44px;
3212
+ }
3213
+
3214
+ .lp-theme02-faq-title {
3215
+ font-size: 52px;
3216
+ font-weight: 900;
3217
+ line-height: 1.1;
3218
+ letter-spacing: -0.01em;
3219
+ margin: 0;
3220
+ color: var(--lp-ink);
3221
+ }
3222
+
3223
+ .lp-theme02-faq-subtitle {
3224
+ font-size: 22px;
3225
+ font-weight: 600;
3226
+ color: var(--lp-ink2);
3227
+ margin: 0;
3228
+ max-width: 760px;
3229
+ }
3230
+
3231
+ .lp-theme02-faq-list {
3232
+ display: flex;
3233
+ flex-direction: column;
3234
+ gap: 18px;
3235
+ flex: 1;
3236
+ justify-content: center;
3237
+ }
3238
+
3239
+ .lp-theme02-faq-card {
3240
+ padding: 24px 28px;
3241
+ background: var(--lp-surface);
3242
+ border: 1px solid var(--lp-border);
3243
+ border-radius: var(--lp-radius-large);
3244
+ box-shadow: var(--lp-shadow);
3245
+ display: flex;
3246
+ flex-direction: column;
3247
+ gap: 12px;
3248
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3249
+ }
3250
+
3251
+ .lp-theme02-faq-card:hover {
3252
+ border-color: var(--lp-accent);
3253
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3254
+ }
3255
+
3256
+ .lp-theme02-faq-question,
3257
+ .lp-theme02-faq-answer {
3258
+ display: flex;
3259
+ gap: 14px;
3260
+ align-items: baseline;
3261
+ }
3262
+
3263
+ .lp-theme02-faq-question h3,
3264
+ .lp-theme02-faq-answer p {
3265
+ margin: 0;
3266
+ font-size: 17px;
3267
+ line-height: 1.55;
3268
+ color: var(--lp-ink);
3269
+ font-weight: 800;
3270
+ }
3271
+
3272
+ .lp-theme02-faq-answer p {
3273
+ font-weight: 500;
3274
+ color: var(--lp-ink2);
3275
+ }
3276
+
3277
+ .lp-theme02-faq-marker {
3278
+ flex-shrink: 0;
3279
+ width: 28px;
3280
+ height: 28px;
3281
+ border-radius: 50%;
3282
+ display: flex;
3283
+ align-items: center;
3284
+ justify-content: center;
3285
+ font-family: var(--lp-font-mono);
3286
+ font-size: 13px;
3287
+ font-weight: 900;
3288
+ }
3289
+
3290
+ .lp-theme02-faq-marker--q {
3291
+ background: var(--lp-accent);
3292
+ color: var(--lp-text-inverse);
3293
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3294
+ }
3295
+
3296
+ .lp-theme02-faq-marker--a {
3297
+ background: var(--lp-surface);
3298
+ color: var(--lp-accent-cool);
3299
+ border: 1px solid var(--lp-border);
3300
+ box-shadow: 0 0 12px var(--lp-glow-cool);
3301
+ }
3302
+
3303
+ /* ---- Partners v1 ---- */
3304
+ .lp-theme02-partners-v1 {
3305
+ display: flex;
3306
+ flex-direction: column;
3307
+ padding: 72px 84px;
3308
+ }
3309
+
3310
+ .lp-theme02-partners-header {
3311
+ display: flex;
3312
+ flex-direction: column;
3313
+ gap: 14px;
3314
+ margin-bottom: 44px;
3315
+ text-align: center;
3316
+ align-items: center;
3317
+ }
3318
+
3319
+ .lp-theme02-partners-title {
3320
+ font-size: 52px;
3321
+ font-weight: 900;
3322
+ line-height: 1.1;
3323
+ letter-spacing: -0.01em;
3324
+ margin: 0;
3325
+ color: var(--lp-ink);
3326
+ }
3327
+
3328
+ .lp-theme02-partners-subtitle {
3329
+ font-size: 22px;
3330
+ font-weight: 600;
3331
+ color: var(--lp-ink2);
3332
+ margin: 0;
3333
+ max-width: 760px;
3334
+ }
3335
+
3336
+ .lp-theme02-partners-grid {
3337
+ display: grid;
3338
+ grid-template-columns: repeat(4, 1fr);
3339
+ gap: 20px;
3340
+ flex: 1;
3341
+ align-content: center;
3342
+ }
3343
+
3344
+ .lp-theme02-partners-card {
3345
+ padding: 24px 20px;
3346
+ background: var(--lp-surface);
3347
+ border: 1px solid var(--lp-border);
3348
+ border-radius: var(--lp-radius-large);
3349
+ box-shadow: var(--lp-shadow);
3350
+ display: flex;
3351
+ flex-direction: column;
3352
+ align-items: center;
3353
+ justify-content: center;
3354
+ gap: 14px;
3355
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
3356
+ }
3357
+
3358
+ .lp-theme02-partners-card:hover {
3359
+ transform: translateY(-4px);
3360
+ border-color: var(--lp-accent);
3361
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3362
+ }
3363
+
3364
+ .lp-theme02-partners-logo-placeholder {
3365
+ width: 100%;
3366
+ aspect-ratio: 2 / 1;
3367
+ display: flex;
3368
+ align-items: center;
3369
+ justify-content: center;
3370
+ border: 2px dashed var(--lp-border);
3371
+ border-radius: var(--lp-radius-small);
3372
+ color: var(--lp-ink3);
3373
+ font-size: 13px;
3374
+ background: var(--lp-overlay);
3375
+ }
3376
+
3377
+ .lp-theme02-partners-logo-placeholder:hover {
3378
+ border-color: var(--lp-accent);
3379
+ color: var(--lp-accent);
3380
+ }
3381
+
3382
+ .lp-theme02-partners-name {
3383
+ font-size: 15px;
3384
+ font-weight: 700;
3385
+ color: var(--lp-ink2);
3386
+ text-align: center;
3387
+ }
3388
+
3389
+ /* ---- Testimonial v1 ---- */
3390
+ .lp-theme02-testimonial-v1 {
3391
+ display: flex;
3392
+ flex-direction: column;
3393
+ align-items: center;
3394
+ justify-content: center;
3395
+ padding: 72px 120px;
3396
+ text-align: center;
3397
+ }
3398
+
3399
+ .lp-theme02-testimonial-content {
3400
+ display: flex;
3401
+ flex-direction: column;
3402
+ gap: 40px;
3403
+ align-items: center;
3404
+ max-width: 960px;
3405
+ }
3406
+
3407
+ .lp-theme02-testimonial-quote {
3408
+ position: relative;
3409
+ padding: 48px 56px;
3410
+ background: var(--lp-surface);
3411
+ border: 1px solid var(--lp-border);
3412
+ border-radius: var(--lp-radius-large);
3413
+ box-shadow: var(--lp-shadow);
3414
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3415
+ }
3416
+
3417
+ .lp-theme02-testimonial-quote:hover {
3418
+ border-color: var(--lp-accent);
3419
+ box-shadow: 0 0 40px var(--lp-glow-accent-subtle);
3420
+ }
3421
+
3422
+ .lp-theme02-testimonial-quote blockquote {
3423
+ margin: 0;
3424
+ font-size: 32px;
3425
+ font-weight: 800;
3426
+ line-height: 1.45;
3427
+ color: var(--lp-ink);
3428
+ }
3429
+
3430
+ .lp-theme02-testimonial-mark {
3431
+ position: absolute;
3432
+ top: 20px;
3433
+ left: 28px;
3434
+ font-size: 80px;
3435
+ line-height: 1;
3436
+ color: var(--lp-accent);
3437
+ opacity: 0.25;
3438
+ font-family: Georgia, serif;
3439
+ text-shadow: 0 0 30px var(--lp-glow-accent);
3440
+ }
3441
+
3442
+ .lp-theme02-testimonial-author {
3443
+ display: flex;
3444
+ align-items: center;
3445
+ gap: 18px;
3446
+ }
3447
+
3448
+ .lp-theme02-testimonial-avatar-placeholder {
3449
+ width: 72px;
3450
+ height: 72px;
3451
+ border-radius: 50%;
3452
+ display: flex;
3453
+ align-items: center;
3454
+ justify-content: center;
3455
+ border: 2px dashed var(--lp-border);
3456
+ color: var(--lp-ink3);
3457
+ font-size: 12px;
3458
+ background: var(--lp-overlay);
3459
+ }
3460
+
3461
+ .lp-theme02-testimonial-avatar-placeholder:hover {
3462
+ border-color: var(--lp-accent);
3463
+ color: var(--lp-accent);
3464
+ }
3465
+
3466
+ .lp-theme02-testimonial-meta {
3467
+ display: flex;
3468
+ flex-direction: column;
3469
+ gap: 6px;
3470
+ text-align: left;
3471
+ }
3472
+
3473
+ .lp-theme02-testimonial-name {
3474
+ font-size: 20px;
3475
+ font-weight: 800;
3476
+ color: var(--lp-ink);
3477
+ }
3478
+
3479
+ .lp-theme02-testimonial-role {
3480
+ font-size: 15px;
3481
+ font-weight: 600;
3482
+ color: var(--lp-ink2);
3483
+ }
3484
+
3485
+ /* ---- PEST v1 ---- */
3486
+ .lp-theme02-pest-v1 {
3487
+ display: flex;
3488
+ flex-direction: column;
3489
+ padding: 72px 84px;
3490
+ }
3491
+
3492
+ .lp-theme02-pest-header {
3493
+ display: flex;
3494
+ flex-direction: column;
3495
+ gap: 14px;
3496
+ margin-bottom: 44px;
3497
+ }
3498
+
3499
+ .lp-theme02-pest-title {
3500
+ font-size: 52px;
3501
+ font-weight: 900;
3502
+ line-height: 1.1;
3503
+ letter-spacing: -0.01em;
3504
+ margin: 0;
3505
+ color: var(--lp-ink);
3506
+ }
3507
+
3508
+ .lp-theme02-pest-subtitle {
3509
+ font-size: 22px;
3510
+ font-weight: 600;
3511
+ color: var(--lp-ink2);
3512
+ margin: 0;
3513
+ max-width: 760px;
3514
+ }
3515
+
3516
+ .lp-theme02-pest-grid {
3517
+ display: grid;
3518
+ grid-template-columns: repeat(2, 1fr);
3519
+ gap: 24px;
3520
+ flex: 1;
3521
+ align-content: center;
3522
+ }
3523
+
3524
+ .lp-theme02-pest-cell {
3525
+ position: relative;
3526
+ padding: 32px;
3527
+ background: var(--lp-surface);
3528
+ border: 1px solid var(--lp-border);
3529
+ border-radius: var(--lp-radius-large);
3530
+ box-shadow: var(--lp-shadow);
3531
+ display: flex;
3532
+ flex-direction: column;
3533
+ gap: 18px;
3534
+ overflow: hidden;
3535
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3536
+ }
3537
+
3538
+ .lp-theme02-pest-cell:hover {
3539
+ border-color: var(--lp-accent);
3540
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3541
+ }
3542
+
3543
+ .lp-theme02-pest-cell::before {
3544
+ content: '';
3545
+ position: absolute;
3546
+ top: 0;
3547
+ left: 0;
3548
+ right: 0;
3549
+ height: 3px;
3550
+ background: var(--lp-accent);
3551
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3552
+ }
3553
+
3554
+ .lp-theme02-pest-p::before {
3555
+ background: var(--lp-red);
3556
+ box-shadow: 0 0 16px rgba(255, 107, 107, 0.4);
3557
+ }
3558
+
3559
+ .lp-theme02-pest-e::before {
3560
+ background: var(--lp-amber);
3561
+ box-shadow: 0 0 16px rgba(251, 191, 36, 0.4);
3562
+ }
3563
+
3564
+ .lp-theme02-pest-s::before {
3565
+ background: var(--lp-accent-cool);
3566
+ box-shadow: 0 0 16px var(--lp-glow-cool);
3567
+ }
3568
+
3569
+ .lp-theme02-pest-t::before {
3570
+ background: var(--lp-green);
3571
+ box-shadow: 0 0 16px rgba(74, 222, 128, 0.4);
3572
+ }
3573
+
3574
+ .lp-theme02-pest-label-group {
3575
+ display: flex;
3576
+ align-items: baseline;
3577
+ gap: 12px;
3578
+ }
3579
+
3580
+ .lp-theme02-pest-label {
3581
+ font-family: var(--lp-font-mono);
3582
+ font-size: 42px;
3583
+ font-weight: 900;
3584
+ line-height: 1;
3585
+ color: var(--lp-accent);
3586
+ text-shadow: 0 0 18px var(--lp-glow-accent);
3587
+ }
3588
+
3589
+ .lp-theme02-pest-p .lp-theme02-pest-label {
3590
+ color: var(--lp-red);
3591
+ text-shadow: 0 0 18px rgba(255, 107, 107, 0.4);
3592
+ }
3593
+
3594
+ .lp-theme02-pest-e .lp-theme02-pest-label {
3595
+ color: var(--lp-amber);
3596
+ text-shadow: 0 0 18px rgba(251, 191, 36, 0.4);
3597
+ }
3598
+
3599
+ .lp-theme02-pest-s .lp-theme02-pest-label {
3600
+ color: var(--lp-accent-cool);
3601
+ text-shadow: 0 0 18px var(--lp-glow-cool);
3602
+ }
3603
+
3604
+ .lp-theme02-pest-t .lp-theme02-pest-label {
3605
+ color: var(--lp-green);
3606
+ text-shadow: 0 0 18px rgba(74, 222, 128, 0.4);
3607
+ }
3608
+
3609
+ .lp-theme02-pest-label-subtitle {
3610
+ font-size: 16px;
3611
+ font-weight: 700;
3612
+ letter-spacing: 0.04em;
3613
+ text-transform: uppercase;
3614
+ color: var(--lp-ink3);
3615
+ }
3616
+
3617
+ .lp-theme02-pest-value {
3618
+ font-size: 18px;
3619
+ line-height: 1.6;
3620
+ color: var(--lp-ink2);
3621
+ margin: 0;
3622
+ }
3623
+
3624
+ /* ---- Table v1 ---- */
3625
+ .lp-theme02-table-v1 {
3626
+ display: flex;
3627
+ flex-direction: column;
3628
+ padding: 72px 84px;
3629
+ }
3630
+
3631
+ .lp-theme02-table-header {
3632
+ display: flex;
3633
+ flex-direction: column;
3634
+ gap: 14px;
3635
+ margin-bottom: 36px;
3636
+ }
3637
+
3638
+ .lp-theme02-table-title {
3639
+ font-size: 52px;
3640
+ font-weight: 900;
3641
+ line-height: 1.1;
3642
+ letter-spacing: -0.01em;
3643
+ margin: 0;
3644
+ color: var(--lp-ink);
3645
+ }
3646
+
3647
+ .lp-theme02-table-subtitle {
3648
+ font-size: 22px;
3649
+ font-weight: 600;
3650
+ color: var(--lp-ink2);
3651
+ margin: 0;
3652
+ max-width: 760px;
3653
+ }
3654
+
3655
+ .lp-theme02-table-card {
3656
+ flex: 1;
3657
+ padding: 8px;
3658
+ background: var(--lp-surface);
3659
+ border: 1px solid var(--lp-border);
3660
+ border-radius: var(--lp-radius-large);
3661
+ box-shadow: var(--lp-shadow);
3662
+ overflow: hidden;
3663
+ display: flex;
3664
+ flex-direction: column;
3665
+ }
3666
+
3667
+ .lp-theme02-table {
3668
+ width: 100%;
3669
+ border-collapse: separate;
3670
+ border-spacing: 0;
3671
+ font-size: 16px;
3672
+ flex: 1;
3673
+ }
3674
+
3675
+ .lp-theme02-table thead th {
3676
+ padding: 18px 20px;
3677
+ text-align: left;
3678
+ font-weight: 800;
3679
+ color: var(--lp-ink);
3680
+ background: linear-gradient(135deg, color-mix(in srgb, var(--lp-accent) 12%, transparent), color-mix(in srgb, var(--lp-accent-cool) 8%, transparent));
3681
+ border-bottom: 1px solid var(--lp-border);
3682
+ text-transform: uppercase;
3683
+ letter-spacing: 0.04em;
3684
+ font-size: 13px;
3685
+ }
3686
+
3687
+ .lp-theme02-table thead th:first-child {
3688
+ border-top-left-radius: var(--lp-radius-small);
3689
+ }
3690
+
3691
+ .lp-theme02-table thead th:last-child {
3692
+ border-top-right-radius: var(--lp-radius-small);
3693
+ }
3694
+
3695
+ .lp-theme02-table td {
3696
+ padding: 18px 20px;
3697
+ color: var(--lp-ink2);
3698
+ border-bottom: 1px solid var(--lp-border);
3699
+ }
3700
+
3701
+ .lp-theme02-table tbody tr:last-child td {
3702
+ border-bottom: none;
3703
+ }
3704
+
3705
+ .lp-theme02-table tbody tr:hover td {
3706
+ background: color-mix(in srgb, var(--lp-accent) 5%, transparent);
3707
+ }
3708
+
3709
+ .lp-theme02-table td[data-lp-highlight='true'] {
3710
+ color: var(--lp-accent);
3711
+ font-weight: 800;
3712
+ text-shadow: 0 0 12px var(--lp-glow-accent);
3713
+ }
3714
+
3715
+ /* ---- Tags v1 ---- */
3716
+ .lp-theme02-tags-v1 {
3717
+ display: flex;
3718
+ flex-direction: column;
3719
+ padding: 72px 84px;
3720
+ }
3721
+
3722
+ .lp-theme02-tags-v1-header {
3723
+ display: flex;
3724
+ flex-direction: column;
3725
+ gap: 14px;
3726
+ margin-bottom: 44px;
3727
+ text-align: center;
3728
+ align-items: center;
3729
+ }
3730
+
3731
+ .lp-theme02-tags-v1-title {
3732
+ font-size: 52px;
3733
+ font-weight: 900;
3734
+ line-height: 1.1;
3735
+ letter-spacing: -0.01em;
3736
+ margin: 0;
3737
+ color: var(--lp-ink);
3738
+ }
3739
+
3740
+ .lp-theme02-tags-v1-subtitle {
3741
+ font-size: 22px;
3742
+ font-weight: 600;
3743
+ color: var(--lp-ink2);
3744
+ margin: 0;
3745
+ max-width: 760px;
3746
+ }
3747
+
3748
+ .lp-theme02-tags-v1-card {
3749
+ flex: 1;
3750
+ padding: 36px;
3751
+ background: var(--lp-surface);
3752
+ border: 1px solid var(--lp-border);
3753
+ border-radius: var(--lp-radius-large);
3754
+ box-shadow: var(--lp-shadow);
3755
+ display: flex;
3756
+ align-items: center;
3757
+ justify-content: center;
3758
+ }
3759
+
3760
+ .lp-theme02-tags-v1-cloud {
3761
+ display: flex;
3762
+ flex-wrap: wrap;
3763
+ gap: 14px;
3764
+ justify-content: center;
3765
+ }
3766
+
3767
+ .lp-theme02-tags-v1-tag {
3768
+ padding: 12px 20px;
3769
+ border-radius: 999px;
3770
+ background: var(--lp-overlay);
3771
+ border: 1px solid var(--lp-border);
3772
+ color: var(--lp-ink);
3773
+ font-size: 16px;
3774
+ font-weight: 700;
3775
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
3776
+ cursor: default;
3777
+ }
3778
+
3779
+ .lp-theme02-tags-v1-tag:hover {
3780
+ transform: translateY(-2px);
3781
+ border-color: var(--lp-accent);
3782
+ box-shadow: 0 0 18px var(--lp-glow-accent-subtle);
3783
+ }
3784
+
3785
+ .lp-theme02-tags-v1-tag--positive {
3786
+ border-color: var(--lp-green);
3787
+ color: var(--lp-green);
3788
+ box-shadow: 0 0 12px rgba(74, 222, 128, 0.2);
3789
+ }
3790
+
3791
+ .lp-theme02-tags-v1-tag--negative {
3792
+ border-color: var(--lp-red);
3793
+ color: var(--lp-red);
3794
+ box-shadow: 0 0 12px rgba(255, 107, 107, 0.2);
3795
+ }
3796
+
3797
+ .lp-theme02-tags-v1-tag--accent {
3798
+ border-color: var(--lp-accent);
3799
+ color: var(--lp-accent);
3800
+ box-shadow: 0 0 12px var(--lp-glow-accent-subtle);
3801
+ }
3802
+
3803
+ .lp-theme02-tags-v1-value {
3804
+ margin-left: 8px;
3805
+ padding: 2px 8px;
3806
+ border-radius: 999px;
3807
+ background: var(--lp-accent);
3808
+ color: var(--lp-text-inverse);
3809
+ font-size: 12px;
3810
+ font-weight: 800;
3811
+ }
3812
+
3813
+ /* ---- Filmstrip v1 ---- */
3814
+ .lp-theme02-filmstrip-v1 {
3815
+ display: flex;
3816
+ flex-direction: column;
3817
+ padding: 72px 84px;
3818
+ }
3819
+
3820
+ .lp-theme02-filmstrip-v1-header {
3821
+ display: flex;
3822
+ flex-direction: column;
3823
+ gap: 14px;
3824
+ margin-bottom: 36px;
3825
+ }
3826
+
3827
+ .lp-theme02-filmstrip-v1-title {
3828
+ font-size: 52px;
3829
+ font-weight: 900;
3830
+ line-height: 1.1;
3831
+ letter-spacing: -0.01em;
3832
+ margin: 0;
3833
+ color: var(--lp-ink);
3834
+ }
3835
+
3836
+ .lp-theme02-filmstrip-v1-subtitle {
3837
+ font-size: 22px;
3838
+ font-weight: 600;
3839
+ color: var(--lp-ink2);
3840
+ margin: 0;
3841
+ max-width: 760px;
3842
+ }
3843
+
3844
+ .lp-theme02-filmstrip-v1-track {
3845
+ display: flex;
3846
+ gap: 20px;
3847
+ flex: 1;
3848
+ overflow-x: auto;
3849
+ padding-bottom: 12px;
3850
+ align-items: stretch;
3851
+ }
3852
+
3853
+ .lp-theme02-filmstrip-v1-frame {
3854
+ flex: 0 0 320px;
3855
+ position: relative;
3856
+ border-radius: var(--lp-radius-large);
3857
+ overflow: hidden;
3858
+ border: 1px solid var(--lp-border);
3859
+ box-shadow: var(--lp-shadow);
3860
+ background: var(--lp-surface);
3861
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3862
+ }
3863
+
3864
+ .lp-theme02-filmstrip-v1-frame:hover {
3865
+ border-color: var(--lp-accent);
3866
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3867
+ }
3868
+
3869
+ .lp-theme02-filmstrip-v1-image {
3870
+ width: 100%;
3871
+ height: 100%;
3872
+ object-fit: cover;
3873
+ }
3874
+
3875
+ .lp-theme02-filmstrip-v1-image-placeholder {
3876
+ width: 100%;
3877
+ height: 100%;
3878
+ display: flex;
3879
+ align-items: center;
3880
+ justify-content: center;
3881
+ border: 2px dashed var(--lp-border);
3882
+ border-radius: var(--lp-radius-large);
3883
+ color: var(--lp-ink3);
3884
+ font-size: 14px;
3885
+ background: var(--lp-overlay);
3886
+ }
3887
+
3888
+ .lp-theme02-filmstrip-v1-image-placeholder:hover {
3889
+ border-color: var(--lp-accent);
3890
+ color: var(--lp-accent);
3891
+ }
3892
+
3893
+ .lp-theme02-filmstrip-v1-caption {
3894
+ position: absolute;
3895
+ bottom: 0;
3896
+ left: 0;
3897
+ right: 0;
3898
+ padding: 16px 20px;
3899
+ background: linear-gradient(0deg, rgba(8, 10, 14, 0.92), transparent);
3900
+ font-size: 15px;
3901
+ font-weight: 700;
3902
+ color: var(--lp-ink);
3903
+ }
3904
+
3905
+ /* ---- Stats v1 ---- */
3906
+ .lp-theme02-stats-v1 {
3907
+ display: flex;
3908
+ flex-direction: column;
3909
+ padding: 72px 84px;
3910
+ }
3911
+
3912
+ .lp-theme02-stats-header {
3913
+ display: flex;
3914
+ flex-direction: column;
3915
+ gap: 14px;
3916
+ margin-bottom: 44px;
3917
+ text-align: center;
3918
+ align-items: center;
3919
+ }
3920
+
3921
+ .lp-theme02-stats-title {
3922
+ font-size: 52px;
3923
+ font-weight: 900;
3924
+ line-height: 1.1;
3925
+ letter-spacing: -0.01em;
3926
+ margin: 0;
3927
+ color: var(--lp-ink);
3928
+ }
3929
+
3930
+ .lp-theme02-stats-subtitle {
3931
+ font-size: 22px;
3932
+ font-weight: 600;
3933
+ color: var(--lp-ink2);
3934
+ margin: 0;
3935
+ max-width: 760px;
3936
+ }
3937
+
3938
+ .lp-theme02-stats-grid {
3939
+ display: grid;
3940
+ grid-template-columns: repeat(3, 1fr);
3941
+ gap: 24px;
3942
+ flex: 1;
3943
+ align-content: center;
3944
+ }
3945
+
3946
+ .lp-theme02-stats-card {
3947
+ position: relative;
3948
+ padding: 36px 28px;
3949
+ background: var(--lp-surface);
3950
+ border: 1px solid var(--lp-border);
3951
+ border-radius: var(--lp-radius-large);
3952
+ box-shadow: var(--lp-shadow);
3953
+ display: flex;
3954
+ flex-direction: column;
3955
+ align-items: center;
3956
+ justify-content: center;
3957
+ gap: 10px;
3958
+ overflow: hidden;
3959
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
3960
+ }
3961
+
3962
+ .lp-theme02-stats-card:hover {
3963
+ transform: translateY(-4px);
3964
+ border-color: var(--lp-accent);
3965
+ box-shadow: 0 0 24px var(--lp-glow-accent-subtle);
3966
+ }
3967
+
3968
+ .lp-theme02-stats-card::before {
3969
+ content: '';
3970
+ position: absolute;
3971
+ top: 0;
3972
+ left: 0;
3973
+ right: 0;
3974
+ height: 3px;
3975
+ background: var(--lp-accent);
3976
+ box-shadow: 0 0 16px var(--lp-glow-accent);
3977
+ }
3978
+
3979
+ .lp-theme02-stats-card--cool::before {
3980
+ background: var(--lp-accent-cool);
3981
+ box-shadow: 0 0 16px var(--lp-glow-cool);
3982
+ }
3983
+
3984
+ .lp-theme02-stats-card--warm::before {
3985
+ background: var(--lp-accent-2);
3986
+ box-shadow: 0 0 16px var(--lp-glow-warm);
3987
+ }
3988
+
3989
+ .lp-theme02-stats-value {
3990
+ font-family: var(--lp-font-mono);
3991
+ font-size: 56px;
3992
+ font-weight: 900;
3993
+ line-height: 1;
3994
+ color: var(--lp-accent);
3995
+ text-shadow: 0 0 22px var(--lp-glow-accent);
3996
+ }
3997
+
3998
+ .lp-theme02-stats-unit {
3999
+ font-size: 24px;
4000
+ font-weight: 800;
4001
+ margin-left: 6px;
4002
+ color: var(--lp-ink2);
4003
+ }
4004
+
4005
+ .lp-theme02-stats-label {
4006
+ font-size: 16px;
4007
+ font-weight: 700;
4008
+ color: var(--lp-ink2);
4009
+ text-align: center;
4010
+ }
4011
+
4012
+ /* ---- 霓虹卡片统一扫光增强 ---- */
4013
+ .lp-theme02-bento-card,
4014
+ .lp-theme02-delta-item,
4015
+ .lp-theme02-metric-metric,
4016
+ .lp-theme02-stats-card,
4017
+ .lp-theme02-insight-panel,
4018
+ .lp-theme02-chart-insight {
4019
+ position: relative;
4020
+ overflow: hidden;
4021
+ }
4022
+
4023
+ .lp-theme02-bento-card::after,
4024
+ .lp-theme02-delta-item::after,
4025
+ .lp-theme02-metric-metric::after,
4026
+ .lp-theme02-stats-card::after,
4027
+ .lp-theme02-insight-panel::after,
4028
+ .lp-theme02-chart-insight::after {
4029
+ content: '';
4030
+ position: absolute;
4031
+ inset: 0;
4032
+ background: linear-gradient(
4033
+ 115deg,
4034
+ transparent 35%,
4035
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 48%,
4036
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 50%,
4037
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 52%,
4038
+ transparent 65%
4039
+ );
4040
+ transform: translateX(-120%) rotate(12deg);
4041
+ opacity: 0;
4042
+ transition: opacity 0.3s ease;
4043
+ pointer-events: none;
4044
+ }
4045
+
4046
+ .lp-theme02-bento-card:hover,
4047
+ .lp-theme02-delta-item:hover,
4048
+ .lp-theme02-metric-metric:hover,
4049
+ .lp-theme02-stats-card:hover,
4050
+ .lp-theme02-insight-panel:hover,
4051
+ .lp-theme02-chart-insight:hover {
4052
+ border-color: var(--lp-accent);
4053
+ box-shadow: 0 0 36px var(--lp-glow-accent);
4054
+ }
4055
+
4056
+ .lp-theme02-bento-card:hover::after,
4057
+ .lp-theme02-delta-item:hover::after,
4058
+ .lp-theme02-metric-metric:hover::after,
4059
+ .lp-theme02-stats-card:hover::after,
4060
+ .lp-theme02-insight-panel:hover::after,
4061
+ .lp-theme02-chart-insight:hover::after {
4062
+ opacity: 1;
4063
+ animation: lp-theme02-sweep 1.2s ease-in-out;
4064
+ }
4065
+
4066
+ /* ---- 图表霓虹描边动画 ---- */
4067
+ .lp-theme02-chart-svg path,
4068
+ .lp-theme02-chart-svg line,
4069
+ .lp-theme02-chart-svg rect,
4070
+ .lp-theme02-chart-svg circle,
4071
+ .lp-theme02-chart-svg polyline {
4072
+ animation: lp-theme02-stroke-glow 3s ease-in-out infinite;
4073
+ }
4074
+
4075
+ .lp-theme02-chart-svg text {
4076
+ animation: none;
4077
+ }
4078
+
4079
+ /* ---- 大数字光晕呼吸 ---- */
4080
+ .lp-theme02-metric-value,
4081
+ .lp-theme02-stats-value,
4082
+ .lp-theme02-bento-value,
4083
+ .lp-theme02-metrics-value,
4084
+ .lp-theme02-insight-value {
4085
+ animation: lp-theme02-text-glow 4s ease-in-out infinite;
4086
+ }
4087
+
4088
+ /* ============================================================
4089
+ * 高冲击力版式(cover-v2 / chapter-v2 / quote-v2 / number-showcase-v1)
4090
+ * ============================================================ */
4091
+
4092
+ @keyframes lp-theme02-gradient-shift {
4093
+ 0%, 100% {
4094
+ background-position: 0% 50%;
4095
+ transform: scale(1);
4096
+ }
4097
+ 50% {
4098
+ background-position: 100% 50%;
4099
+ transform: scale(1.06);
4100
+ }
4101
+ }
4102
+
4103
+ @keyframes lp-theme02-ring-rotate {
4104
+ from { transform: rotate(0deg); }
4105
+ to { transform: rotate(360deg); }
4106
+ }
4107
+
4108
+ @keyframes lp-theme02-number-pulse {
4109
+ 0%, 100% {
4110
+ text-shadow:
4111
+ 0 0 40px var(--lp-glow-accent),
4112
+ 0 0 80px var(--lp-glow-accent-strong),
4113
+ 0 0 140px var(--lp-glow-accent-subtle);
4114
+ }
4115
+ 50% {
4116
+ text-shadow:
4117
+ 0 0 70px var(--lp-glow-accent),
4118
+ 0 0 130px var(--lp-glow-accent-strong),
4119
+ 0 0 220px var(--lp-glow-accent-subtle);
4120
+ }
4121
+ }
4122
+
4123
+ /* ---- Cover v2 ---- */
4124
+
4125
+ .lp-theme02-cover-v2 {
4126
+ display: flex;
4127
+ align-items: center;
4128
+ justify-content: center;
4129
+ padding: 84px;
4130
+ overflow: hidden;
4131
+ }
4132
+
4133
+ .lp-theme02-cover-v2-gradient {
4134
+ position: absolute;
4135
+ inset: -10%;
4136
+ background:
4137
+ radial-gradient(circle at 20% 30%, var(--lp-glow-accent) 0%, transparent 45%),
4138
+ radial-gradient(circle at 80% 70%, var(--lp-glow-cool) 0%, transparent 45%),
4139
+ radial-gradient(circle at 50% 50%, var(--lp-glow-warm-subtle) 0%, transparent 55%),
4140
+ linear-gradient(135deg, var(--lp-bg-gradient-start) 0%, var(--lp-bg-gradient-end) 50%, var(--lp-bg-gradient-start) 100%);
4141
+ background-size: 200% 200%;
4142
+ animation: lp-theme02-gradient-shift 18s ease-in-out infinite;
4143
+ pointer-events: none;
4144
+ z-index: 0;
4145
+ }
4146
+
4147
+ .lp-theme02-cover-v2-grid {
4148
+ position: absolute;
4149
+ inset: 0;
4150
+ background-image:
4151
+ linear-gradient(var(--lp-border) 1px, transparent 1px),
4152
+ linear-gradient(90deg, var(--lp-border) 1px, transparent 1px);
4153
+ background-size: 80px 80px;
4154
+ opacity: 0.18;
4155
+ mask-image: radial-gradient(circle at 50% 50%, black 0%, transparent 70%);
4156
+ -webkit-mask-image: radial-gradient(circle at 50% 50%, black 0%, transparent 70%);
4157
+ pointer-events: none;
4158
+ z-index: 1;
4159
+ }
4160
+
4161
+ .lp-theme02-cover-v2-orb-accent {
4162
+ width: 560px;
4163
+ height: 560px;
4164
+ top: -18%;
4165
+ right: -12%;
4166
+ opacity: 0.28;
4167
+ animation-duration: 10s;
4168
+ }
4169
+
4170
+ .lp-theme02-cover-v2-orb-cool {
4171
+ width: 480px;
4172
+ height: 480px;
4173
+ bottom: -20%;
4174
+ left: -10%;
4175
+ opacity: 0.22;
4176
+ animation-duration: 12s;
4177
+ }
4178
+
4179
+ .lp-theme02-cover-v2-image {
4180
+ position: absolute;
4181
+ inset: 0;
4182
+ width: 100%;
4183
+ height: 100%;
4184
+ object-fit: cover;
4185
+ z-index: 0;
4186
+ opacity: 0.45;
4187
+ }
4188
+
4189
+ .lp-theme02-cover-v2-overlay {
4190
+ position: absolute;
4191
+ inset: 0;
4192
+ background:
4193
+ linear-gradient(180deg, rgba(8, 10, 14, 0.55) 0%, rgba(8, 10, 14, 0.82) 60%, rgba(8, 10, 14, 0.92) 100%),
4194
+ radial-gradient(circle at 50% 50%, transparent 0%, rgba(8, 10, 14, 0.55) 100%);
4195
+ z-index: 1;
4196
+ pointer-events: none;
4197
+ }
4198
+
4199
+ .lp-theme02-cover-v2-content {
4200
+ position: relative;
4201
+ z-index: 2;
4202
+ width: 100%;
4203
+ max-width: 1080px;
4204
+ display: flex;
4205
+ flex-direction: column;
4206
+ align-items: center;
4207
+ text-align: center;
4208
+ gap: 28px;
4209
+ }
4210
+
4211
+ .lp-theme02-cover-v2-title {
4212
+ font-family: var(--lp-font);
4213
+ font-size: 96px;
4214
+ font-weight: 900;
4215
+ line-height: 1.0;
4216
+ letter-spacing: -0.03em;
4217
+ margin: 0;
4218
+ background: linear-gradient(135deg, var(--lp-ink) 0%, var(--lp-accent) 55%, var(--lp-accent-cool) 100%);
4219
+ -webkit-background-clip: text;
4220
+ background-clip: text;
4221
+ -webkit-text-fill-color: transparent;
4222
+ text-shadow: 0 0 60px var(--lp-glow-accent-subtle);
4223
+ animation: lp-theme02-text-glow 4s ease-in-out infinite;
4224
+ }
4225
+
4226
+ .lp-theme02-cover-v2-subtitle {
4227
+ font-size: 30px;
4228
+ font-weight: 600;
4229
+ line-height: 1.45;
4230
+ color: var(--lp-ink2);
4231
+ margin: 0;
4232
+ max-width: 760px;
4233
+ }
4234
+
4235
+ .lp-theme02-cover-v2-date {
4236
+ font-family: var(--lp-font-mono);
4237
+ font-size: 15px;
4238
+ font-weight: 700;
4239
+ letter-spacing: 0.08em;
4240
+ text-transform: uppercase;
4241
+ color: var(--lp-ink3);
4242
+ padding: 12px 22px;
4243
+ background: rgba(255, 255, 255, 0.05);
4244
+ border: 1px solid var(--lp-border);
4245
+ border-radius: var(--lp-radius-small);
4246
+ }
4247
+
4248
+ /* ---- Chapter v2 ---- */
4249
+
4250
+ .lp-theme02-chapter-v2 {
4251
+ display: flex;
4252
+ align-items: center;
4253
+ justify-content: center;
4254
+ padding: 84px;
4255
+ overflow: hidden;
4256
+ }
4257
+
4258
+ .lp-theme02-chapter-v2-rings {
4259
+ position: absolute;
4260
+ inset: 0;
4261
+ display: flex;
4262
+ align-items: center;
4263
+ justify-content: center;
4264
+ pointer-events: none;
4265
+ z-index: 0;
4266
+ }
4267
+
4268
+ .lp-theme02-chapter-v2-ring {
4269
+ position: absolute;
4270
+ width: 560px;
4271
+ height: 560px;
4272
+ border-radius: 50%;
4273
+ border: 1px solid var(--lp-border);
4274
+ box-shadow:
4275
+ inset 0 0 60px var(--lp-glow-accent-subtle),
4276
+ 0 0 80px var(--lp-glow-accent-subtle);
4277
+ animation: lp-theme02-ring-rotate 24s linear infinite;
4278
+ }
4279
+
4280
+ .lp-theme02-chapter-v2-ring::before {
4281
+ content: '';
4282
+ position: absolute;
4283
+ inset: 24px;
4284
+ border-radius: 50%;
4285
+ border: 1px dashed color-mix(in srgb, var(--lp-accent) 35%, transparent);
4286
+ opacity: 0.6;
4287
+ }
4288
+
4289
+ .lp-theme02-chapter-v2-ring--inner {
4290
+ width: 420px;
4291
+ height: 420px;
4292
+ animation-direction: reverse;
4293
+ animation-duration: 18s;
4294
+ border-color: color-mix(in srgb, var(--lp-accent-cool) 40%, transparent);
4295
+ box-shadow:
4296
+ inset 0 0 50px var(--lp-glow-cool-subtle),
4297
+ 0 0 60px var(--lp-glow-cool-subtle);
4298
+ }
4299
+
4300
+ .lp-theme02-chapter-v2-content {
4301
+ position: relative;
4302
+ z-index: 2;
4303
+ width: 100%;
4304
+ max-width: 960px;
4305
+ display: flex;
4306
+ flex-direction: column;
4307
+ align-items: center;
4308
+ text-align: center;
4309
+ gap: 28px;
4310
+ }
4311
+
4312
+ .lp-theme02-chapter-v2-number {
4313
+ font-family: var(--lp-font-mono);
4314
+ font-size: 180px;
4315
+ font-weight: 900;
4316
+ line-height: 1;
4317
+ color: transparent;
4318
+ -webkit-text-stroke: 3px var(--lp-accent);
4319
+ text-shadow:
4320
+ 0 0 40px var(--lp-glow-accent),
4321
+ 0 0 80px var(--lp-glow-accent-strong);
4322
+ animation: lp-theme02-text-glow 3.5s ease-in-out infinite;
4323
+ }
4324
+
4325
+ .lp-theme02-chapter-v2-title {
4326
+ font-family: var(--lp-font);
4327
+ font-size: 68px;
4328
+ font-weight: 900;
4329
+ line-height: 1.08;
4330
+ letter-spacing: -0.02em;
4331
+ margin: 0;
4332
+ color: var(--lp-ink);
4333
+ }
4334
+
4335
+ .lp-theme02-chapter-v2-subtitle {
4336
+ font-size: 24px;
4337
+ font-weight: 600;
4338
+ line-height: 1.5;
4339
+ color: var(--lp-ink2);
4340
+ margin: 0;
4341
+ max-width: 720px;
4342
+ }
4343
+
4344
+ /* ---- Quote v2 ---- */
4345
+
4346
+ .lp-theme02-quote-v2 {
4347
+ display: flex;
4348
+ align-items: center;
4349
+ justify-content: center;
4350
+ padding: 84px;
4351
+ overflow: hidden;
4352
+ }
4353
+
4354
+ .lp-theme02-quote-v2-glow {
4355
+ position: absolute;
4356
+ width: 520px;
4357
+ height: 520px;
4358
+ border-radius: 50%;
4359
+ background: radial-gradient(circle at center, var(--lp-glow-accent) 0%, transparent 60%);
4360
+ opacity: 0.22;
4361
+ filter: blur(40px);
4362
+ pointer-events: none;
4363
+ z-index: 0;
4364
+ animation: lp-theme02-pulse 8s ease-in-out infinite;
4365
+ }
4366
+
4367
+ .lp-theme02-quote-v2-card {
4368
+ position: relative;
4369
+ z-index: 2;
4370
+ width: 100%;
4371
+ max-width: 1000px;
4372
+ padding: 64px 72px;
4373
+ background: var(--lp-surface);
4374
+ border: 1px solid var(--lp-border);
4375
+ border-radius: var(--lp-radius-large);
4376
+ box-shadow: var(--lp-shadow), 0 0 60px var(--lp-glow-accent-subtle);
4377
+ display: flex;
4378
+ flex-direction: column;
4379
+ align-items: center;
4380
+ text-align: center;
4381
+ gap: 36px;
4382
+ overflow: hidden;
4383
+ }
4384
+
4385
+ .lp-theme02-quote-v2-card::before {
4386
+ content: '';
4387
+ position: absolute;
4388
+ top: 0;
4389
+ left: 0;
4390
+ right: 0;
4391
+ height: 3px;
4392
+ background: linear-gradient(90deg, transparent, var(--lp-accent), var(--lp-accent-cool), transparent);
4393
+ box-shadow: 0 0 24px var(--lp-glow-accent);
4394
+ }
4395
+
4396
+ .lp-theme02-quote-v2-card::after {
4397
+ content: '';
4398
+ position: absolute;
4399
+ inset: 0;
4400
+ background: linear-gradient(
4401
+ 115deg,
4402
+ transparent 35%,
4403
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 48%,
4404
+ color-mix(in srgb, var(--lp-accent) 18%, transparent) 50%,
4405
+ color-mix(in srgb, var(--lp-accent) 10%, transparent) 52%,
4406
+ transparent 65%
4407
+ );
4408
+ transform: translateX(-120%) rotate(12deg);
4409
+ opacity: 0;
4410
+ transition: opacity 0.3s ease;
4411
+ pointer-events: none;
4412
+ }
4413
+
4414
+ .lp-theme02-quote-v2-card:hover::after {
4415
+ opacity: 1;
4416
+ animation: lp-theme02-sweep 1.2s ease-in-out;
4417
+ }
4418
+
4419
+ .lp-theme02-quote-v2-mark {
4420
+ font-family: var(--lp-font);
4421
+ font-size: 120px;
4422
+ font-weight: 900;
4423
+ line-height: 1;
4424
+ color: var(--lp-accent);
4425
+ text-shadow: 0 0 40px var(--lp-glow-accent);
4426
+ margin-bottom: -24px;
4427
+ animation: lp-theme02-text-glow 3s ease-in-out infinite;
4428
+ }
4429
+
4430
+ .lp-theme02-quote-v2-text {
4431
+ font-size: 38px;
4432
+ font-weight: 700;
4433
+ line-height: 1.45;
4434
+ color: var(--lp-ink);
4435
+ margin: 0;
4436
+ }
4437
+
4438
+ .lp-theme02-quote-v2-text::before {
4439
+ content: '“';
4440
+ color: var(--lp-accent);
4441
+ margin-right: 4px;
4442
+ text-shadow: 0 0 18px var(--lp-glow-accent);
4443
+ }
4444
+
4445
+ .lp-theme02-quote-v2-text::after {
4446
+ content: '”';
4447
+ color: var(--lp-accent);
4448
+ margin-left: 4px;
4449
+ text-shadow: 0 0 18px var(--lp-glow-accent);
4450
+ }
4451
+
4452
+ .lp-theme02-quote-v2-meta {
4453
+ display: flex;
4454
+ align-items: center;
4455
+ gap: 16px;
4456
+ flex-wrap: wrap;
4457
+ justify-content: center;
4458
+ }
4459
+
4460
+ .lp-theme02-quote-v2-author {
4461
+ font-size: 20px;
4462
+ font-weight: 800;
4463
+ color: var(--lp-ink);
4464
+ }
4465
+
4466
+ .lp-theme02-quote-v2-role,
4467
+ .lp-theme02-quote-v2-source {
4468
+ font-family: var(--lp-font-mono);
4469
+ font-size: 14px;
4470
+ font-weight: 700;
4471
+ letter-spacing: 0.04em;
4472
+ color: var(--lp-ink3);
4473
+ }
4474
+
4475
+ .lp-theme02-quote-v2-role::before {
4476
+ content: '/';
4477
+ margin-right: 10px;
4478
+ color: var(--lp-border);
4479
+ }
4480
+
4481
+ .lp-theme02-quote-v2-source::before {
4482
+ content: '·';
4483
+ margin-right: 10px;
4484
+ color: var(--lp-border);
4485
+ }
4486
+
4487
+ /* ---- Number Showcase v1 ---- */
4488
+
4489
+ .lp-theme02-number-showcase-v1 {
4490
+ display: flex;
4491
+ align-items: center;
4492
+ justify-content: center;
4493
+ padding: 84px;
4494
+ overflow: hidden;
4495
+ }
4496
+
4497
+ .lp-theme02-number-showcase-v1-glow {
4498
+ position: absolute;
4499
+ width: 600px;
4500
+ height: 600px;
4501
+ border-radius: 50%;
4502
+ background: radial-gradient(circle at center, var(--lp-glow-accent) 0%, transparent 55%);
4503
+ opacity: 0.22;
4504
+ filter: blur(60px);
4505
+ pointer-events: none;
4506
+ z-index: 0;
4507
+ animation: lp-theme02-pulse 7s ease-in-out infinite;
4508
+ }
4509
+
4510
+ .lp-theme02-number-showcase-v1-rings {
4511
+ position: absolute;
4512
+ inset: 0;
4513
+ display: flex;
4514
+ align-items: center;
4515
+ justify-content: center;
4516
+ pointer-events: none;
4517
+ z-index: 0;
4518
+ }
4519
+
4520
+ .lp-theme02-number-showcase-v1-ring {
4521
+ position: absolute;
4522
+ width: 520px;
4523
+ height: 520px;
4524
+ border-radius: 50%;
4525
+ border: 1px solid var(--lp-border);
4526
+ box-shadow:
4527
+ inset 0 0 80px var(--lp-glow-accent-subtle),
4528
+ 0 0 80px var(--lp-glow-accent-subtle);
4529
+ animation: lp-theme02-ring-rotate 28s linear infinite;
4530
+ }
4531
+
4532
+ .lp-theme02-number-showcase-v1-ring--inner {
4533
+ width: 380px;
4534
+ height: 380px;
4535
+ animation-direction: reverse;
4536
+ animation-duration: 20s;
4537
+ border-color: color-mix(in srgb, var(--lp-accent-cool) 35%, transparent);
4538
+ box-shadow:
4539
+ inset 0 0 60px var(--lp-glow-cool-subtle),
4540
+ 0 0 60px var(--lp-glow-cool-subtle);
4541
+ }
4542
+
4543
+ .lp-theme02-number-showcase-v1-content {
4544
+ position: relative;
4545
+ z-index: 2;
4546
+ width: 100%;
4547
+ max-width: 1000px;
4548
+ display: flex;
4549
+ flex-direction: column;
4550
+ align-items: center;
4551
+ text-align: center;
4552
+ gap: 24px;
4553
+ }
4554
+
4555
+ .lp-theme02-number-showcase-v1-title {
4556
+ font-size: 44px;
4557
+ font-weight: 900;
4558
+ line-height: 1.1;
4559
+ letter-spacing: -0.01em;
4560
+ margin: 0;
4561
+ color: var(--lp-ink);
4562
+ }
4563
+
4564
+ .lp-theme02-number-showcase-v1-value-wrap {
4565
+ display: flex;
4566
+ align-items: baseline;
4567
+ gap: 18px;
4568
+ }
4569
+
4570
+ .lp-theme02-number-showcase-v1-value {
4571
+ font-family: var(--lp-font-mono);
4572
+ font-size: 180px;
4573
+ font-weight: 900;
4574
+ line-height: 1;
4575
+ letter-spacing: -0.04em;
4576
+ color: var(--lp-ink);
4577
+ background: linear-gradient(135deg, var(--lp-ink) 0%, var(--lp-accent) 60%, var(--lp-accent-cool) 100%);
4578
+ -webkit-background-clip: text;
4579
+ background-clip: text;
4580
+ -webkit-text-fill-color: transparent;
4581
+ animation: lp-theme02-number-pulse 4s ease-in-out infinite;
4582
+ }
4583
+
4584
+ .lp-theme02-number-showcase-v1-unit {
4585
+ font-family: var(--lp-font-mono);
4586
+ font-size: 36px;
4587
+ font-weight: 800;
4588
+ color: var(--lp-ink2);
4589
+ }
4590
+
4591
+ .lp-theme02-number-showcase-v1-description {
4592
+ font-size: 24px;
4593
+ font-weight: 600;
4594
+ line-height: 1.5;
4595
+ color: var(--lp-ink2);
4596
+ margin: 0;
4597
+ max-width: 720px;
4598
+ }
4599
+
4600
+ .lp-theme02-number-showcase-v1-footnote {
4601
+ font-family: var(--lp-font-mono);
4602
+ font-size: 13px;
4603
+ font-weight: 700;
4604
+ letter-spacing: 0.04em;
4605
+ color: var(--lp-ink3);
4606
+ padding: 10px 18px;
4607
+ background: rgba(255, 255, 255, 0.05);
4608
+ border: 1px solid var(--lp-border);
4609
+ border-radius: var(--lp-radius-small);
4610
+ }
4611
+
4612
+ @media (prefers-reduced-motion: reduce) {
4613
+ .lp-theme02-cover-v2-gradient,
4614
+ .lp-theme02-chapter-v2-ring,
4615
+ .lp-theme02-quote-v2-glow,
4616
+ .lp-theme02-number-showcase-v1-glow,
4617
+ .lp-theme02-number-showcase-v1-ring,
4618
+ .lp-theme02-number-showcase-v1-value,
4619
+ .lp-theme02-cover-v2-title,
4620
+ .lp-theme02-chapter-v2-number,
4621
+ .lp-theme02-quote-v2-mark {
4622
+ animation: none;
4623
+ }
4624
+ }