@applemusic-like-lyrics/core 0.2.0-alpha.4 → 0.2.0-alpha.6

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 (78) hide show
  1. package/README.md +23 -21
  2. package/dist/amll-core.css +1 -0
  3. package/dist/amll-core.js +2272 -2193
  4. package/dist/amll-core.js.map +1 -1
  5. package/dist/bg-render/base.d.ts +1 -0
  6. package/dist/bg-render/base.d.ts.map +1 -0
  7. package/dist/bg-render/img.d.ts +1 -0
  8. package/dist/bg-render/img.d.ts.map +1 -0
  9. package/dist/bg-render/index.d.ts +1 -0
  10. package/dist/bg-render/index.d.ts.map +1 -0
  11. package/dist/bg-render/mesh-renderer/cp-generate.d.ts +7 -0
  12. package/dist/bg-render/mesh-renderer/cp-generate.d.ts.map +1 -0
  13. package/dist/bg-render/mesh-renderer/cp-presets.d.ts +10 -4
  14. package/dist/bg-render/mesh-renderer/cp-presets.d.ts.map +1 -0
  15. package/dist/bg-render/mesh-renderer/index.d.ts +12 -1
  16. package/dist/bg-render/mesh-renderer/index.d.ts.map +1 -0
  17. package/dist/bg-render/pixi-renderer.d.ts +2 -1
  18. package/dist/bg-render/pixi-renderer.d.ts.map +1 -0
  19. package/dist/canvas-test.d.ts +1 -0
  20. package/dist/canvas-test.d.ts.map +1 -0
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/interfaces.d.ts +3 -0
  24. package/dist/interfaces.d.ts.map +1 -0
  25. package/dist/lyric-player/base.d.ts +58 -5
  26. package/dist/lyric-player/base.d.ts.map +1 -0
  27. package/dist/lyric-player/bottom-line.d.ts +2 -1
  28. package/dist/lyric-player/bottom-line.d.ts.map +1 -0
  29. package/dist/lyric-player/canvas/index.d.ts +14 -0
  30. package/dist/lyric-player/canvas/index.d.ts.map +1 -0
  31. package/dist/lyric-player/canvas/lyric-line.d.ts +3 -0
  32. package/dist/lyric-player/canvas/lyric-line.d.ts.map +1 -0
  33. package/dist/lyric-player/canvas/text-layout.d.ts +1 -0
  34. package/dist/lyric-player/canvas/text-layout.d.ts.map +1 -0
  35. package/dist/lyric-player/dom/index.d.ts +9 -4
  36. package/dist/lyric-player/dom/index.d.ts.map +1 -0
  37. package/dist/lyric-player/dom/interlude-dots.d.ts +1 -0
  38. package/dist/lyric-player/dom/interlude-dots.d.ts.map +1 -0
  39. package/dist/lyric-player/dom/lyric-line.d.ts +13 -12
  40. package/dist/lyric-player/dom/lyric-line.d.ts.map +1 -0
  41. package/dist/lyric-player/dom-slim/index.d.ts +7 -1
  42. package/dist/lyric-player/dom-slim/index.d.ts.map +1 -0
  43. package/dist/lyric-player/dom-slim/interlude-dots.d.ts +1 -0
  44. package/dist/lyric-player/dom-slim/interlude-dots.d.ts.map +1 -0
  45. package/dist/lyric-player/dom-slim/lyric-line.d.ts +1 -1
  46. package/dist/lyric-player/dom-slim/lyric-line.d.ts.map +1 -0
  47. package/dist/lyric-player/index.d.ts +3 -1
  48. package/dist/lyric-player/index.d.ts.map +1 -0
  49. package/dist/mg-test.d.ts +1 -0
  50. package/dist/mg-test.d.ts.map +1 -0
  51. package/dist/utils/debounce.d.ts +1 -0
  52. package/dist/utils/debounce.d.ts.map +1 -0
  53. package/dist/utils/derivative.d.ts +1 -0
  54. package/dist/utils/derivative.d.ts.map +1 -0
  55. package/dist/utils/eq-set.d.ts +1 -0
  56. package/dist/utils/eq-set.d.ts.map +1 -0
  57. package/dist/utils/flagsets.d.ts +18 -0
  58. package/dist/utils/flagsets.d.ts.map +1 -0
  59. package/dist/utils/is-cjk.d.ts +1 -0
  60. package/dist/utils/is-cjk.d.ts.map +1 -0
  61. package/dist/utils/linear.d.ts +1 -0
  62. package/dist/utils/linear.d.ts.map +1 -0
  63. package/dist/utils/lyric-split-words.d.ts +1 -0
  64. package/dist/utils/lyric-split-words.d.ts.map +1 -0
  65. package/dist/utils/matrix.d.ts +1 -0
  66. package/dist/utils/matrix.d.ts.map +1 -0
  67. package/dist/utils/mutex.d.ts +1 -0
  68. package/dist/utils/mutex.d.ts.map +1 -0
  69. package/dist/utils/resource.d.ts +1 -0
  70. package/dist/utils/resource.d.ts.map +1 -0
  71. package/dist/utils/schedule.d.ts +1 -0
  72. package/dist/utils/schedule.d.ts.map +1 -0
  73. package/dist/utils/spring.d.ts +1 -0
  74. package/dist/utils/spring.d.ts.map +1 -0
  75. package/dist/utils/wa-spring.d.ts +1 -0
  76. package/dist/utils/wa-spring.d.ts.map +1 -0
  77. package/package.json +19 -14
  78. package/dist/style.css +0 -1
