@lichess-org/pgn-viewer 0.0.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 (90) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +127 -0
  3. package/demo/demo.js +241 -0
  4. package/demo/frame.html +11 -0
  5. package/demo/full-screen.html +19 -0
  6. package/demo/index.html +30 -0
  7. package/demo/lichess-pgn-viewer.css +734 -0
  8. package/demo/lichess-pgn-viewer.demo.css +17 -0
  9. package/demo/lichess-pgn-viewer.js +5916 -0
  10. package/demo/one.html +25 -0
  11. package/demo/one.js +32 -0
  12. package/dist/config.d.ts +30 -0
  13. package/dist/config.js +54 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/events.d.ts +4 -0
  16. package/dist/events.js +42 -0
  17. package/dist/events.js.map +1 -0
  18. package/dist/game.d.ts +20 -0
  19. package/dist/game.js +45 -0
  20. package/dist/game.js.map +1 -0
  21. package/dist/interfaces.d.ts +95 -0
  22. package/dist/interfaces.js +2 -0
  23. package/dist/interfaces.js.map +1 -0
  24. package/dist/lichess-pgn-viewer.css +1 -0
  25. package/dist/lichess-pgn-viewer.min.js +4 -0
  26. package/dist/main.d.ts +3 -0
  27. package/dist/main.js +18 -0
  28. package/dist/main.js.map +1 -0
  29. package/dist/path.d.ts +16 -0
  30. package/dist/path.js +18 -0
  31. package/dist/path.js.map +1 -0
  32. package/dist/pgn.d.ts +4 -0
  33. package/dist/pgn.js +128 -0
  34. package/dist/pgn.js.map +1 -0
  35. package/dist/pgnViewer.d.ts +34 -0
  36. package/dist/pgnViewer.js +90 -0
  37. package/dist/pgnViewer.js.map +1 -0
  38. package/dist/translation.d.ts +2 -0
  39. package/dist/translation.js +14 -0
  40. package/dist/translation.js.map +1 -0
  41. package/dist/tsconfig.tsbuildinfo +1 -0
  42. package/dist/view/glyph.d.ts +1 -0
  43. package/dist/view/glyph.js +104 -0
  44. package/dist/view/glyph.js.map +1 -0
  45. package/dist/view/main.d.ts +5 -0
  46. package/dist/view/main.js +78 -0
  47. package/dist/view/main.js.map +1 -0
  48. package/dist/view/menu.d.ts +3 -0
  49. package/dist/view/menu.js +61 -0
  50. package/dist/view/menu.js.map +1 -0
  51. package/dist/view/player.d.ts +3 -0
  52. package/dist/view/player.js +32 -0
  53. package/dist/view/player.js.map +1 -0
  54. package/dist/view/side.d.ts +3 -0
  55. package/dist/view/side.js +102 -0
  56. package/dist/view/side.js.map +1 -0
  57. package/dist/view/util.d.ts +4 -0
  58. package/dist/view/util.js +23 -0
  59. package/dist/view/util.js.map +1 -0
  60. package/package.json +73 -0
  61. package/scss/_chessground.base.scss +164 -0
  62. package/scss/_chessground.cburnett.css +37 -0
  63. package/scss/_chessground.transp.css +57 -0
  64. package/scss/_controls.scss +30 -0
  65. package/scss/_fbt.scss +32 -0
  66. package/scss/_font-embed.scss +30 -0
  67. package/scss/_font.scss +33 -0
  68. package/scss/_layout.scss +147 -0
  69. package/scss/_lichess-pgn-viewer.lib.scss +78 -0
  70. package/scss/_pane.scss +31 -0
  71. package/scss/_player.scss +39 -0
  72. package/scss/_scrollbar.scss +16 -0
  73. package/scss/_side.scss +155 -0
  74. package/scss/_util.scss +7 -0
  75. package/scss/lichess-pgn-viewer.scss +4 -0
  76. package/src/config.ts +53 -0
  77. package/src/events.ts +42 -0
  78. package/src/game.ts +61 -0
  79. package/src/interfaces.ts +108 -0
  80. package/src/main.ts +24 -0
  81. package/src/path.ts +28 -0
  82. package/src/pgn.ts +141 -0
  83. package/src/pgnViewer.ts +114 -0
  84. package/src/translation.ts +17 -0
  85. package/src/view/glyph.ts +113 -0
  86. package/src/view/main.ts +99 -0
  87. package/src/view/menu.ts +92 -0
  88. package/src/view/player.ts +41 -0
  89. package/src/view/side.ts +123 -0
  90. package/src/view/util.ts +40 -0