@@ -0,0 +1,18 @@
1
+ export declare class FlagSets {
2
+ private flags;
3
+ private _size;
4
+ get size(): number;
5
+ [Symbol.iterator](): {
6
+ next: () => {
7
+ value: number;
8
+ done: boolean;
9
+ } | {
10
+ value: undefined;
11
+ done: boolean;
12
+ };
13
+ };
14
+ add(flag: number): void;
15
+ delete(flag: number): void;
16
+ has(flag: number): boolean;
17
+ }
18
+ //# sourceMappingURL=flagsets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flagsets.d.ts","sourceRoot":"","sources":["../../src/utils/flagsets.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ;IACpB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,IAAI,WAEP;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;;;;;;;;;IAuBjB,GAAG,CAAC,IAAI,EAAE,MAAM;IAUhB,MAAM,CAAC,IAAI,EAAE,MAAM;IAUnB,GAAG,CAAC,IAAI,EAAE,MAAM;CAKhB"}
@@ -1 +1,2 @@
1
1
  export declare const isCJK: (char: string) => boolean;
2
+ //# sourceMappingURL=is-cjk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-cjk.d.ts","sourceRoot":"","sources":["../../src/utils/is-cjk.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,YAEjC,CAAC"}
@@ -19,3 +19,4 @@ export declare class Linear {
19
19
  setTargetPosition(targetPosition: number, delay?: number): void;
20
20
  getCurrentPosition(): number;
21
21
  }
22
+ //# sourceMappingURL=linear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/utils/linear.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,MAAM;IAClB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAIN;IACb,OAAO,CAAC,aAAa,CAKR;gBACD,eAAe,SAAI;IAK/B,OAAO,CAAC,WAAW;IASnB,OAAO;IAOP,WAAW,CAAC,cAAc,EAAE,MAAM;IAKlC,MAAM,CAAC,KAAK,SAAI;IAuBhB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,SAAI;IAgBrD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAAI;IAanD,kBAAkB;CAGlB"}
@@ -9,3 +9,4 @@ import { LyricWord } from '../interfaces.ts';
9
9
  * @returns 重新分组后的单词数组
10
10
  */
11
11
  export declare function chunkAndSplitLyricWords(words: LyricWord[]): (LyricWord | LyricWord[])[];
12
+ //# sourceMappingURL=lyric-split-words.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lyric-split-words.d.ts","sourceRoot":"","sources":["../../src/utils/lyric-split-words.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,SAAS,EAAE,GAChB,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,CA0F7B"}
@@ -23,3 +23,4 @@ export declare function scaleMatrix4(m: Matrix4, scale?: number, origin?: {
23
23
  }): Matrix4;
24
24
  export declare function translateMatrix4(m: Matrix4, x?: number, y?: number, z?: number): Matrix4;
25
25
  export declare function matrix4ToCSS(m: Matrix4, fractionDigits?: number): string;
26
+ //# sourceMappingURL=matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/utils/matrix.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,OAAO,GAAG;IACrB,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAC9B,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAC9B,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAC9B,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;CAC9B,CAAC;AAEF,wBAAgB,aAAa,IAAI,OAAO,CAQvC;AAED,wBAAgB,YAAY,CAC3B,CAAC,EAAE,OAAO,EACV,KAAK,SAAI,EACT,MAAM;;;CAAiB,GACrB,OAAO,CAST;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,GAAG,OAAO,CAQzE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,SAAI,GAAG,MAAM,CAGnE"}
@@ -1,2 +1,3 @@
1
1
  export declare function mutexifyFunction<F extends (...args: Args) => Promise<Result>, Args extends any[], Result>(func: F): F;
2
2
  export default mutexifyFunction;
3
+ //# sourceMappingURL=mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAC/B,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EAC5C,IAAI,SAAS,GAAG,EAAE,EAClB,MAAM,EACL,IAAI,EAAE,CAAC,GAAG,CAAC,CA+BZ;AAED,eAAe,gBAAgB,CAAC"}
@@ -2,3 +2,4 @@ export declare function loadImage(imageUrl: string): Promise<HTMLImageElement>;
2
2
  export declare function loadVideo(videoUrl: string): Promise<HTMLVideoElement>;
3
3
  export declare function loadResourceFromUrl(url: string, isVideo?: boolean): Promise<HTMLImageElement | HTMLVideoElement>;
4
4
  export declare function loadResourceFromElement(element: HTMLImageElement | HTMLVideoElement): Promise<HTMLImageElement | HTMLVideoElement>;
5
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/utils/resource.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CASrE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2CrE;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,UAAQ,GACb,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAE9C;AAED,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,GAC1C,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAa9C"}
@@ -4,3 +4,4 @@
4
4
  */
5
5
  export declare function measure<T>(callback: () => T): Promise<T>;
6
6
  export declare function mutate(callback: () => void): Promise<unknown>;
7
+ //# sourceMappingURL=schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/utils/schedule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyCH,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAaxD;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,oBAa1C"}
@@ -24,3 +24,4 @@ export declare class Spring {
24
24
  setTargetPosition(targetPosition: number, delay?: number): void;
25
25
  getCurrentPosition(): number;
26
26
  }
27
+ //# sourceMappingURL=spring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spring.d.ts","sourceRoot":"","sources":["../../src/utils/spring.ts"],"names":[],"mappings":"AAEA,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACd;AAID,qBAAa,MAAM;IAClB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,WAAW,CAIN;IACb,OAAO,CAAC,aAAa,CAKR;gBACD,eAAe,SAAI;IAO/B,OAAO,CAAC,WAAW;IAanB,OAAO;IASP,WAAW,CAAC,cAAc,EAAE,MAAM;IAOlC,MAAM,CAAC,KAAK,SAAI;IAqBhB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,SAAI;IAgBrD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAAI;IAanD,kBAAkB;CAGlB"}
@@ -31,3 +31,4 @@ export declare class WebAnimationSpring extends EventTarget implements Disposabl
31
31
  dispose(): void;
32
32
  }
33
33
  export {};