@@ -0,0 +1,734 @@
1
+ @charset "UTF-8";
2
+ .cg-wrap {
3
+ box-sizing: content-box;
4
+ position: relative;
5
+ display: block;
6
+ height: 0;
7
+ padding-bottom: 100%;
8
+ width: 100%;
9
+ }
10
+
11
+ cg-container {
12
+ position: absolute;
13
+ width: 100%;
14
+ height: 100%;
15
+ display: block;
16
+ top: 0;
17
+ }
18
+
19
+ cg-board {
20
+ position: absolute;
21
+ top: 0;
22
+ left: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ -webkit-user-select: none;
26
+ -moz-user-select: none;
27
+ -ms-user-select: none;
28
+ user-select: none;
29
+ line-height: 0;
30
+ background-size: cover;
31
+ }
32
+
33
+ cg-board square {
34
+ position: absolute;
35
+ top: 0;
36
+ left: 0;
37
+ width: 12.5%;
38
+ height: 12.5%;
39
+ pointer-events: none;
40
+ }
41
+
42
+ cg-board square.move-dest {
43
+ pointer-events: auto;
44
+ }
45
+
46
+ cg-board square.last-move {
47
+ will-change: transform;
48
+ }
49
+
50
+ .cg-wrap piece {
51
+ position: absolute;
52
+ top: 0;
53
+ left: 0;
54
+ width: 12.5%;
55
+ height: 12.5%;
56
+ background-size: cover;
57
+ z-index: 2;
58
+ will-change: transform;
59
+ pointer-events: none;
60
+ }
61
+
62
+ piece.anim {
63
+ z-index: 8;
64
+ }
65
+
66
+ piece.fading {
67
+ z-index: 1;
68
+ opacity: 0.5;
69
+ }
70
+
71
+ .cg-wrap piece.ghost {
72
+ opacity: 0.3;
73
+ }
74
+
75
+ .cg-wrap piece svg {
76
+ overflow: hidden;
77
+ position: relative;
78
+ top: 0px;
79
+ left: 0px;
80
+ width: 100%;
81
+ height: 100%;
82
+ pointer-events: none;
83
+ z-index: 2;
84
+ opacity: 0.6;
85
+ }
86
+
87
+ .cg-wrap cg-auto-pieces,
88
+ .cg-wrap .cg-shapes,
89
+ .cg-wrap .cg-custom-svgs {
90
+ overflow: visible;
91
+ position: absolute;
92
+ top: 0px;
93
+ left: 0px;
94
+ width: 100%;
95
+ height: 100%;
96
+ pointer-events: none;
97
+ }
98
+
99
+ .cg-wrap cg-auto-pieces {
100
+ z-index: 2;
101
+ }
102
+
103
+ .cg-wrap cg-auto-pieces piece {
104
+ opacity: 0.3;
105
+ }
106
+
107
+ .cg-wrap .cg-shapes {
108
+ overflow: hidden;
109
+ opacity: 0.6;
110
+ z-index: 2;
111
+ }
112
+
113
+ .cg-wrap .cg-custom-svgs {
114
+ /* over piece.anim = 8, but under piece.dragging = 11 */
115
+ z-index: 9;
116
+ }
117
+
118
+ .cg-wrap .cg-custom-svgs svg {
119
+ overflow: visible;
120
+ }
121
+
122
+ .cg-wrap coords {
123
+ position: absolute;
124
+ display: flex;
125
+ pointer-events: none;
126
+ opacity: 0.8;
127
+ font-family: sans-serif;
128
+ font-size: 9px;
129
+ color: rgba(255, 255, 255, 0.8);
130
+ }
131
+
132
+ .cg-wrap coords.ranks {
133
+ top: 1px;
134
+ right: 0;
135
+ flex-flow: column-reverse;
136
+ height: 100%;
137
+ width: 12px;
138
+ text-align: center;
139
+ }
140
+
141
+ .cg-wrap coords.ranks.black {
142
+ flex-flow: column;
143
+ }
144
+
145
+ .cg-wrap coords.ranks.left {
146
+ left: -15px;
147
+ align-items: flex-end;
148
+ }
149
+
150
+ .cg-wrap coords.files {
151
+ bottom: 0;
152
+ left: 0.7ch;
153
+ flex-flow: row;
154
+ width: 100%;
155
+ height: 12px;
156
+ text-transform: uppercase;
157
+ }
158
+
159
+ .cg-wrap coords.files.black {
160
+ flex-flow: row-reverse;
161
+ }
162
+
163
+ .cg-wrap coords coord {
164
+ flex: 1 1 auto;
165
+ }
166
+
167
+ cg-board {
168
+ background-color: var(--board-color);
169
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICAgIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+CjxnIGlkPSJhIj4KICA8ZyBpZD0iYiI+CiAgICA8ZyBpZD0iYyI+CiAgICAgIDxnIGlkPSJkIj4KICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZSIgb3BhY2l0eT0iMCIvPgogICAgICAgIDx1c2UgeD0iMSIgeT0iMSIgaHJlZj0iI2UiIHg6aHJlZj0iI2UiLz4KICAgICAgICA8cmVjdCB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBpZD0iZiIgb3BhY2l0eT0iMC4yIi8+CiAgICAgICAgPHVzZSB4PSIxIiB5PSItMSIgaHJlZj0iI2YiIHg6aHJlZj0iI2YiLz4KICAgICAgPC9nPgogICAgICA8dXNlIHg9IjIiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+CiAgICA8L2c+CiAgICA8dXNlIHg9IjQiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+CiAgPC9nPgogIDx1c2UgeT0iMiIgaHJlZj0iI2IiIHg6aHJlZj0iI2IiLz4KPC9nPgo8dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+Cjwvc3ZnPg==");
170
+ }
171
+
172
+ /** Interactive board square colors */
173
+ cg-board square.move-dest {
174
+ background: radial-gradient(rgba(20, 85, 30, 0.5) 22%, #208530 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0);
175
+ }
176
+
177
+ cg-board square.premove-dest {
178
+ background: radial-gradient(rgba(20, 30, 85, 0.5) 22%, #203085 0, rgba(0, 0, 0, 0.3) 0, rgba(0, 0, 0, 0) 0);
179
+ }
180
+
181
+ cg-board square.oc.move-dest {
182
+ background: radial-gradient(transparent 0%, transparent 80%, rgba(20, 85, 0, 0.3) 80%);
183
+ }
184
+
185
+ cg-board square.oc.premove-dest {
186
+ background: radial-gradient(transparent 0%, transparent 80%, rgba(20, 30, 85, 0.2) 80%);
187
+ }
188
+
189
+ cg-board square.move-dest:hover {
190
+ background: rgba(20, 85, 30, 0.3);
191
+ }
192
+
193
+ cg-board square.premove-dest:hover {
194
+ background: rgba(20, 30, 85, 0.2);
195
+ }
196
+
197
+ cg-board square.last-move {
198
+ background-color: rgba(155, 199, 0, 0.41);
199
+ }
200
+
201
+ cg-board square.selected {
202
+ background-color: rgba(20, 85, 30, 0.5);
203
+ }
204
+
205
+ cg-board square.check {
206
+ background: radial-gradient(ellipse at center, rgba(255, 0, 0, 1) 0%, rgba(231, 0, 0, 1) 25%, rgba(169, 0, 0, 0) 89%, rgba(158, 0, 0, 0) 100%);
207
+ }
208
+
209
+ cg-board square.current-premove {
210
+ background-color: rgba(20, 30, 85, 0.5);
211
+ }
212
+
213
+ /*/1** Alternating colors in rank/file labels *1/ */
214
+ /*.cg-wrap.orientation-white coords.ranks coord:nth-child(2n), */
215
+ /*.cg-wrap.orientation-white coords.files coord:nth-child(2n), */
216
+ /*.cg-wrap.orientation-black coords.ranks coord:nth-child(2n + 1), */
217
+ /*.cg-wrap.orientation-black coords.files coord:nth-child(2n + 1) { */
218
+ /* color: rgba(72, 72, 72, 0.8); */
219
+ /*} */
220
+ /*.cg-wrap.orientation-black coords.ranks coord:nth-child(2n), */
221
+ /*.cg-wrap.orientation-black coords.files coord:nth-child(2n), */
222
+ /*.cg-wrap.orientation-white coords.ranks coord:nth-child(2n + 1), */
223
+ /*.cg-wrap.orientation-white coords.files coord:nth-child(2n + 1) { */
224
+ /* color: rgba(255, 255, 255, 0.8); */
225
+ /*} */
226
+ /** Embedded SVGs for all chess pieces */
227
+ .cg-wrap piece.pawn.white {
228
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIGZpbGw9IiNmZmYiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==");
229
+ }
230
+
231
+ .cg-wrap piece.bishop.white {
232
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PC9nPjwvc3ZnPg==");
233
+ }
234
+
235
+ .cg-wrap piece.knight.white {
236
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjMDAwIi8+PC9nPjwvc3ZnPg==");
237
+ }
238
+
239
+ .cg-wrap piece.rook.white {
240
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy0zdi00aDIxdjRIMTJ6bS0xLTIyVjloNHYyaDVWOWg1djJoNVY5aDR2NSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMzQgMTRsLTMgM0gxNGwtMy0zIi8+PHBhdGggZD0iTTMxIDE3djEyLjVIMTRWMTciIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMxIDI5LjVsMS41IDIuNWgtMjBsMS41LTIuNSIvPjxwYXRoIGQ9Ik0xMSAxNGgyMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=");
241
+ }
242
+
243
+ .cg-wrap piece.queen.white {
244
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik04IDEyYTIgMiAwIDEgMS00IDAgMiAyIDAgMSAxIDQgMHptMTYuNS00LjVhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAwek00MSAxMmEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTE2IDguNWEyIDIgMCAxIDEtNCAwIDIgMiAwIDEgMSA0IDB6TTMzIDlhMiAyIDAgMSAxLTQgMCAyIDIgMCAxIDEgNCAweiIvPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi0xMi03IDExVjExbC01LjUgMTMuNS0zLTE1LTMgMTUtNS41LTE0VjI1TDcgMTRsMiAxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTkgMjZjMCAyIDEuNSAyIDIuNSA0IDEgMS41IDEgMSAuNSAzLjUtMS41IDEtMS41IDIuNS0xLjUgMi41LTEuNSAxLjUuNSAyLjUuNSAyLjUgNi41IDEgMTYuNSAxIDIzIDAgMCAwIDEuNS0xIDAtMi41IDAgMCAuNS0xLjUtMS0yLjUtLjUtMi41LS41LTIgLjUtMy41IDEtMiAyLjUtMiAyLjUtNC04LjUtMS41LTE4LjUtMS41LTI3IDB6IiBzdHJva2UtbGluZWNhcD0iYnV0dCIvPjxwYXRoIGQ9Ik0xMS41IDMwYzMuNS0xIDE4LjUtMSAyMiAwTTEyIDMzLjVjNi0xIDE1LTEgMjEgMCIgZmlsbD0ibm9uZSIvPjwvZz48L3N2Zz4=");
245
+ }
246
+
247
+ .cg-wrap piece.king.white {
248
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjZNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTIyLjUgMjVzNC41LTcuNSAzLTEwLjVjMCAwLTEtMi41LTMtMi41cy0zIDIuNS0zIDIuNWMtMS41IDMgMyAxMC41IDMgMTAuNSIgZmlsbD0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTEuNSAzN2M1LjUgMy41IDE1LjUgMy41IDIxIDB2LTdzOS00LjUgNi0xMC41Yy00LTYuNS0xMy41LTMuNS0xNiA0VjI3di0zLjVjLTMuNS03LjUtMTMtMTAuNS0xNi00LTMgNiA1IDEwIDUgMTBWMzd6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExLjUgMzBjNS41LTMgMTUuNS0zIDIxIDBtLTIxIDMuNWM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwIi8+PC9nPjwvc3ZnPg==");
249
+ }
250
+
251
+ .cg-wrap piece.pawn.black {
252
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PHBhdGggZD0iTTIyLjUgOWMtMi4yMSAwLTQgMS43OS00IDQgMCAuODkuMjkgMS43MS43OCAyLjM4QzE3LjMzIDE2LjUgMTYgMTguNTkgMTYgMjFjMCAyLjAzLjk0IDMuODQgMi40MSA1LjAzLTMgMS4wNi03LjQxIDUuNTUtNy40MSAxMy40N2gyM2MwLTcuOTItNC40MS0xMi40MS03LjQxLTEzLjQ3IDEuNDctMS4xOSAyLjQxLTMgMi40MS01LjAzIDAtMi40MS0xLjMzLTQuNS0zLjI4LTUuNjIuNDktLjY3Ljc4LTEuNDkuNzgtMi4zOCAwLTIuMjEtMS43OS00LTQtNHoiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==");
253
+ }
254
+
255
+ .cg-wrap piece.bishop.black {
256
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIGZpbGw9IiMwMDAiIHN0cm9rZS1saW5lY2FwPSJidXR0Ij48cGF0aCBkPSJNOSAzNmMzLjM5LS45NyAxMC4xMS40MyAxMy41LTIgMy4zOSAyLjQzIDEwLjExIDEuMDMgMTMuNSAyIDAgMCAxLjY1LjU0IDMgMi0uNjguOTctMS42NS45OS0zIC41LTMuMzktLjk3LTEwLjExLjQ2LTEzLjUtMS0zLjM5IDEuNDYtMTAuMTEuMDMtMTMuNSAxLTEuMzU0LjQ5LTIuMzIzLjQ3LTMtLjUgMS4zNTQtMS45NCAzLTIgMy0yeiIvPjxwYXRoIGQ9Ik0xNSAzMmMyLjUgMi41IDEyLjUgMi41IDE1IDAgLjUtMS41IDAtMiAwLTIgMC0yLjUtMi41LTQtMi41LTQgNS41LTEuNSA2LTExLjUtNS0xNS41LTExIDQtMTAuNSAxNC01IDE1LjUgMCAwLTIuNSAxLjUtMi41IDQgMCAwLS41LjUgMCAyeiIvPjxwYXRoIGQ9Ik0yNSA4YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAxIDEgNSAweiIvPjwvZz48cGF0aCBkPSJNMTcuNSAyNmgxME0xNSAzMGgxNW0tNy41LTE0LjV2NU0yMCAxOGg1IiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48L2c+PC9zdmc+");
257
+ }
258
+
259
+ .cg-wrap piece.knight.black {
260
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxMGMxMC41IDEgMTYuNSA4IDE2IDI5SDE1YzAtOSAxMC02LjUgOC0yMSIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNCAxOGMuMzggMi45MS01LjU1IDcuMzctOCA5LTMgMi0yLjgyIDQuMzQtNSA0LTEuMDQyLS45NCAxLjQxLTMuMDQgMC0zLTEgMCAuMTkgMS4yMy0xIDItMSAwLTQuMDAzIDEtNC00IDAtMiA2LTEyIDYtMTJzMS44OS0xLjkgMi0zLjVjLS43My0uOTk0LS41LTItLjUtMyAxLTEgMyAyLjUgMyAyLjVoMnMuNzgtMS45OTIgMi41LTNjMSAwIDEgMyAxIDMiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNOS41IDI1LjVhLjUuNSAwIDEgMS0xIDAgLjUuNSAwIDEgMSAxIDB6bTUuNDMzLTkuNzVhLjUgMS41IDMwIDEgMS0uODY2LS41LjUgMS41IDMwIDEgMSAuODY2LjV6IiBmaWxsPSIjZWNlY2VjIiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMjQuNTUgMTAuNGwtLjQ1IDEuNDUuNS4xNWMzLjE1IDEgNS42NSAyLjQ5IDcuOSA2Ljc1UzM1Ljc1IDI5LjA2IDM1LjI1IDM5bC0uMDUuNWgyLjI1bC4wNS0uNWMuNS0xMC4wNi0uODgtMTYuODUtMy4yNS0yMS4zNC0yLjM3LTQuNDktNS43OS02LjY0LTkuMTktNy4xNmwtLjUxLS4xeiIgZmlsbD0iI2VjZWNlYyIgc3Ryb2tlPSJub25lIi8+PC9nPjwvc3ZnPg==");
261
+ }
262
+
263
+ .cg-wrap piece.rook.black {
264
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik05IDM5aDI3di0zSDl2M3ptMy41LTdsMS41LTIuNWgxN2wxLjUgMi41aC0yMHptLS41IDR2LTRoMjF2NEgxMnoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTE0IDI5LjV2LTEzaDE3djEzSDE0eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMTQgMTYuNUwxMSAxNGgyM2wtMyAyLjVIMTR6TTExIDE0VjloNHYyaDVWOWg1djJoNVY5aDR2NUgxMXoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTEyIDM1LjVoMjFtLTIwLTRoMTltLTE4LTJoMTdtLTE3LTEzaDE3TTExIDE0aDIzIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjwvZz48L3N2Zz4=");
265
+ }
266
+
267
+ .cg-wrap piece.queen.black {
268
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxnIHN0cm9rZT0ibm9uZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjEyIiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMTQiIGN5PSI5IiByPSIyLjc1Ii8+PGNpcmNsZSBjeD0iMjIuNSIgY3k9IjgiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzMSIgY3k9IjkiIHI9IjIuNzUiLz48Y2lyY2xlIGN4PSIzOSIgY3k9IjEyIiByPSIyLjc1Ii8+PC9nPjxwYXRoIGQ9Ik05IDI2YzguNS0xLjUgMjEtMS41IDI3IDBsMi41LTEyLjVMMzEgMjVsLS4zLTE0LjEtNS4yIDEzLjYtMy0xNC41LTMgMTQuNS01LjItMTMuNkwxNCAyNSA2LjUgMTMuNSA5IDI2eiIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNOSAyNmMwIDIgMS41IDIgMi41IDQgMSAxLjUgMSAxIC41IDMuNS0xLjUgMS0xLjUgMi41LTEuNSAyLjUtMS41IDEuNS41IDIuNS41IDIuNSA2LjUgMSAxNi41IDEgMjMgMCAwIDAgMS41LTEgMC0yLjUgMCAwIC41LTEuNS0xLTIuNS0uNS0yLjUtLjUtMiAuNS0zLjUgMS0yIDIuNS0yIDIuNS00LTguNS0xLjUtMTguNS0xLjUtMjcgMHoiIHN0cm9rZS1saW5lY2FwPSJidXR0Ii8+PHBhdGggZD0iTTExIDM4LjVhMzUgMzUgMSAwIDAgMjMgMCIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiLz48cGF0aCBkPSJNMTEgMjlhMzUgMzUgMSAwIDEgMjMgMG0tMjEuNSAyLjVoMjBtLTIxIDNhMzUgMzUgMSAwIDAgMjIgMG0tMjMgM2EzNSAzNSAxIDAgMCAyNCAwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlY2VjZWMiLz48L2c+PC9zdmc+");
269
+ }
270
+
271
+ .cg-wrap piece.king.black {
272
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMi41IDExLjYzVjYiIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiLz48cGF0aCBkPSJNMjIuNSAyNXM0LjUtNy41IDMtMTAuNWMwIDAtMS0yLjUtMy0yLjVzLTMgMi41LTMgMi41Yy0xLjUgMyAzIDEwLjUgMyAxMC41IiBmaWxsPSIjMDAwIiBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIvPjxwYXRoIGQ9Ik0xMS41IDM3YzUuNSAzLjUgMTUuNSAzLjUgMjEgMHYtN3M5LTQuNSA2LTEwLjVjLTQtNi41LTEzLjUtMy41LTE2IDRWMjd2LTMuNWMtMy41LTcuNS0xMy0xMC41LTE2LTQtMyA2IDUgMTAgNSAxMFYzN3oiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjAgOGg1IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIi8+PHBhdGggZD0iTTMyIDI5LjVzOC41LTQgNi4wMy05LjY1QzM0LjE1IDE0IDI1IDE4IDIyLjUgMjQuNWwuMDEgMi4xLS4wMS0yLjFDMjAgMTggOS45MDYgMTQgNi45OTcgMTkuODVjLTIuNDk3IDUuNjUgNC44NTMgOSA0Ljg1MyA5IiBzdHJva2U9IiNlY2VjZWMiLz48cGF0aCBkPSJNMTEuNSAzMGM1LjUtMyAxNS41LTMgMjEgMG0tMjEgMy41YzUuNS0zIDE1LjUtMyAyMSAwbS0yMSAzLjVjNS41LTMgMTUuNS0zIDIxIDAiIHN0cm9rZT0iI2VjZWNlYyIvPjwvZz48L3N2Zz4=");
273
+ }
274
+
275
+ /* move highlights */
276
+ .lpv__fbt {
277
+ background: none;
278
+ border: none;
279
+ outline: none;
280
+ color: var(--c-lpv-font, #aaa);
281
+ align-items: normal;
282
+ cursor: pointer;
283
+ text-transform: uppercase;
284
+ font-size: 1em;
285
+ line-height: 1.5;
286
+ text-decoration: none;
287
+ }
288
+ @media (hover: hover) {
289
+ .lpv__fbt:hover:not(.disabled):not([disabled]) {
290
+ background: var(--c-lpv-fbt-hover, lpv-fbt-hover);
291
+ color: #fff;
292
+ }
293
+ }
294
+ .lpv__fbt.active {
295
+ background: var(--c-lpv-accent, hsl(88, 62%, 37%)) !important;
296
+ color: #fff;
297
+ }
298
+ .lpv__fbt.disabled, .lpv__fbt[disabled] {
299
+ opacity: 0.4;
300
+ cursor: default;
301
+ }
302
+
303
+ .lpv__board .cg-wrap {
304
+ position: relative;
305
+ display: block;
306
+ height: 0;
307
+ padding-bottom: 100%;
308
+ width: 100%;
309
+ }
310
+
311
+ .lpv {
312
+ display: grid;
313
+ overflow: hidden;
314
+ grid-row-gap: 0;
315
+ --controls-height: 4em;
316
+ }
317
+ .lpv--controls-false {
318
+ --controls-height: 0em;
319
+ }
320
+ .lpv--moves-false {
321
+ grid-template-areas: "board" "controls";
322
+ grid-template-columns: minmax(200px, calc(100vh - var(--controls-height)));
323
+ grid-template-rows: auto var(--controls-height);
324
+ }
325
+ .lpv--moves-right {
326
+ grid-template-areas: "board side" "controls side";
327
+ grid-template-columns: auto fit-content(40%);
328
+ grid-template-rows: auto var(--controls-height);
329
+ }
330
+ .lpv--moves-bottom {
331
+ grid-template-areas: "board" "controls" "side";
332
+ grid-template-rows: auto var(--controls-height);
333
+ }
334
+ .lpv--moves-bottom .lpv__controls {
335
+ border-bottom: 1px solid var(--c-lpv-border, hsl(0, 0%, 25%));
336
+ }
337
+ .lpv--moves-auto {
338
+ grid-template-areas: "board side" "controls side";
339
+ grid-template-columns: minmax(200px, calc(100vh - var(--controls-height))) minmax(232px, 1fr);
340
+ grid-template-rows: auto var(--controls-height);
341
+ }
342
+ @media (max-width: 450px) {
343
+ .lpv--moves-auto {
344
+ grid-template-areas: "board" "controls" "side";
345
+ grid-template-columns: minmax(200px, calc(100vh - var(--controls-height) - 6em));
346
+ grid-template-rows: auto var(--controls-height);
347
+ }
348
+ }
349
+ .lpv--players.lpv--moves-false {
350
+ grid-template-areas: "player-top" "board" "player-bot" "controls";
351
+ grid-template-rows: 2em auto 2em var(--controls-height);
352
+ }
353
+ .lpv--players.lpv--moves-right {
354
+ grid-template-areas: "player-top side" "board side" "player-bot side" "controls side";
355
+ grid-template-rows: 2em auto 2em var(--controls-height);
356
+ }
357
+ .lpv--players.lpv--moves-bottom {
358
+ grid-template-areas: "player-top" "board" "player-bot" "controls" "side";
359
+ grid-template-rows: 2em auto 2em var(--controls-height) 6em;
360
+ }
361
+ .lpv--players.lpv--moves-bottom .lpv__controls {
362
+ border-bottom: 1px solid var(--c-lpv-border, hsl(0, 0%, 25%));
363
+ }
364
+ .lpv--players.lpv--moves-auto {
365
+ grid-template-areas: "player-top side" "board side" "player-bot side" "controls side";
366
+ grid-template-columns: minmax(200px, calc(100vh - 2 * 2em - var(--controls-height))) minmax(232px, 1fr);
367
+ grid-template-rows: 2em auto 2em var(--controls-height);
368
+ }
369
+ @media (max-width: 450px) {
370
+ .lpv--players.lpv--moves-auto {
371
+ grid-template-areas: "player-top" "board" "player-bot" "controls" "side";
372
+ grid-template-columns: minmax(200px, calc(100vh - 2 * 2em - var(--controls-height) - 6em));
373
+ grid-template-rows: 2em auto 2em var(--controls-height) 6em;
374
+ }
375
+ }
376
+ .lpv__board {
377
+ grid-area: board;
378
+ }
379
+ .lpv__side {
380
+ grid-area: side;
381
+ }
382
+ .lpv__player--top {
383
+ grid-area: player-top;
384
+ }
385
+ .lpv__player--bottom {
386
+ grid-area: player-bot;
387
+ }
388
+ .lpv__controls {
389
+ grid-area: controls;
390
+ }
391
+ .lpv__menu, .lpv__pgn {
392
+ grid-area: 1/1/2/2;
393
+ }
394
+ .lpv--players .lpv__menu, .lpv--players .lpv__pgn {
395
+ grid-area: 1/1/4/2;
396
+ }
397
+
398
+ .lpv__side {
399
+ overflow: hidden;
400
+ display: flex;
401
+ flex-flow: column;
402
+ }
403
+ .lpv__moves {
404
+ position: relative;
405
+ flex: 1 1 0;
406
+ display: flex;
407
+ flex-flow: row wrap;
408
+ overflow-y: auto;
409
+ background: var(--c-lpv-bg-movelist, hsl(37, 5%, 18%));
410
+ align-items: center;
411
+ align-content: flex-start;
412
+ will-change: scroll-position;
413
+ user-select: none;
414
+ line-height: 1.7;
415
+ min-width: 20ch;
416
+ }
417
+ .lpv__moves index {
418
+ color: var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025));
419
+ }
420
+ .lpv__moves > index {
421
+ flex: 0 0 15%;
422
+ margin-right: 3%;
423
+ display: flex;
424
+ justify-content: flex-end;
425
+ }
426
+ .lpv__moves move {
427
+ border-radius: 3px;
428
+ padding-left: 3%;
429
+ font-weight: bold;
430
+ white-space: nowrap;
431
+ }
432
+ .lpv__moves move.empty {
433
+ color: var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025));
434
+ }
435
+ .lpv__moves move:not(.empty):hover {
436
+ background: var(--c-lpv-move-hover, rgb(63.21144, 78.35895, 41.2794));
437
+ color: var(--c-lpv-accent-over, white);
438
+ cursor: pointer;
439
+ }
440
+ .lpv__moves move.ancestor {
441
+ color: var(--c-lpv-past-moves, #aaa);
442
+ }
443
+ .lpv__moves move.current {
444
+ background: var(--c-lpv-current-move, rgb(83.23336, 120.92355, 38.1786)) !important;
445
+ color: var(--c-lpv-accent-over, white);
446
+ }
447
+ .lpv__moves move.inaccuracy {
448
+ color: var(--c-lpv-inaccuracy, hsl(202, 78%, 62%));
449
+ }
450
+ .lpv__moves move.inaccuracy:hover {
451
+ background: var(--c-lpv-bg-inaccuracy-hover, rgb(58.4919, 85.98141, 100.6281));
452
+ }
453
+ .lpv__moves move.mistake {
454
+ color: var(--c-lpv-mistake, hsl(41, 100%, 45%));
455
+ }
456
+ .lpv__moves move.mistake:hover {
457
+ background: var(--c-lpv-bg-mistake-hover, rgb(102.5865, 79.55235, 30.5235));
458
+ }
459
+ .lpv__moves move.blunder {
460
+ color: var(--c-lpv-blunder, hsl(0, 69%, 60%));
461
+ }
462
+ .lpv__moves move.blunder:hover {
463
+ background: var(--c-lpv-bg-blunder-hover, rgb(100.7505, 57.29085, 55.3095));
464
+ }
465
+ .lpv__moves move.good {
466
+ color: var(--c-lpv-good-move, hsl(130, 67%, 62%));
467
+ }
468
+ .lpv__moves move.good:hover {
469
+ background: var(--c-lpv-bg-good-hover, rgb(61.6896, 99.41175, 64.9689));
470
+ }
471
+ .lpv__moves move.brilliant {
472
+ color: var(--c-lpv-brilliant, hsl(129, 71%, 45%));
473
+ }
474
+ .lpv__moves move.brilliant:hover {
475
+ background: var(--c-lpv-bg-brilliant-hover, rgb(43.71975, 91.3716, 47.839275));
476
+ }
477
+ .lpv__moves move.interesting {
478
+ color: var(--c-lpv-interesting, hsl(307, 80%, 70%));
479
+ }
480
+ .lpv__moves move.interesting:hover {
481
+ background: var(--c-lpv-bg-interesting-hover, rgb(105.6465, 67.69485, 98.1495));
482
+ }
483
+ .lpv__moves > move {
484
+ flex: 0 0 41%;
485
+ font-size: 1.1em;
486
+ }
487
+ .lpv__moves comment {
488
+ user-select: text;
489
+ font-size: 0.9em;
490
+ }
491
+ .lpv__moves comment.result {
492
+ text-align: center;
493
+ font-weight: bold;
494
+ }
495
+ .lpv__moves > comment {
496
+ flex: 1 1 100%;
497
+ background: var(--c-lpv-bg-variation, hsl(37, 5%, 15%));
498
+ border: 1px solid var(--c-lpv-side-border, hsl(37, 5%, 13%));
499
+ border-width: 1px 0;
500
+ padding: 0.4em 1em;
501
+ line-height: 1.4;
502
+ overflow-wrap: break-word;
503
+ word-break: break-word;
504
+ }
505
+ .lpv__moves > comment + variation,
506
+ .lpv__moves > comment + comment {
507
+ border-top: none;
508
+ }
509
+ .lpv__moves > variation {
510
+ flex: 1 1 100%;
511
+ display: block;
512
+ overflow: hidden;
513
+ font-size: 0.8em;
514
+ background: var(--c-lpv-bg-variation, hsl(37, 5%, 15%));
515
+ border: 1px solid var(--c-lpv-side-border, hsl(37, 5%, 13%));
516
+ border-width: 1px 0;
517
+ padding: 0em 0.6em;
518
+ }
519
+ .lpv__moves > variation + variation {
520
+ border-top: none;
521
+ }
522
+ .lpv__moves > variation move {
523
+ display: inline-block;
524
+ padding: 0.1em 0.2em;
525
+ min-width: 2.5ch;
526
+ text-align: center;
527
+ }
528
+ .lpv__moves > variation move + index {
529
+ margin-left: 0.2em;
530
+ }
531
+ .lpv__moves > variation index {
532
+ margin: 0;
533
+ padding: 0.1em 0;
534
+ }
535
+ .lpv__moves > variation index + move {
536
+ margin-left: 0.1em;
537
+ }
538
+ .lpv__moves > variation comment {
539
+ align-self: center;
540
+ margin: 0 0.3em;
541
+ }
542
+ .lpv__moves > variation paren {
543
+ color: var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025));
544
+ }
545
+ .lpv__moves > variation paren.open {
546
+ margin: 0 0.1em 0 0.2em;
547
+ }
548
+ .lpv__moves > variation paren.close {
549
+ margin: 0 0.2em 0 0.1em;
550
+ }
551
+
552
+ .lpv__player {
553
+ font-size: 0.8em;
554
+ background: var(--c-lpv-bg-player, hsl(37, 5%, 18%));
555
+ display: flex;
556
+ flex-flow: row nowrap;
557
+ padding: 0 1em;
558
+ }
559
+ .lpv__player--bottom {
560
+ border-bottom: 1px solid var(--c-lpv-border, hsl(0, 0%, 25%));
561
+ }
562
+ .lpv--controls-false .lpv__player--bottom {
563
+ border-bottom: none;
564
+ }
565
+ .lpv__player__person {
566
+ flex: 1 1 auto;
567
+ display: flex;
568
+ flex-flow: row nowrap;
569
+ align-items: center;
570
+ gap: 1ch;
571
+ color: var(--c-lpv-font, #aaa);
572
+ text-decoration: none;
573
+ }
574
+ .lpv__player__title {
575
+ font-weight: bold;
576
+ }
577
+ .lpv__player__clock {
578
+ display: flex;
579
+ flex-flow: row nowrap;
580
+ align-items: center;
581
+ font-family: monospace;
582
+ font-size: 1.4em;
583
+ font-weight: bold;
584
+ }
585
+ .lpv__player__clock.active {
586
+ color: var(--c-lpv-accent, hsl(88, 62%, 37%));
587
+ }
588
+
589
+ .lpv__pane {
590
+ z-index: 2;
591
+ border-bottom: 2px solid var(--c-lpv-accent, hsl(88, 62%, 37%));
592
+ background: var(--c-lpv-bg-pane, rgb(55.70322, 62.397225, 42.4422));
593
+ display: flex;
594
+ flex-flow: column;
595
+ justify-content: center;
596
+ }
597
+ .lpv__pane .lpv__fbt {
598
+ text-align: left;
599
+ padding: 0.8em 2.5em;
600
+ transition: none;
601
+ }
602
+ .lpv__pane .lpv__fbt::before {
603
+ color: var(--c-lpv-accent, hsl(88, 62%, 37%));
604
+ font-size: 2em;
605
+ }
606
+ .lpv__pane .lpv__fbt:hover::before {
607
+ color: var(--c-lpv-accent-over, white);
608
+ }
609
+ .lpv__pgn__text {
610
+ flex: 1 1 auto;
611
+ background: var(--c-lpv-pgn-text, rgb(50.447466, 51.2240175, 43.25616));
612
+ color: var(--c-lpv-font, #aaa);
613
+ padding: 0.8em 1.3em;
614
+ }
615
+
616
+ .lpv__controls {
617
+ display: flex;
618
+ flex-flow: row nowrap;
619
+ align-items: stretch;
620
+ user-select: none;
621
+ background: var(--c-lpv-bg-controls, hsl(37, 5%, 18%));
622
+ }
623
+ .lpv__controls .lpv__fbt {
624
+ flex: 1 1 auto;
625
+ font-size: 1.4em;
626
+ padding: 0.4em 0.7em;
627
+ border-left: 1px solid var(--c-lpv-border, hsl(0, 0%, 25%));
628
+ }
629
+ .lpv__controls .lpv__fbt:first-child {
630
+ border: none;
631
+ }
632
+ .lpv__controls__menu.lpv__fbt {
633
+ flex: 0 1 auto;
634
+ width: 4em;
635
+ padding: 0.45em 1em 0.35em 1em;
636
+ font-size: 1.1em;
637
+ }
638
+ .lpv__controls__goto {
639
+ padding: 0.4rem 0.7rem;
640
+ }
641
+
642
+ .lpv *::-webkit-scrollbar,
643
+ .lpv *::-webkit-scrollbar-corner {
644
+ width: 0.5rem;
645
+ background: var(--c-lpv-bg, hsl(37, 5%, 18%));
646
+ }
647
+ .lpv *::-webkit-scrollbar-thumb {
648
+ background: var(--c-lpv-font-bg, rgb(72.556, 71.1484, 68.884));
649
+ }
650
+ .lpv *::-webkit-scrollbar-thumb:hover,
651
+ .lpv *::-webkit-scrollbar-thumb:active {
652
+ background: var(--c-lpv-font-shy, rgb(109.0975, 108.21775, 106.8025));
653
+ }
654
+
655
+ /**
656
+ *
657
+ * Font license info
658
+ *
659
+ *
660
+ * ## Elusive
661
+ *
662
+ * Copyright (C) 2013 by Aristeides Stathopoulos
663
+ *
664
+ * Author: Aristeides Stathopoulos
665
+ * License: SIL (http://scripts.sil.org/OFL)
666
+ * Homepage: http://aristeides.com/
667
+ *
668
+ *
669
+ * ## Font Awesome
670
+ *
671
+ * Copyright (C) 2016 by Dave Gandy
672
+ *
673
+ * Author: Dave Gandy
674
+ * License: SIL ()
675
+ * Homepage: http://fortawesome.github.com/Font-Awesome/
676
+ */
677
+ @font-face {
678
+ font-family: "lpv-fontello";
679
+ src: url("data:application/octet-stream;base64,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") format("woff"), url("data:application/octet-stream;base64,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") format("truetype");
680
+ }
681
+ .lpv__icon {
682
+ /* '' */
683
+ /* '' */
684
+ /* '' */
685
+ /* '' */
686
+ /* '' */
687
+ }
688
+ .lpv__icon:before {
689
+ font-family: "lpv-fontello";
690
+ font-size: 1.1em;
691
+ width: 1em;
692
+ text-align: center;
693
+ /* Font smoothing. That was taken from TWBS */
694
+ -webkit-font-smoothing: antialiased;
695
+ -moz-osx-font-smoothing: grayscale;
696
+ }
697
+ .lpv__icon-step-forward:before {
698
+ content: "\e800";
699
+ }
700
+ .lpv__icon-step-backward:before {
701
+ content: "\e801";
702
+ }
703
+ .lpv__icon-left-open:before {
704
+ content: "\e802";
705
+ }
706
+ .lpv__icon-right-open:before {
707
+ content: "\e803";
708
+ }
709
+ .lpv__icon-ellipsis-vert:before {
710
+ content: "\f142";
711
+ }
712
+
713
+ .lpv {
714
+ border-radius: 5px;
715
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
716
+ overflow: hidden;
717
+ background: var(--c-lpv-bg, hsl(37, 5%, 18%));
718
+ color: var(--c-lpv-font, #aaa);
719
+ box-sizing: border-box;
720
+ }
721
+ .lpv *,
722
+ .lpv *::before,
723
+ .lpv *::after {
724
+ box-sizing: inherit;
725
+ }
726
+ .lpv__board {
727
+ user-select: none;
728
+ }
729
+ .lpv__board cg-board {
730
+ box-shadow: none;
731
+ }
732
+ .lpv:focus {
733
+ outline: auto 2px var(--c-lpv-accent, hsl(88, 62%, 37%));
734
+ }