34
+ //# sourceMappingURL=wa-spring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wa-spring.d.ts","sourceRoot":"","sources":["../../src/utils/wa-spring.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CAClB;AAID,KAAK,YAAY,GAAG;KAClB,KAAK,IAAI,MAAM,mBAAmB,GAAG,KAAK,SAAS,MAAM,GACvD,mBAAmB,CAAC,KAAK,CAAC,SAAS,MAAM,GACxC,KAAK,GACL,KAAK,GACN,KAAK;CACR,CAAC,MAAM,mBAAmB,CAAC,CAAC;AAE7B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,UAAU;IASvE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IAXxB,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,IAAI,CAAmC;gBAGtC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACzC,eAAe,SAAI;IAkB5B,UAAU;IAwBV,iBAAiB,CAAC,cAAc,EAAE,MAAM;IAKxC,kBAAkB;IAQlB,kBAAkB;IAOlB,OAAO,CAAC,cAAc;IAgCtB,IAAI;IAMJ,OAAO;CAGP"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applemusic-like-lyrics/core",
3
- "version": "0.2.0-alpha.4",
3
+ "version": "0.2.0-alpha.6",
4
4
  "description": "AMLL 的纯 JS 核心组件框架,包括歌词显示组件和背景组件等其它可以复用的组件",
5
5
  "repository": {
6
6
  "url": "https://github.com/Steve-xmh/applemusic-like-lyrics.git",
@@ -8,6 +8,11 @@
8
8
  "type": "git"
9
9
  },
10
10
  "license": "GPL-3.0",
11
+ "nx": {
12
+ "tags": [
13
+ "library"
14
+ ]
15
+ },
11
16
  "files": [
12
17
  "dist/**/*.js",
13
18
  "dist/**/*.ts",
@@ -26,26 +31,26 @@
26
31
  "require": "./dist/amll-core.cjs"
27
32
  },
28
33
  "./style.css": {
29
- "import": "./dist/style.css",
30
- "require": "./dist/style.css"
34
+ "import": "./dist/amll-core.css",
35
+ "require": "./dist/amll-core.css"
31
36
  }
32
37
  },
33
38
  "devDependencies": {
34
39
  "@applemusic-like-lyrics/lyric": "^0.2.4",
35
- "@biomejs/biome": "^1.9.4",
40
+ "@biomejs/biome": "^2.2.6",
36
41
  "@types/deep-freeze": "^0.1.5",
37
42
  "@types/stats.js": "^0.17.3",
38
43
  "@types/ungap__structured-clone": "^1.2.0",
39
- "lil-gui": "^0.19.2",
44
+ "lil-gui": "^0.20.0",
40
45
  "stats.js": "^0.17.0",
41
- "typedoc": "^0.26.10",
42
- "typedoc-plugin-markdown": "^4.2.9",
43
- "typescript": "^5.6.3",
44
- "vite": "^5.4.10",
45
- "vite-plugin-dts": "^4.3.0",
46
- "vite-plugin-glsl": "^1.3.0",
47
- "vite-plugin-top-level-await": "^1.4.4",
48
- "vite-plugin-wasm": "^3.3.0",
46
+ "typedoc": "^0.28.13",
47
+ "typedoc-plugin-markdown": "^4.9.0",
48
+ "typescript": "^5.9.3",
49
+ "vite": "^7.1.11",
50
+ "vite-plugin-dts": "^4.5.4",
51
+ "vite-plugin-glsl": "^1.5.1",
52
+ "vite-plugin-top-level-await": "^1.6.0",
53
+ "vite-plugin-wasm": "^3.5.0",
49
54
  "@applemusic-like-lyrics/ttml": "^0.1.1"
50
55
  },
51
56
  "peerDependencies": {
@@ -58,7 +63,7 @@
58
63
  "@pixi/sprite": "*"
59
64
  },
60
65
  "dependencies": {
61
- "@ungap/structured-clone": "^1.2.0",
66
+ "@ungap/structured-clone": "^1.3.0",
62
67
  "bezier-easing": "^2.1.0",
63
68
  "deep-freeze": "^0.0.1",
64
69
  "gl-matrix": "4.0.0-beta.2"
package/dist/style.css DELETED
@@ -1 +0,0 @@
1
- .amll-lyric-player{color:var(--amll-lp-color,white);contain:strict;mix-blend-mode:plus-lighter;font-size:var(--amll-lp-font-size,max(max(4.7vh,3.2vw),12px));width:100%;max-width:100%;height:100%;overflow:hidden}.amll-lyric-player.dom{--amll-lp-line-width-aspect:.8;--amll-lp-line-padding-x:1em;--amll-lp-bg-line-scale:.7;-webkit-user-select:none;user-select:none;box-sizing:content-box;z-index:1;line-height:1.2em}.amll-lyric-player.dom-slim{--amll-lp-line-width-aspect:.8;--amll-lp-line-padding-x:1em;--amll-lp-bg-line-scale:.7;-webkit-user-select:none;user-select:none;box-sizing:content-box;z-index:1;min-width:0;min-height:0;line-height:1.2em;overflow:hidden auto}.amll-lyric-player.dom-slim::-webkit-scrollbar{display:none}.amll-lyric-player.dom-slim:hover::-webkit-scrollbar{display:block}@media screen and (max-width:768px){.amll-lyric-player{--amll-lp-line-width-aspect:1;--amll-lp-line-padding-x:0}}._lyricLine_lennj_6{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:0;width:var(--amll-lp-width,100%);min-width:var(--amll-lp-width,100%);max-width:var(--amll-lp-width,100%);contain:content;will-change:transform;box-sizing:border-box;border-radius:.25em;width:100%;height:-moz-fit-content;height:fit-content;padding:2vh 1em;transition:opacity .25s,filter .2s,background-color .25s,box-shadow .25s;position:absolute}._lyricLine_lennj_6._dirty_lennj_26{opacity:0;visibility:hidden}._lyricLine_lennj_6:has(>*):hover{background-color:var(--amll-lp-hover-bg-color,#fff1)}._lyricLine_lennj_6:has(>*):active{background-color:var(--amll-lp-hover-bg-color,#ffffff05)}._lyricBgLine_lennj_42{opacity:0;font-size:max(calc(1em*var(--amll-lp-bg-line-scale,.7)),10px);padding:1vh calc(var(--amll-lp-line-padding-x,1em)/var(--amll-lp-bg-line-scale,.7));transition:opacity .25s,scale .5s,filter .2s,background-color .25s,box-shadow .25s}._lyricBgLine_lennj_42._active_lennj_51{opacity:.4;transition:opacity .5s .25s,scale 1.5s cubic-bezier(0,1,0,1) .25s,filter .2s,background-color .25s,box-shadow .25s}.amll-lyric-player:hover ._lyricLine_lennj_6{filter:unset!important}.amll-lyric-player._hasDuetLine_lennj_63 ._lyricLine_lennj_6:not(._lyricDuetLine_lennj_64){padding-right:15%}.amll-lyric-player._hasDuetLine_lennj_63 ._lyricDuetLine_lennj_64{padding-left:15%}._lyricDuetLine_lennj_64{text-align:right;transform-origin:100%}._lyricMainLine_lennj_78{margin:-1em;padding:1em;transition:opacity .3s .1s}._lyricMainLine_lennj_78 span{display:inline-block}._lyricMainLine_lennj_78>span{white-space:pre-wrap;will-change:transform;margin:-1em;padding:1em;display:inline-block}._lyricMainLine_lennj_78>span._emphasize_lennj_88{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78>span._emphasize_lennj_88>span{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78>span span._emphasize_lennj_88{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78>span span._emphasize_lennj_88>span{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78 span._emphasizeWrapper_lennj_88{white-space:pre-wrap;will-change:transform;margin:-1em;padding:1em;display:inline-block}._lyricMainLine_lennj_78 span._emphasizeWrapper_lennj_88._emphasize_lennj_88{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78 span._emphasizeWrapper_lennj_88._emphasize_lennj_88>span{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78 span._emphasizeWrapper_lennj_88 span._emphasize_lennj_88{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricMainLine_lennj_78 span._emphasizeWrapper_lennj_88 span._emphasize_lennj_88>span{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:-1em;padding:1em}._lyricSubLine_lennj_111{opacity:.3;font-size:max(.5em,10px);line-height:1.5em;transition:opacity .2s .25s}._disableSpring_lennj_118>*{transition:filter .25s,transform .5s,background-color .25s,box-shadow .25s}._interludeDots_lennj_123{transform-origin:50%;opacity:0;gap:.25em;width:-moz-fit-content;width:fit-content;height:max(.5em,min(1vh,3em));padding:2.5% .75em;transition:opacity .25s;display:flex;position:absolute;left:0}._interludeDots_lennj_123._enabled_lennj_135{opacity:1}._interludeDots_lennj_123>*{aspect-ratio:1;background-color:var(--amll-lp-color,white);border-radius:50%;width:max(.5em,min(1vh,3em));height:max(.5em,min(1vh,3em));margin-right:4px;display:inline-block}._interludeDots_lennj_123._duet_lennj_149{transform-origin:50%;right:0}@supports (mix-blend-mode:plus-lighter){._lyricSubLine_lennj_111{opacity:.3}}._tmpDisableTransition_lennj_161{transition:none!important}._lyricLine_1ygrf_6{width:var(--amll-lp-width,100%);min-width:var(--amll-lp-width,100%);max-width:var(--amll-lp-width,100%);contain:content;box-sizing:border-box;border-radius:.25em;width:100%;height:-moz-fit-content;height:fit-content;padding:2vh 1em;transition:opacity .25s,filter .2s,background-color .25s,box-shadow .25s}._lyricLine_1ygrf_6:has(>*):hover{background-color:var(--amll-lp-hover-bg-color,#fff1)}._lyricLine_1ygrf_6:has(>*):active{background-color:var(--amll-lp-hover-bg-color,#ffffff05)}._lyricBgLine_1ygrf_33{opacity:0;font-size:max(calc(1em*var(--amll-lp-bg-line-scale,.7)),10px);padding:1vh calc(var(--amll-lp-line-padding-x,1em)/var(--amll-lp-bg-line-scale,.7));transition:opacity .25s,scale .5s,filter .2s,background-color .25s,box-shadow .25s}._lyricBgLine_1ygrf_33._active_1ygrf_42{opacity:.4;transition:opacity .5s .25s,scale 1.5s cubic-bezier(0,1,0,1) .25s,filter .2s,background-color .25s,box-shadow .25s}.amll-lyric-player:hover ._lyricLine_1ygrf_6{filter:unset!important}.amll-lyric-player._hasDuetLine_1ygrf_54 ._lyricLine_1ygrf_6:not(._lyricDuetLine_1ygrf_55){padding-right:15%}.amll-lyric-player._hasDuetLine_1ygrf_54 ._lyricDuetLine_1ygrf_55{padding-left:15%}._lyricDuetLine_1ygrf_55{text-align:right;transform-origin:100%}._lyricMainLine_1ygrf_69{contain:content paint;transition:opacity .3s .1s}._lyricMainLine_1ygrf_69 span{white-space:pre;display:inline-block}._lyricSubLine_1ygrf_79{opacity:.3;font-size:max(.5em,10px);line-height:1.5em;transition:opacity .2s .25s}._interludeDots_1ygrf_86{transform-origin:50%;opacity:0;gap:.25em;width:-moz-fit-content;width:fit-content;height:max(.5em,min(1vh,3em));padding:2.5% .75em;transition:opacity .25s;display:flex;left:0}._interludeDots_1ygrf_86._enabled_1ygrf_97{opacity:1}._interludeDots_1ygrf_86>*{aspect-ratio:1;background-color:var(--amll-lp-color,white);border-radius:50%;width:max(.5em,min(1vh,3em));height:max(.5em,min(1vh,3em));margin-right:4px;display:inline-block}._interludeDots_1ygrf_86._duet_1ygrf_111{transform-origin:50%;right:0}@supports (mix-blend-mode:plus-lighter){._lyricSubLine_1ygrf_79{opacity:.3}}._tmpDisableTransition_1ygrf_123{transition:none!important}