Commit 939c771430fb729d105d992af2641be591b4447d

Authored by yibo
1 parent 64fb4b65

Restyle live channel to match infiniteslop.ai's visual language

Inspected infiniteslop.ai's computed styles directly (fonts, colors, button
shapes) rather than guessing from memory:
- Pure black background, Tahoma body font (matches their retro-web feel)
- Shrikhand display font for the logo mark, pink drop-shadow for pop
  (their black stroke doesn't read on a black background, so swapped)
- Hot-pink accent (#ff90e8, their exact "Say" button color) for active
  tabs, the primary CTA button, and active-row/tab indicators
- White pill buttons with bold black text for secondary controls (tabs,
  mute toggle) — matches their unmute/chat button treatment

Layout structure (queue-left/player-center/input-right, mobile sub-tabs,
no native video controls) is unchanged — this is a re-skin, not a layout
clone, since that structure was built to this project's own requirements.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
library.json
... ... @@ -41,7 +41,7 @@
41 41 "likes": 0,
42 42 "createdAt": 1788192915549,
43 43 "promptEn": "taoist steels himself to exorcise something",
44   - "lastPlayedAt": 1788231240988
  44 + "lastPlayedAt": 1788232627825
45 45 },
46 46 {
47 47 "id": "5b6dcb357792",
... ... @@ -69,7 +69,8 @@
69 69 "partition": "ref2va",
70 70 "likes": 0,
71 71 "createdAt": 1788192914949,
72   - "promptEn": "taoist acts tough but is nervous"
  72 + "promptEn": "taoist acts tough but is nervous",
  73 + "lastPlayedAt": 1788232638595
73 74 },
74 75 {
75 76 "id": "167ce1bfa285",
... ... @@ -84,7 +85,7 @@
84 85 "likes": 0,
85 86 "createdAt": 1788192914047,
86 87 "promptEn": "scholar looks scared, wants to flee",
87   - "lastPlayedAt": 1788231777488
  88 + "lastPlayedAt": 1788233032856
88 89 },
89 90 {
90 91 "id": "053bc957b4f8",
... ... @@ -140,7 +141,8 @@
140 141 "partition": "ref2va",
141 142 "likes": 0,
142 143 "createdAt": 1788192913244,
143   - "promptEn": "scholar cornered but still defiant"
  144 + "promptEn": "scholar cornered but still defiant",
  145 + "lastPlayedAt": 1788233292965
144 146 },
145 147 {
146 148 "id": "bbf7efb467e0",
... ... @@ -155,7 +157,7 @@
155 157 "likes": 0,
156 158 "createdAt": 1788192912912,
157 159 "promptEn": "taoist charmed, hesitating",
158   - "lastPlayedAt": 1788231747459
  160 + "lastPlayedAt": 1788233054864
159 161 },
160 162 {
161 163 "id": "f8da9934c823",
... ... @@ -184,7 +186,8 @@
184 186 "partition": "ref2va",
185 187 "likes": 0,
186 188 "createdAt": 1788191432903,
187   - "promptEn": "woman in white startled, a bit shy"
  189 + "promptEn": "woman in white startled, a bit shy",
  190 + "lastPlayedAt": 1788232706663
188 191 },
189 192 {
190 193 "id": "14f482bdae7f",
... ... @@ -199,7 +202,7 @@
199 202 "likes": 0,
200 203 "createdAt": 1788191432362,
201 204 "promptEn": "woman in white being intimate and alluring",
202   - "lastPlayedAt": 1788232089732
  205 + "lastPlayedAt": 1788233385001
203 206 },
204 207 {
205 208 "id": "362b15ab1811",
... ... @@ -227,7 +230,8 @@
227 230 "partition": "ref2va",
228 231 "likes": 0,
229 232 "createdAt": 1788191431505,
230   - "promptEn": "woman in white scared, dodging the question"
  233 + "promptEn": "woman in white scared, dodging the question",
  234 + "lastPlayedAt": 1788233203825
231 235 },
232 236 {
233 237 "id": "667978d52305",
... ... @@ -242,7 +246,7 @@
242 246 "likes": 0,
243 247 "createdAt": 1788191431016,
244 248 "promptEn": "woman in white coldly threatening",
245   - "lastPlayedAt": 1788231319026
  249 + "lastPlayedAt": 1788232575821
246 250 },
247 251 {
248 252 "id": "7f5213748d87",
... ... @@ -256,7 +260,8 @@
256 260 "partition": "ref2va",
257 261 "likes": 0,
258 262 "createdAt": 1788188423583,
259   - "promptEn": "woman in white scared, dodging"
  263 + "promptEn": "woman in white scared, dodging",
  264 + "lastPlayedAt": 1788232370410
260 265 },
261 266 {
262 267 "id": "1597db4be561",
... ... @@ -270,7 +275,7 @@
270 275 "partition": "ref2va",
271 276 "likes": 0,
272 277 "createdAt": 1788187365789,
273   - "lastPlayedAt": 1788230876818,
  278 + "lastPlayedAt": 1788233018847,
274 279 "promptEn": "woman in white being gentle and comforting"
275 280 },
276 281 {
... ... @@ -285,7 +290,7 @@
285 290 "partition": "ref2va",
286 291 "likes": 0,
287 292 "createdAt": 1788186218619,
288   - "lastPlayedAt": 1788230860811,
  293 + "lastPlayedAt": 1788232390420,
289 294 "promptEn": "woman in white evading, scared"
290 295 },
291 296 {
... ... @@ -300,7 +305,8 @@
300 305 "partition": "ref2va",
301 306 "likes": 0,
302 307 "createdAt": 1788185090875,
303   - "promptEn": "woman in white cold and threatening"
  308 + "promptEn": "woman in white cold and threatening",
  309 + "lastPlayedAt": 1788232355821
304 310 },
305 311 {
306 312 "id": "a46f1daa9ee0",
... ... @@ -314,7 +320,8 @@
314 320 "partition": "text",
315 321 "likes": 0,
316 322 "createdAt": 1788181569491,
317   - "promptEn": "a massive warship glides through the stars, the bridge suddenly shakes hard"
  323 + "promptEn": "a massive warship glides through the stars, the bridge suddenly shakes hard",
  324 + "lastPlayedAt": 1788233312967
318 325 },
319 326 {
320 327 "id": "44bf5b969e94",
... ... @@ -359,7 +366,7 @@
359 366 "likes": 0,
360 367 "createdAt": 1788159367556,
361 368 "promptEn": "constable talking nervously in an old room, looking scared",
362   - "lastPlayedAt": 1788231409095
  369 + "lastPlayedAt": 1788233737163
363 370 },
364 371 {
365 372 "id": "a6d767413426",
... ... @@ -404,7 +411,7 @@
404 411 "likes": 0,
405 412 "createdAt": 1788156878022,
406 413 "promptEn": "constable bursts in and blocks the door, talks to a pale woman behind the screen",
407   - "lastPlayedAt": 1788230363053
  414 + "lastPlayedAt": 1788233751168
408 415 },
409 416 {
410 417 "id": "a0b752e7ac0d",
... ... @@ -434,7 +441,7 @@
434 441 "likes": 0,
435 442 "createdAt": 1788153988474,
436 443 "promptEn": "astronaut at a martian canyon, visor reflecting alien ruins, then aerial view of the city",
437   - "lastPlayedAt": 1788231178957
  444 + "lastPlayedAt": 1788232531824
438 445 },
439 446 {
440 447 "id": "194fc2b56cb5",
... ... @@ -479,7 +486,7 @@
479 486 "likes": 0,
480 487 "createdAt": 1788120171608,
481 488 "promptEn": "constable bursts in and blocks the door, talks to a pale woman behind the screen",
482   - "lastPlayedAt": 1788228881720
  489 + "lastPlayedAt": 1788232690632
483 490 },
484 491 {
485 492 "id": "b8c762a3672e",
... ... @@ -539,7 +546,7 @@
539 546 "likes": 0,
540 547 "createdAt": 1788062322252,
541 548 "promptEn": "constable stands still, quietly says he won't make a sound, woman stays silent behind the screen",
542   - "lastPlayedAt": 1788230102810
  549 + "lastPlayedAt": 1788233302967
543 550 },
544 551 {
545 552 "id": "12ea9ce00f36",
... ... @@ -614,7 +621,7 @@
614 621 "likes": 0,
615 622 "createdAt": 1788026876886,
616 623 "promptEn": "apartment manager in an eerie corridor, red elevator light flickering, holding out a key",
617   - "lastPlayedAt": 1788229392168
  624 + "lastPlayedAt": 1788232386408
618 625 },
619 626 {
620 627 "id": "cdd03cca8461",
... ... @@ -629,7 +636,7 @@
629 636 "likes": 0,
630 637 "createdAt": 1788026569422,
631 638 "promptEn": "stitched-face long-haired curse on a subway platform, flickering lights, cruel smile",
632   - "lastPlayedAt": 1788229740487
  639 + "lastPlayedAt": 1788233199827
633 640 },
634 641 {
635 642 "id": "b8dd0f62f648",
... ... @@ -644,7 +651,7 @@
644 651 "likes": 0,
645 652 "createdAt": 1788026569123,
646 653 "promptEn": "pale dream demon in a suit, reaching out a hand inside a dream train car",
647   - "lastPlayedAt": 1788229358140
  654 + "lastPlayedAt": 1788232663823
648 655 },
649 656 {
650 657 "id": "bd6e2b264243",
... ... @@ -659,7 +666,7 @@
659 666 "likes": 0,
660 667 "createdAt": 1788026568815,
661 668 "promptEn": "blond soldier in combat gear, bracing at the entrance of a ruined basement battlefield",
662   - "lastPlayedAt": 1788230413095
  669 + "lastPlayedAt": 1788233058865
663 670 },
664 671 {
665 672 "id": "b0d6af33eace",
... ... @@ -674,7 +681,7 @@
674 681 "likes": 0,
675 682 "createdAt": 1788026568516,
676 683 "promptEn": "orange-haired villain in a black cloak with red clouds, raising a hand in a ruined village",
677   - "lastPlayedAt": 1788231899599
  684 + "lastPlayedAt": 1788233126898
678 685 },
679 686 {
680 687 "id": "b077fd090415",
... ... @@ -689,7 +696,7 @@
689 696 "likes": 0,
690 697 "createdAt": 1788026568242,
691 698 "promptEn": "magma commander in a white coat, raising a lava fist on the battlefield",
692   - "lastPlayedAt": 1788230647199
  699 + "lastPlayedAt": 1788232916802
693 700 },
694 701 {
695 702 "id": "1442013e94f0",
... ... @@ -704,7 +711,7 @@
704 711 "likes": 0,
705 712 "createdAt": 1788026068497,
706 713 "promptEn": "black-haired prince in a red cloak, pressing down an execution order in the trial hall",
707   - "lastPlayedAt": 1788229990717
  714 + "lastPlayedAt": 1788232404430
708 715 },
709 716 {
710 717 "id": "0a5e37bb328c",
... ... @@ -719,7 +726,7 @@
719 726 "likes": 0,
720 727 "createdAt": 1788025642732,
721 728 "promptEn": "Vecna reaching out a claw in his lair in the Upside Down, red lightning",
722   - "lastPlayedAt": 1788230112820
  729 + "lastPlayedAt": 1788232907826
723 730 },
724 731 {
725 732 "id": "00862f966c3f",
... ... @@ -734,7 +741,7 @@
734 741 "likes": 0,
735 742 "createdAt": 1788025640972,
736 743 "promptEn": "Voldemort in a graveyard, wand raised, stepping closer",
737   - "lastPlayedAt": 1788229402175
  744 + "lastPlayedAt": 1788232551825
738 745 },
739 746 {
740 747 "id": "c3875fbd6cc4",
... ... @@ -779,7 +786,7 @@
779 786 "likes": 0,
780 787 "createdAt": 1788025624377,
781 788 "promptEn": "cat-eared white-haired guard crouching in a ruined palace, purple aura around them",
782   - "lastPlayedAt": 1788231479161
  789 + "lastPlayedAt": 1788232950817
783 790 },
784 791 {
785 792 "id": "b16b64e52f83",
... ... @@ -839,7 +846,7 @@
839 846 "likes": 0,
840 847 "createdAt": 1788025220954,
841 848 "promptEn": "pirate captain plants a cutlass on the table, making a dangerous bargain",
842   - "lastPlayedAt": 1788230182884
  849 + "lastPlayedAt": 1788232503823
843 850 },
844 851 {
845 852 "id": "3e03975ff40a",
... ... @@ -914,7 +921,7 @@
914 921 "likes": 0,
915 922 "createdAt": 1788019483999,
916 923 "promptEn": "constable rushes in, glances back at the door, then talks to the woman behind the screen",
917   - "lastPlayedAt": 1788228721599
  924 + "lastPlayedAt": 1788233350990
918 925 },
919 926 {
920 927 "id": "998e3e6f9a2f",
... ... @@ -929,7 +936,7 @@
929 936 "likes": 0,
930 937 "createdAt": 1788016668421,
931 938 "promptEn": "pirate negotiation, catching Barbossa's flaw and turning the tables",
932   - "lastPlayedAt": 1788231262996
  939 + "lastPlayedAt": 1788233635107
933 940 },
934 941 {
935 942 "id": "e3b18b5dfd8e",
... ... @@ -974,7 +981,7 @@
974 981 "likes": 0,
975 982 "createdAt": 1788015968838,
976 983 "promptEn": "pirate negotiation, held the goal but paid a price",
977   - "lastPlayedAt": 1788231927627
  984 + "lastPlayedAt": 1788233671127
978 985 },
979 986 {
980 987 "id": "b328649000d1",
... ... @@ -1004,7 +1011,7 @@
1004 1011 "likes": 0,
1005 1012 "createdAt": 1788015493445,
1006 1013 "promptEn": "pirate negotiation, went in head-on and Barbossa saw it coming",
1007   - "lastPlayedAt": 1788229576322
  1014 + "lastPlayedAt": 1788233308972
1008 1015 },
1009 1016 {
1010 1017 "id": "3f30f5097438",
... ... @@ -1049,7 +1056,7 @@
1049 1056 "likes": 0,
1050 1057 "createdAt": 1788014790969,
1051 1058 "promptEn": "pirate negotiation, stayed passive and got cornered",
1052   - "lastPlayedAt": 1788231743454
  1059 + "lastPlayedAt": 1788232946815
1053 1060 },
1054 1061 {
1055 1062 "id": "e14fe7c3220e",
... ... @@ -1079,7 +1086,7 @@
1079 1086 "likes": 0,
1080 1087 "createdAt": 1788014336515,
1081 1088 "promptEn": "captain's cabin on the Black Pearl, surrounded by pirates, negotiation could turn into an execution",
1082   - "lastPlayedAt": 1788229974700
  1089 + "lastPlayedAt": 1788232214325
1083 1090 },
1084 1091 {
1085 1092 "id": "eae105ee1204",
... ... @@ -1124,7 +1131,7 @@
1124 1131 "likes": 0,
1125 1132 "createdAt": 1788013634333,
1126 1133 "promptEn": "glass bridge game, held the goal but paid a price",
1127   - "lastPlayedAt": 1788230553180
  1134 + "lastPlayedAt": 1788232940812
1128 1135 },
1129 1136 {
1130 1137 "id": "5b8ef21616d4",
... ... @@ -1154,7 +1161,7 @@
1154 1161 "likes": 0,
1155 1162 "createdAt": 1788013393463,
1156 1163 "promptEn": "guessed wrong in a survival game, got countered",
1157   - "lastPlayedAt": 1788231325030
  1164 + "lastPlayedAt": 1788233653115
1158 1165 },
1159 1166 {
1160 1167 "id": "7880a91928c6",
... ... @@ -1184,7 +1191,7 @@
1184 1191 "likes": 0,
1185 1192 "createdAt": 1788012917294,
1186 1193 "promptEn": "standing on the glass bridge, facing off with player 101",
1187   - "lastPlayedAt": 1788231857559
  1194 + "lastPlayedAt": 1788233130898
1188 1195 },
1189 1196 {
1190 1197 "id": "8f23de61904f",
... ... @@ -1199,7 +1206,7 @@
1199 1206 "likes": 0,
1200 1207 "createdAt": 1788012917185,
1201 1208 "promptEn": "standing on the glass bridge, facing off with player 101",
1202   - "lastPlayedAt": 1788230499155
  1209 + "lastPlayedAt": 1788233296966
1203 1210 },
1204 1211 {
1205 1212 "id": "bb4a8351d822",
... ... @@ -1229,7 +1236,7 @@
1229 1236 "likes": 0,
1230 1237 "createdAt": 1788012441458,
1231 1238 "promptEn": "facing Vecna, held the goal but paid a price",
1232   - "lastPlayedAt": 1788229328118
  1239 + "lastPlayedAt": 1788232483825
1233 1240 },
1234 1241 {
1235 1242 "id": "691c2f679759",
... ... @@ -1244,7 +1251,7 @@
1244 1251 "likes": 0,
1245 1252 "createdAt": 1788012202802,
1246 1253 "promptEn": "facing Vecna, went in head-on and got seen through",
1247   - "lastPlayedAt": 1788229868603
  1254 + "lastPlayedAt": 1788232320378
1248 1255 },
1249 1256 {
1250 1257 "id": "07f957783a09",
... ... @@ -1259,7 +1266,7 @@
1259 1266 "likes": 0,
1260 1267 "createdAt": 1788012202708,
1261 1268 "promptEn": "facing Vecna, went in head-on and got seen through",
1262   - "lastPlayedAt": 1788229526280
  1269 + "lastPlayedAt": 1788232140287
1263 1270 },
1264 1271 {
1265 1272 "id": "40ccb04f76e9",
... ... @@ -1274,7 +1281,7 @@
1274 1281 "likes": 0,
1275 1282 "createdAt": 1788011964828,
1276 1283 "promptEn": "facing Vecna, stayed passive and got cornered",
1277   - "lastPlayedAt": 1788231244985
  1284 + "lastPlayedAt": 1788232971826
1278 1285 },
1279 1286 {
1280 1287 "id": "7161aecafa32",
... ... @@ -1289,7 +1296,7 @@
1289 1296 "likes": 0,
1290 1297 "createdAt": 1788011727444,
1291 1298 "promptEn": "entering Vecna's mental lair, red lightning, twisted space",
1292   - "lastPlayedAt": 1788229422196
  1299 + "lastPlayedAt": 1788232338391
1293 1300 },
1294 1301 {
1295 1302 "id": "6a9af7e7368d",
... ... @@ -1304,7 +1311,7 @@
1304 1311 "likes": 0,
1305 1312 "createdAt": 1788011488775,
1306 1313 "promptEn": "graveyard standoff, exploiting a flaw to counter Voldemort",
1307   - "lastPlayedAt": 1788231475161
  1314 + "lastPlayedAt": 1788233272950
1308 1315 },
1309 1316 {
1310 1317 "id": "24845be71ea0",
... ... @@ -1364,7 +1371,7 @@
1364 1371 "likes": 0,
1365 1372 "createdAt": 1788010775613,
1366 1373 "promptEn": "facing Voldemort, stayed passive and got cornered",
1367   - "lastPlayedAt": 1788231152947
  1374 + "lastPlayedAt": 1788233344985
1368 1375 },
1369 1376 {
1370 1377 "id": "795842efa4a1",
... ... @@ -1379,7 +1386,7 @@
1379 1386 "likes": 0,
1380 1387 "createdAt": 1788010537514,
1381 1388 "promptEn": "the triwizard cup teleports you to the graveyard, Voldemort's revival just finished",
1382   - "lastPlayedAt": 1788231833542
  1389 + "lastPlayedAt": 1788233095826
1383 1390 },
1384 1391 {
1385 1392 "id": "6ed9eaf4fa1d",
... ... @@ -1394,7 +1401,7 @@
1394 1401 "likes": 0,
1395 1402 "createdAt": 1788010299688,
1396 1403 "promptEn": "facing Thanos, exploiting a flaw to counter him",
1397   - "lastPlayedAt": 1788227224310
  1404 + "lastPlayedAt": 1788232151824
1398 1405 },
1399 1406 {
1400 1407 "id": "469294a4ed09",
... ... @@ -1409,7 +1416,7 @@
1409 1416 "likes": 0,
1410 1417 "createdAt": 1788010062535,
1411 1418 "promptEn": "facing Thanos, held the goal but paid a price",
1412   - "lastPlayedAt": 1788229812550
  1419 + "lastPlayedAt": 1788233166915
1413 1420 },
1414 1421 {
1415 1422 "id": "324b84ebc607",
... ... @@ -1424,7 +1431,7 @@
1424 1431 "likes": 0,
1425 1432 "createdAt": 1788009825082,
1426 1433 "promptEn": "facing Thanos, went in head-on and got seen through",
1427   - "lastPlayedAt": 1788231935635
  1434 + "lastPlayedAt": 1788233391003
1428 1435 },
1429 1436 {
1430 1437 "id": "a6ead2cbe03f",
... ... @@ -1439,7 +1446,7 @@
1439 1446 "likes": 0,
1440 1447 "createdAt": 1788009586293,
1441 1448 "promptEn": "facing Thanos, stayed passive and got cornered",
1442   - "lastPlayedAt": 1788230547181
  1449 + "lastPlayedAt": 1788233681128
1443 1450 },
1444 1451 {
1445 1452 "id": "438c98cf4973",
... ... @@ -1484,7 +1491,7 @@
1484 1491 "likes": 0,
1485 1492 "createdAt": 1788008870118,
1486 1493 "promptEn": "facing the Eternity Devil, held the goal but paid a price",
1487   - "lastPlayedAt": 1788231347045
  1494 + "lastPlayedAt": 1788232976830
1488 1495 },
1489 1496 {
1490 1497 "id": "35833c2cabb9",
... ... @@ -1499,7 +1506,7 @@
1499 1506 "likes": 0,
1500 1507 "createdAt": 1788008632603,
1501 1508 "promptEn": "facing the Eternity Devil, went in head-on and got seen through",
1502   - "lastPlayedAt": 1788230503160
  1509 + "lastPlayedAt": 1788233795940
1503 1510 },
1504 1511 {
1505 1512 "id": "361c80537652",
... ... @@ -1544,7 +1551,7 @@
1544 1551 "likes": 0,
1545 1552 "createdAt": 1788007915610,
1546 1553 "promptEn": "in the ruined city, exploiting a flaw to counter Tomura",
1547   - "lastPlayedAt": 1788231675388
  1554 + "lastPlayedAt": 1788233841207
1548 1555 },
1549 1556 {
1550 1557 "id": "f67685cd6862",
... ... @@ -1574,7 +1581,7 @@
1574 1581 "likes": 0,
1575 1582 "createdAt": 1788007441156,
1576 1583 "promptEn": "battlefield in Jaku city, the city in ruins, heroes in crisis",
1577   - "lastPlayedAt": 1788229964691
  1584 + "lastPlayedAt": 1788232272360
1578 1585 },
1579 1586 {
1580 1587 "id": "68219d6b68c8",
... ... @@ -1604,7 +1611,7 @@
1604 1611 "likes": 0,
1605 1612 "createdAt": 1788006964122,
1606 1613 "promptEn": "grabbing an evidence flaw to counter L",
1607   - "lastPlayedAt": 1788230958856
  1614 + "lastPlayedAt": 1788232774691
1608 1615 },
1609 1616 {
1610 1617 "id": "0c6306b07f79",
... ... @@ -1619,7 +1626,7 @@
1619 1626 "likes": 0,
1620 1627 "createdAt": 1788006725887,
1621 1628 "promptEn": "facing off with L, went in head-on and got seen through",
1622   - "lastPlayedAt": 1788230004724
  1629 + "lastPlayedAt": 1788233326977
1623 1630 },
1624 1631 {
1625 1632 "id": "ee82188227fa",
... ... @@ -1634,7 +1641,7 @@
1634 1641 "likes": 0,
1635 1642 "createdAt": 1788006252918,
1636 1643 "promptEn": "facing L, stayed passive and the evidence pressure maxed out",
1637   - "lastPlayedAt": 1788231767479
  1644 + "lastPlayedAt": 1788233354985
1638 1645 },
1639 1646 {
1640 1647 "id": "0e28a7fecf03",
... ... @@ -1664,7 +1671,7 @@
1664 1671 "likes": 0,
1665 1672 "createdAt": 1788006015175,
1666 1673 "promptEn": "on the ruined planet, exploiting a flaw to counter Frieza",
1667   - "lastPlayedAt": 1788231851556
  1674 + "lastPlayedAt": 1788233190924
1668 1675 },
1669 1676 {
1670 1677 "id": "e6fda5c2237d",
... ... @@ -1679,7 +1686,7 @@
1679 1686 "likes": 0,
1680 1687 "createdAt": 1788005778588,
1681 1688 "promptEn": "facing Frieza, held the goal but paid a price",
1682   - "lastPlayedAt": 1788230317009
  1689 + "lastPlayedAt": 1788233701138
1683 1690 },
1684 1691 {
1685 1692 "id": "b96cc9762cf6",
... ... @@ -1694,7 +1701,7 @@
1694 1701 "likes": 0,
1695 1702 "createdAt": 1788005541640,
1696 1703 "promptEn": "facing Frieza, went in head-on and got seen through",
1697   - "lastPlayedAt": 1788230038755
  1704 + "lastPlayedAt": 1788233775938
1698 1705 },
1699 1706 {
1700 1707 "id": "574b47b00316",
... ... @@ -1709,7 +1716,7 @@
1709 1716 "likes": 0,
1710 1717 "createdAt": 1788005305091,
1711 1718 "promptEn": "facing Frieza, stayed passive and got cornered",
1712   - "lastPlayedAt": 1788229756501
  1719 + "lastPlayedAt": 1788232546520
1713 1720 },
1714 1721 {
1715 1722 "id": "d680e111ade5",
... ... @@ -1769,7 +1776,7 @@
1769 1776 "likes": 0,
1770 1777 "createdAt": 1788004353928,
1771 1778 "promptEn": "facing Mahito, went in head-on and got seen through",
1772   - "lastPlayedAt": 1788229212015
  1779 + "lastPlayedAt": 1788232310379
1773 1780 },
1774 1781 {
1775 1782 "id": "971d80ec087c",
... ... @@ -1799,7 +1806,7 @@
1799 1806 "likes": 0,
1800 1807 "createdAt": 1788004115612,
1801 1808 "promptEn": "facing Mahito, stayed passive and got cornered",
1802   - "lastPlayedAt": 1788230230933
  1809 + "lastPlayedAt": 1788232315826
1803 1810 },
1804 1811 {
1805 1812 "id": "f4a2870386c6",
... ... @@ -1844,7 +1851,7 @@
1844 1851 "likes": 0,
1845 1852 "createdAt": 1788003402559,
1846 1853 "promptEn": "facing Enmu, went in head-on and got seen through",
1847   - "lastPlayedAt": 1788231923623
  1854 + "lastPlayedAt": 1788233214933
1848 1855 },
1849 1856 {
1850 1857 "id": "5c0f1663f4ae",
... ... @@ -1859,7 +1866,7 @@
1859 1866 "likes": 0,
1860 1867 "createdAt": 1788003166117,
1861 1868 "promptEn": "facing Enmu, stayed passive and got cornered",
1862   - "lastPlayedAt": 1788229666421
  1869 + "lastPlayedAt": 1788232239825
1863 1870 },
1864 1871 {
1865 1872 "id": "a3f39da74c1f",
... ... @@ -1874,7 +1881,7 @@
1874 1881 "likes": 0,
1875 1882 "createdAt": 1788002929455,
1876 1883 "promptEn": "facing Reiner, exploiting a flaw to counter him",
1877   - "lastPlayedAt": 1788231277004
  1884 + "lastPlayedAt": 1788233194926
1878 1885 },
1879 1886 {
1880 1887 "id": "ea8b38014674",
... ... @@ -1934,7 +1941,7 @@
1934 1941 "likes": 0,
1935 1942 "createdAt": 1788001981272,
1936 1943 "promptEn": "basement in Shiganshina, the titan secret weighing down on you",
1937   - "lastPlayedAt": 1788229884621
  1944 + "lastPlayedAt": 1788233150908
1938 1945 },
1939 1946 {
1940 1947 "id": "7c2351a27a96",
... ... @@ -2039,7 +2046,7 @@
2039 2046 "likes": 0,
2040 2047 "createdAt": 1788000341927,
2041 2048 "promptEn": "Konoha destroyed by Shinra Tensei, Pain declaring order in the ruins",
2042   - "lastPlayedAt": 1788232135825
  2049 + "lastPlayedAt": 1788233757171
2043 2050 },
2044 2051 {
2045 2052 "id": "e245dbcc6d36",
... ... @@ -2054,7 +2061,7 @@
2054 2061 "likes": 0,
2055 2062 "createdAt": 1788000105889,
2056 2063 "promptEn": "facing Sakazuki, exploiting a flaw to counter him",
2057   - "lastPlayedAt": 1788230637189
  2064 + "lastPlayedAt": 1788232794712
2058 2065 },
2059 2066 {
2060 2067 "id": "c9be7c07b793",
... ... @@ -2084,7 +2091,7 @@
2084 2091 "likes": 0,
2085 2092 "createdAt": 1787999633745,
2086 2093 "promptEn": "facing Sakazuki, went in head-on and got seen through",
2087   - "lastPlayedAt": 1788229436206
  2094 + "lastPlayedAt": 1788232798715
2088 2095 },
2089 2096 {
2090 2097 "id": "932d15f7f8bd",
... ... @@ -2099,7 +2106,7 @@
2099 2106 "likes": 0,
2100 2107 "createdAt": 1787999633670,
2101 2108 "promptEn": "facing Sakazuki, went in head-on and got seen through",
2102   - "lastPlayedAt": 1788230567191
  2109 + "lastPlayedAt": 1788232700636
2103 2110 },
2104 2111 {
2105 2112 "id": "a8b8b4430ee3",
... ... @@ -2129,7 +2136,7 @@
2129 2136 "likes": 0,
2130 2137 "createdAt": 1787999161013,
2131 2138 "promptEn": "execution platform at Marineford, Ace about to be executed, navy vs pirates",
2132   - "lastPlayedAt": 1788231641354
  2139 + "lastPlayedAt": 1788233208928
2133 2140 },
2134 2141 {
2135 2142 "id": "00476b62bf75",
... ... @@ -2144,7 +2151,7 @@
2144 2151 "likes": 0,
2145 2152 "createdAt": 1787903583872,
2146 2153 "promptEn": "constable asks if she's always been alone here, she doesn't answer",
2147   - "lastPlayedAt": 1788229484239
  2154 + "lastPlayedAt": 1788232243824
2148 2155 },
2149 2156 {
2150 2157 "id": "2ab2094e5679",
... ... @@ -2189,7 +2196,7 @@
2189 2196 "likes": 0,
2190 2197 "createdAt": 1787847447661,
2191 2198 "promptEn": "constable tells the woman behind the screen he'll trust her tonight",
2192   - "lastPlayedAt": 1788229702455
  2199 + "lastPlayedAt": 1788232414433
2193 2200 },
2194 2201 {
2195 2202 "id": "8cb493338cb3",
... ... @@ -2204,7 +2211,7 @@
2204 2211 "likes": 0,
2205 2212 "createdAt": 1787831362083,
2206 2213 "promptEn": "constable promises to get her out safely if she trusts him",
2207   - "lastPlayedAt": 1788229242044
  2214 + "lastPlayedAt": 1788233483044
2208 2215 },
2209 2216 {
2210 2217 "id": "5ede61c01b22",
... ... @@ -2219,7 +2226,7 @@
2219 2226 "likes": 0,
2220 2227 "createdAt": 1787762342686,
2221 2228 "promptEn": "woman tells him from behind the screen to go check outside, he steps out warily",
2222   - "lastPlayedAt": 1788231459144
  2229 + "lastPlayedAt": 1788233421018
2223 2230 },
2224 2231 {
2225 2232 "id": "47a6de809c61",
... ... @@ -2249,7 +2256,7 @@
2249 2256 "likes": 0,
2250 2257 "createdAt": 1787762311804,
2251 2258 "promptEn": "constable sits with a cup of water, slowly looking up at the woman behind the screen",
2252   - "lastPlayedAt": 1788229344126
  2259 + "lastPlayedAt": 1788232819824
2253 2260 },
2254 2261 {
2255 2262 "id": "850f13881576",
... ... @@ -2279,7 +2286,7 @@
2279 2286 "likes": 0,
2280 2287 "createdAt": 1787762224218,
2281 2288 "promptEn": "constable stands under the lamp, holding her gaze through the screen, not backing away",
2282   - "lastPlayedAt": 1788229798537
  2289 + "lastPlayedAt": 1788232250345
2283 2290 },
2284 2291 {
2285 2292 "id": "f2e70205766b",
... ... @@ -2294,7 +2301,7 @@
2294 2301 "likes": 0,
2295 2302 "createdAt": 1787738044140,
2296 2303 "promptEn": "constable carefully checks the door and window latches, she watches from behind the screen",
2297   - "lastPlayedAt": 1788231645359
  2304 + "lastPlayedAt": 1788233721152
2298 2305 },
2299 2306 {
2300 2307 "id": "cfbef6e37ae4",
... ... @@ -2309,7 +2316,7 @@
2309 2316 "likes": 0,
2310 2317 "createdAt": 1787730413689,
2311 2318 "promptEn": "constable grabs the oil lamp and hurls it at the portrait, the scroll catches fire",
2312   - "lastPlayedAt": 1788229716468
  2319 + "lastPlayedAt": 1788233781184
2313 2320 },
2314 2321 {
2315 2322 "id": "e6c23c6adc42",
... ... @@ -2324,7 +2331,7 @@
2324 2331 "likes": 0,
2325 2332 "createdAt": 1787730331754,
2326 2333 "promptEn": "constable steps in from the rainy night, spots her, introduces himself with a cover story",
2327   - "lastPlayedAt": 1788230457136
  2334 + "lastPlayedAt": 1788232642592
2328 2335 },
2329 2336 {
2330 2337 "id": "d720d52c783f",
... ... @@ -2339,7 +2346,7 @@
2339 2346 "likes": 0,
2340 2347 "createdAt": 1787730331663,
2341 2348 "promptEn": "constable steps in from the rainy night, spots her, introduces himself with a cover story",
2342   - "lastPlayedAt": 1788231136940
  2349 + "lastPlayedAt": 1788232982830
2343 2350 },
2344 2351 {
2345 2352 "id": "84e8337de242",
... ... @@ -2354,7 +2361,7 @@
2354 2361 "likes": 0,
2355 2362 "createdAt": 1787724313620,
2356 2363 "promptEn": "first-person view bursting into the room, glancing back in fear, the woman startled",
2357   - "lastPlayedAt": 1788230399085
  2364 + "lastPlayedAt": 1788232846754
2358 2365 },
2359 2366 {
2360 2367 "id": "81b6c3789111",
... ... @@ -2384,7 +2391,7 @@
2384 2391 "likes": 0,
2385 2392 "createdAt": 1787708701547,
2386 2393 "promptEn": "constable gently tells her he'll stay and keep her company",
2387   - "lastPlayedAt": 1788230216919
  2394 + "lastPlayedAt": 1788232778701
2388 2395 },
2389 2396 {
2390 2397 "id": "8d9c1dad041f",
... ... @@ -2474,7 +2481,7 @@
2474 2481 "likes": 0,
2475 2482 "createdAt": 1787708648409,
2476 2483 "promptEn": "she reaches a hand through the screen gap beckoning him, he steps back and firmly refuses",
2477   - "lastPlayedAt": 1788228743615
  2484 + "lastPlayedAt": 1788232290370
2478 2485 },
2479 2486 {
2480 2487 "id": "3f0c28f5373a",
... ... @@ -2519,7 +2526,7 @@
2519 2526 "likes": 0,
2520 2527 "createdAt": 1787708626228,
2521 2528 "promptEn": "constable drinks some water first, thanks her, watching the screen warily as he drinks",
2522   - "lastPlayedAt": 1788230272970
  2529 + "lastPlayedAt": 1788232223822
2523 2530 },
2524 2531 {
2525 2532 "id": "e08f7f7e54dd",
... ... @@ -2579,7 +2586,7 @@
2579 2586 "likes": 0,
2580 2587 "createdAt": 1787708613364,
2581 2588 "promptEn": "constable steps in, notices her behind the screen, greets her, she just watches silently",
2582   - "lastPlayedAt": 1788228987819
  2589 + "lastPlayedAt": 1788232155826
2583 2590 },
2584 2591 {
2585 2592 "id": "a5d5d353bbf8",
... ... @@ -2609,7 +2616,7 @@
2609 2616 "likes": 0,
2610 2617 "createdAt": 1787674743188,
2611 2618 "promptEn": "constable draws his sword and breaks the sealed talisman on the screen, revealing her behind it",
2612   - "lastPlayedAt": 1788230333021
  2619 + "lastPlayedAt": 1788233395001
2613 2620 },
2614 2621 {
2615 2622 "id": "693e0b9ca66a",
... ... @@ -2639,7 +2646,7 @@
2639 2646 "likes": 0,
2640 2647 "createdAt": 1787674716075,
2641 2648 "promptEn": "constable watches the oil lamp flame flicker, her silhouette motionless behind the screen",
2642   - "lastPlayedAt": 1788230607195
  2649 + "lastPlayedAt": 1788232920805
2643 2650 },
2644 2651 {
2645 2652 "id": "23d1ae1982e6",
... ... @@ -2654,7 +2661,7 @@
2654 2661 "likes": 0,
2655 2662 "createdAt": 1787674713724,
2656 2663 "promptEn": "constable enters and cautiously looks around, his gaze settling on her silhouette behind the screen",
2657   - "lastPlayedAt": 1788230473148
  2664 + "lastPlayedAt": 1788233370997
2658 2665 },
2659 2666 {
2660 2667 "id": "b69389094416",
... ... @@ -2684,7 +2691,7 @@
2684 2691 "likes": 0,
2685 2692 "createdAt": 1787674688717,
2686 2693 "promptEn": "constable agrees to stay, lets his guard down, she gives a barely-there nod",
2687   - "lastPlayedAt": 1788231977675
  2694 + "lastPlayedAt": 1788233705137
2688 2695 },
2689 2696 {
2690 2697 "id": "4874fe3fdbc9",
... ... @@ -2729,7 +2736,7 @@
2729 2736 "likes": 0,
2730 2737 "createdAt": 1787674642026,
2731 2738 "promptEn": "constable enters from the side and sits down on a stool by the lamp to rest",
2732   - "lastPlayedAt": 1788232065714
  2739 + "lastPlayedAt": 1788233801194
2733 2740 },
2734 2741 {
2735 2742 "id": "fe7ffbe65653",
... ... @@ -2744,7 +2751,7 @@
2744 2751 "likes": 0,
2745 2752 "createdAt": 1787674639055,
2746 2753 "promptEn": "constable checks his reflection in the mirror, sees her behind his shoulder in it, turns around to find the screen empty",
2747   - "lastPlayedAt": 1788231811519
  2754 + "lastPlayedAt": 1788233761172
2748 2755 },
2749 2756 {
2750 2757 "id": "ebaf0dde3d9f",
... ... @@ -2774,7 +2781,7 @@
2774 2781 "likes": 0,
2775 2782 "createdAt": 1787674609636,
2776 2783 "promptEn": "constable silently watches her through the screen gaps, camera slowly zooming in on her face",
2777   - "lastPlayedAt": 1788229580327
  2784 + "lastPlayedAt": 1788233276957
2778 2785 },
2779 2786 {
2780 2787 "id": "5e53f7f5fe9b",
... ... @@ -2789,7 +2796,7 @@
2789 2796 "likes": 0,
2790 2797 "createdAt": 1787674446841,
2791 2798 "promptEn": "player panics into the room, glances back, out of breath, says something's chasing him outside",
2792   - "lastPlayedAt": 1788229914648
  2799 + "lastPlayedAt": 1788232872779
2793 2800 },
2794 2801 {
2795 2802 "id": "c25d53a5e086",
... ... @@ -2819,7 +2826,7 @@
2819 2826 "likes": 0,
2820 2827 "createdAt": 1787674361187,
2821 2828 "promptEn": "constable presses his hand to his chest, vowing his heart to her, she gives a knowing smile",
2822   - "lastPlayedAt": 1788230373062
  2829 + "lastPlayedAt": 1788233038859
2823 2830 },
2824 2831 {
2825 2832 "id": "8aba0a6bf05b",
... ... @@ -2834,7 +2841,7 @@
2834 2841 "likes": 0,
2835 2842 "createdAt": 1787674351536,
2836 2843 "promptEn": "constable searches an old house at night, candle flickering, woman hiding behind the screen",
2837   - "lastPlayedAt": 1788229506260
  2844 + "lastPlayedAt": 1788232892795
2838 2845 },
2839 2846 {
2840 2847 "id": "dc13e4f165dc",
... ... @@ -2849,7 +2856,7 @@
2849 2856 "likes": 0,
2850 2857 "createdAt": 1787672849330,
2851 2858 "promptEn": "constable cautiously follows her silent gesture, hand near his sword, tracking her movement",
2852   - "lastPlayedAt": 1788231224982
  2859 + "lastPlayedAt": 1788232675826
2853 2860 },
2854 2861 {
2855 2862 "id": "feb4df69e1a2",
... ... @@ -2877,7 +2884,7 @@
2877 2884 "partition": "ref2va",
2878 2885 "likes": 0,
2879 2886 "createdAt": 1787652321725,
2880   - "lastPlayedAt": 1788230792784,
  2887 + "lastPlayedAt": 1788232862770,
2881 2888 "promptEn": "constable talking to the woman through the screen"
2882 2889 },
2883 2890 {
... ... @@ -2921,7 +2928,7 @@
2921 2928 "partition": "ref2va",
2922 2929 "likes": 0,
2923 2930 "createdAt": 1787639957338,
2924   - "lastPlayedAt": 1788231132936,
  2931 + "lastPlayedAt": 1788232935826,
2925 2932 "promptEn": "constable talking to the woman through the screen"
2926 2933 },
2927 2934 {
... ... @@ -2936,7 +2943,8 @@
2936 2943 "partition": "ref2va",
2937 2944 "likes": 0,
2938 2945 "createdAt": 1787637292741,
2939   - "promptEn": "constable bursts in panicked, spots the woman behind the screen"
  2946 + "promptEn": "constable bursts in panicked, spots the woman behind the screen",
  2947 + "lastPlayedAt": 1788233080873
2940 2948 },
2941 2949 {
2942 2950 "id": "93c2b84a2a10",
... ... @@ -2965,7 +2973,7 @@
2965 2973 "likes": 0,
2966 2974 "createdAt": 1787632587351,
2967 2975 "promptEn": "constable bursts in panicked, spots the woman behind the screen",
2968   - "lastPlayedAt": 1788231403091
  2976 + "lastPlayedAt": 1788232814731
2969 2977 },
2970 2978 {
2971 2979 "id": "282281777d1b",
... ... @@ -2993,7 +3001,8 @@
2993 3001 "partition": "ref2va",
2994 3002 "likes": 0,
2995 3003 "createdAt": 1787615242602,
2996   - "promptEn": "otome game male lead showcase PV"
  3004 + "promptEn": "otome game male lead showcase PV",
  3005 + "lastPlayedAt": 1788233659118
2997 3006 },
2998 3007 {
2999 3008 "id": "423a20afba5a",
... ... @@ -3021,7 +3030,8 @@
3021 3030 "partition": "text",
3022 3031 "likes": 0,
3023 3032 "createdAt": 1787615240988,
3024   - "promptEn": "clay fox sprints off a cliff, slow-mo leap over the canyon"
  3033 + "promptEn": "clay fox sprints off a cliff, slow-mo leap over the canyon",
  3034 + "lastPlayedAt": 1788232611825
3025 3035 },
3026 3036 {
3027 3037 "id": "db125dc6a831",
... ... @@ -3094,7 +3104,8 @@
3094 3104 "partition": "ref2va",
3095 3105 "likes": 0,
3096 3106 "createdAt": 1787588544667,
3097   - "promptEn": "white studio shoot, two models wearing futuristic glasses"
  3107 + "promptEn": "white studio shoot, two models wearing futuristic glasses",
  3108 + "lastPlayedAt": 1788232326384
3098 3109 },
3099 3110 {
3100 3111 "id": "71a4d093aebc",
... ... @@ -3123,7 +3134,7 @@
3123 3134 "likes": 0,
3124 3135 "createdAt": 1787588543551,
3125 3136 "promptEn": "MiniMax H3 tech brand film, blue waveform logo",
3126   - "lastPlayedAt": 1788231250989
  3137 + "lastPlayedAt": 1788232834747
3127 3138 },
3128 3139 {
3129 3140 "id": "81711242178d",
... ... @@ -3152,7 +3163,8 @@
3152 3163 "partition": "ref2va",
3153 3164 "likes": 0,
3154 3165 "createdAt": 1787588542426,
3155   - "promptEn": "fashion guy in sunglasses and coat by a fire"
  3166 + "promptEn": "fashion guy in sunglasses and coat by a fire",
  3167 + "lastPlayedAt": 1788233623102
3156 3168 },
3157 3169 {
3158 3170 "id": "c1237b599bf4",
... ... @@ -3166,7 +3178,8 @@
3166 3178 "partition": "ref2va",
3167 3179 "likes": 0,
3168 3180 "createdAt": 1787588541726,
3169   - "promptEn": "woman opens the trunk on a desert road, takes out a bag"
  3181 + "promptEn": "woman opens the trunk on a desert road, takes out a bag",
  3182 + "lastPlayedAt": 1788233067825
3170 3183 },
3171 3184 {
3172 3185 "id": "97846542ab09",
... ... @@ -3180,7 +3193,8 @@
3180 3193 "partition": "ref2va",
3181 3194 "likes": 0,
3182 3195 "createdAt": 1787588541164,
3183   - "promptEn": "tiny silhouette before a huge cosmic gate, title fades in"
  3196 + "promptEn": "tiny silhouette before a huge cosmic gate, title fades in",
  3197 + "lastPlayedAt": 1788233689134
3184 3198 },
3185 3199 {
3186 3200 "id": "5cc09dcdf470",
... ... @@ -3195,7 +3209,7 @@
3195 3209 "likes": 0,
3196 3210 "createdAt": 1787588540642,
3197 3211 "promptEn": "telescope view searching for a MiniMax device, fashionable passerby",
3198   - "lastPlayedAt": 1788231301012
  3212 + "lastPlayedAt": 1788232740670
3199 3213 },
3200 3214 {
3201 3215 "id": "a59cae01ec39",
... ... @@ -3224,7 +3238,8 @@
3224 3238 "partition": "ref2va",
3225 3239 "likes": 0,
3226 3240 "createdAt": 1787588114381,
3227   - "promptEn": "underground rap duo freestyling at the camera"
  3241 + "promptEn": "underground rap duo freestyling at the camera",
  3242 + "lastPlayedAt": 1788232182310
3228 3243 },
3229 3244 {
3230 3245 "id": "58a439a93c02",
... ... @@ -3238,7 +3253,8 @@
3238 3253 "partition": "text",
3239 3254 "likes": 0,
3240 3255 "createdAt": 1787577878370,
3241   - "promptEn": "man barges into the old house apologizing, woman in white behind the screen"
  3256 + "promptEn": "man barges into the old house apologizing, woman in white behind the screen",
  3257 + "lastPlayedAt": 1788232887827
3242 3258 },
3243 3259 {
3244 3260 "id": "0e75ef71c3d0",
... ... @@ -3252,7 +3268,8 @@
3252 3268 "partition": "fl2va",
3253 3269 "likes": 0,
3254 3270 "createdAt": 1787577088842,
3255   - "promptEn": "man thanks the woman for taking him in, behind the screen"
  3271 + "promptEn": "man thanks the woman for taking him in, behind the screen",
  3272 + "lastPlayedAt": 1788232866775
3256 3273 },
3257 3274 {
3258 3275 "id": "e656777b6eef",
... ... @@ -3280,7 +3297,8 @@
3280 3297 "partition": "fl2va",
3281 3298 "likes": 0,
3282 3299 "createdAt": 1787576943673,
3283   - "promptEn": "man lowers his voice like she said, checks the door, window and lamp"
  3300 + "promptEn": "man lowers his voice like she said, checks the door, window and lamp",
  3301 + "lastPlayedAt": 1788232408430
3284 3302 },
3285 3303 {
3286 3304 "id": "396de15c1439",
... ... @@ -3295,7 +3313,7 @@
3295 3313 "likes": 0,
3296 3314 "createdAt": 1787576943608,
3297 3315 "promptEn": "man lowers his voice like she said, checks the door, window and lamp",
3298   - "lastPlayedAt": 1788231993684
  3316 + "lastPlayedAt": 1788233675127
3299 3317 },
3300 3318 {
3301 3319 "id": "cde82791f726",
... ... @@ -3338,7 +3356,7 @@
3338 3356 "partition": "text",
3339 3357 "likes": 0,
3340 3358 "createdAt": 1787576506447,
3341   - "lastPlayedAt": 1788230798785,
  3359 + "lastPlayedAt": 1788232658608,
3342 3360 "promptEn": "man does as she says but stays on guard"
3343 3361 },
3344 3362 {
... ... @@ -3369,7 +3387,7 @@
3369 3387 "likes": 0,
3370 3388 "createdAt": 1787576013870,
3371 3389 "promptEn": "man apologizes, says something outside was chasing him",
3372   - "lastPlayedAt": 1788231271001
  3390 + "lastPlayedAt": 1788232670613
3373 3391 },
3374 3392 {
3375 3393 "id": "7d425d2d35fb",
... ... @@ -3383,7 +3401,8 @@
3383 3401 "partition": "text",
3384 3402 "likes": 0,
3385 3403 "createdAt": 1787575790848,
3386   - "promptEn": "man apologizes, says something outside was chasing him"
  3404 + "promptEn": "man apologizes, says something outside was chasing him",
  3405 + "lastPlayedAt": 1788232526503
3387 3406 },
3388 3407 {
3389 3408 "id": "5e6dcf2c8cfd",
... ... @@ -3397,7 +3416,8 @@
3397 3416 "partition": "fl2va",
3398 3417 "likes": 0,
3399 3418 "createdAt": 1787575164928,
3400   - "promptEn": "man apologizes, says something outside was chasing him"
  3419 + "promptEn": "man apologizes, says something outside was chasing him",
  3420 + "lastPlayedAt": 1788233417016
3401 3421 },
3402 3422 {
3403 3423 "id": "250fad90393c",
... ... @@ -3411,7 +3431,8 @@
3411 3431 "partition": "text",
3412 3432 "likes": 0,
3413 3433 "createdAt": 1787575164766,
3414   - "promptEn": "man apologizes, says something outside was chasing him"
  3434 + "promptEn": "man apologizes, says something outside was chasing him",
  3435 + "lastPlayedAt": 1788233171823
3415 3436 },
3416 3437 {
3417 3438 "id": "fb3000701384",
... ... @@ -3440,7 +3461,8 @@
3440 3461 "partition": "text",
3441 3462 "likes": 0,
3442 3463 "createdAt": 1787569314178,
3443   - "promptEn": "man apologizes, says something outside was chasing him"
  3464 + "promptEn": "man apologizes, says something outside was chasing him",
  3465 + "lastPlayedAt": 1788232479825
3444 3466 },
3445 3467 {
3446 3468 "id": "a0d7a106b8d6",
... ... @@ -3454,7 +3476,7 @@
3454 3476 "partition": "text",
3455 3477 "likes": 0,
3456 3478 "createdAt": 1787568512602,
3457   - "lastPlayedAt": 1788230834798,
  3479 + "lastPlayedAt": 1788233062862,
3458 3480 "promptEn": "man apologizes, says something outside was chasing him"
3459 3481 },
3460 3482 {
... ... @@ -3498,7 +3520,8 @@
3498 3520 "partition": "ref2va",
3499 3521 "likes": 0,
3500 3522 "createdAt": 1787497396594,
3501   - "promptEn": "otome game male lead showcase PV"
  3523 + "promptEn": "otome game male lead showcase PV",
  3524 + "lastPlayedAt": 1788232490471
3502 3525 },
3503 3526 {
3504 3527 "id": "36ac12f2f29e",
... ... @@ -3540,7 +3563,8 @@
3540 3563 "partition": "text",
3541 3564 "likes": 0,
3542 3565 "createdAt": 1787470101960,
3543   - "promptEn": "cute hand-drawn beagle dog making faces, game screen"
  3566 + "promptEn": "cute hand-drawn beagle dog making faces, game screen",
  3567 + "lastPlayedAt": 1788232202318
3544 3568 },
3545 3569 {
3546 3570 "id": "4067993ff824",
... ... @@ -3555,7 +3579,7 @@
3555 3579 "likes": 0,
3556 3580 "createdAt": 1787470101693,
3557 3581 "promptEn": "black-background product-launch style shot of a roast duck",
3558   - "lastPlayedAt": 1788232095735
  3582 + "lastPlayedAt": 1788233499050
3559 3583 },
3560 3584 {
3561 3585 "id": "99e771bbb50d",
... ... @@ -3599,7 +3623,7 @@
3599 3623 "likes": 0,
3600 3624 "createdAt": 1787470100377,
3601 3625 "promptEn": "all-black background, experimental Chinese kinetic typography",
3602   - "lastPlayedAt": 1788231839546
  3626 + "lastPlayedAt": 1788233176921
3603 3627 },
3604 3628 {
3605 3629 "id": "c24c15736daa",
... ... @@ -3613,7 +3637,8 @@
3613 3637 "partition": "fl2va",
3614 3638 "likes": 0,
3615 3639 "createdAt": 1787470100107,
3616   - "promptEn": "MiniMax H3 brand motion graphics, a dot growing into a network"
  3640 + "promptEn": "MiniMax H3 brand motion graphics, a dot growing into a network",
  3641 + "lastPlayedAt": 1788233154911
3617 3642 },
3618 3643 {
3619 3644 "id": "194e9bd77da6",
... ... @@ -3627,7 +3652,8 @@
3627 3652 "partition": "text",
3628 3653 "likes": 0,
3629 3654 "createdAt": 1787470100022,
3630   - "promptEn": "MiniMax H3 brand motion graphics, a dot growing into a network"
  3655 + "promptEn": "MiniMax H3 brand motion graphics, a dot growing into a network",
  3656 + "lastPlayedAt": 1788233112891
3631 3657 },
3632 3658 {
3633 3659 "id": "eaf2a1433c41",
... ... @@ -3641,7 +3667,8 @@
3641 3667 "partition": "text",
3642 3668 "likes": 0,
3643 3669 "createdAt": 1787470099635,
3644   - "promptEn": "pointing at things at a beach market, they turn into hand-drawn animation"
  3670 + "promptEn": "pointing at things at a beach market, they turn into hand-drawn animation",
  3671 + "lastPlayedAt": 1788233100885
3645 3672 },
3646 3673 {
3647 3674 "id": "0fe0f2101c44",
... ... @@ -3669,7 +3696,8 @@
3669 3696 "partition": "text",
3670 3697 "likes": 0,
3671 3698 "createdAt": 1787470098914,
3672   - "promptEn": "evening kitchen footage mixed with a glowing hand-drawn creature"
  3699 + "promptEn": "evening kitchen footage mixed with a glowing hand-drawn creature",
  3700 + "lastPlayedAt": 1788232278363
3673 3701 },
3674 3702 {
3675 3703 "id": "6639b07acc7b",
... ... @@ -3683,7 +3711,8 @@
3683 3711 "partition": "text",
3684 3712 "likes": 0,
3685 3713 "createdAt": 1787470098570,
3686   - "promptEn": "fast-cut spaceship trailer title sequence"
  3714 + "promptEn": "fast-cut spaceship trailer title sequence",
  3715 + "lastPlayedAt": 1788233332981
3687 3716 },
3688 3717 {
3689 3718 "id": "1e55e540df11",
... ... @@ -3727,7 +3756,8 @@
3727 3756 "partition": "text",
3728 3757 "likes": 0,
3729 3758 "createdAt": 1787453697093,
3730   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3759 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3760 + "lastPlayedAt": 1788233511073
3731 3761 },
3732 3762 {
3733 3763 "id": "bfe13d1cc4a2",
... ... @@ -3755,7 +3785,8 @@
3755 3785 "partition": "text",
3756 3786 "likes": 0,
3757 3787 "createdAt": 1787450754171,
3758   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3788 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3789 + "lastPlayedAt": 1788232430442
3759 3790 },
3760 3791 {
3761 3792 "id": "fd0183c54763",
... ... @@ -3783,7 +3814,8 @@
3783 3814 "partition": "text",
3784 3815 "likes": 0,
3785 3816 "createdAt": 1787444313690,
3786   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3817 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3818 + "lastPlayedAt": 1788232555823
3787 3819 },
3788 3820 {
3789 3821 "id": "e56962bd770f",
... ... @@ -3797,7 +3829,8 @@
3797 3829 "partition": "text",
3798 3830 "likes": 0,
3799 3831 "createdAt": 1787442174982,
3800   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3832 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3833 + "lastPlayedAt": 1788233641108
3801 3834 },
3802 3835 {
3803 3836 "id": "18105bc2900b",
... ... @@ -3812,7 +3845,7 @@
3812 3845 "likes": 0,
3813 3846 "createdAt": 1787437988124,
3814 3847 "promptEn": "protagonist leaps across rooftops fleeing pursuers",
3815   - "lastPlayedAt": 1788231681390
  3848 + "lastPlayedAt": 1788233437022
3816 3849 },
3817 3850 {
3818 3851 "id": "e497093c79ce",
... ... @@ -3827,7 +3860,7 @@
3827 3860 "likes": 0,
3828 3861 "createdAt": 1787436029475,
3829 3862 "promptEn": "protagonist leaps across rooftops fleeing pursuers",
3830   - "lastPlayedAt": 1788231355049
  3863 + "lastPlayedAt": 1788233236940
3831 3864 },
3832 3865 {
3833 3866 "id": "896859e59dae",
... ... @@ -3841,7 +3874,8 @@
3841 3874 "partition": "text",
3842 3875 "likes": 0,
3843 3876 "createdAt": 1787432295531,
3844   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3877 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3878 + "lastPlayedAt": 1788232582552
3845 3879 },
3846 3880 {
3847 3881 "id": "79368c9cf499",
... ... @@ -3855,7 +3889,8 @@
3855 3889 "partition": "text",
3856 3890 "likes": 0,
3857 3891 "createdAt": 1787428860940,
3858   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3892 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3893 + "lastPlayedAt": 1788232711826
3859 3894 },
3860 3895 {
3861 3896 "id": "dbc7c27b72ba",
... ... @@ -3869,7 +3904,8 @@
3869 3904 "partition": "text",
3870 3905 "likes": 0,
3871 3906 "createdAt": 1787426955312,
3872   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3907 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3908 + "lastPlayedAt": 1788232996834
3873 3909 },
3874 3910 {
3875 3911 "id": "734d28c52670",
... ... @@ -3883,7 +3919,8 @@
3883 3919 "partition": "text",
3884 3920 "likes": 0,
3885 3921 "createdAt": 1787426484939,
3886   - "promptEn": "small boat sailing through a misty forest river"
  3922 + "promptEn": "small boat sailing through a misty forest river",
  3923 + "lastPlayedAt": 1788232264353
3887 3924 },
3888 3925 {
3889 3926 "id": "9fbcf0d87021",
... ... @@ -3912,7 +3949,8 @@
3912 3949 "partition": "text",
3913 3950 "likes": 0,
3914 3951 "createdAt": 1787415067615,
3915   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3952 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3953 + "lastPlayedAt": 1788233819198
3916 3954 },
3917 3955 {
3918 3956 "id": "9bcff387cddf",
... ... @@ -3926,7 +3964,8 @@
3926 3964 "partition": "text",
3927 3965 "likes": 0,
3928 3966 "createdAt": 1787413999418,
3929   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  3967 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  3968 + "lastPlayedAt": 1788232955824
3930 3969 },
3931 3970 {
3932 3971 "id": "ade0318a7a4a",
... ... @@ -3941,7 +3980,7 @@
3941 3980 "likes": 0,
3942 3981 "createdAt": 1787413511959,
3943 3982 "promptEn": "protagonist leaps across rooftops fleeing pursuers",
3944   - "lastPlayedAt": 1788231387081
  3983 + "lastPlayedAt": 1788233218933
3945 3984 },
3946 3985 {
3947 3986 "id": "5d4f40bf0889",
... ... @@ -4012,7 +4051,7 @@
4012 4051 "likes": 0,
4013 4052 "createdAt": 1787388090646,
4014 4053 "promptEn": "a cat sitting on a windowsill",
4015   - "lastPlayedAt": 1788231997686
  4054 + "lastPlayedAt": 1788233511058
4016 4055 },
4017 4056 {
4018 4057 "id": "c551457bc55e",
... ... @@ -4026,7 +4065,7 @@
4026 4065 "partition": "text",
4027 4066 "likes": 0,
4028 4067 "createdAt": 1787386316175,
4029   - "lastPlayedAt": 1788231275004,
  4068 + "lastPlayedAt": 1788232954819,
4030 4069 "promptEn": "a cat sitting on a windowsill"
4031 4070 },
4032 4071 {
... ... @@ -4041,7 +4080,8 @@
4041 4080 "partition": "text",
4042 4081 "likes": 0,
4043 4082 "createdAt": 1787384983124,
4044   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  4083 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  4084 + "lastPlayedAt": 1788233687131
4045 4085 },
4046 4086 {
4047 4087 "id": "7753a046ba79",
... ... @@ -4070,7 +4110,8 @@
4070 4110 "partition": "text",
4071 4111 "likes": 0,
4072 4112 "createdAt": 1787383911831,
4073   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  4113 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  4114 + "lastPlayedAt": 1788232706647
4074 4115 },
4075 4116 {
4076 4117 "id": "9cba879e263d",
... ... @@ -4085,7 +4126,7 @@
4085 4126 "likes": 0,
4086 4127 "createdAt": 1787375413935,
4087 4128 "promptEn": "protagonist leaps across rooftops fleeing pursuers",
4088   - "lastPlayedAt": 1788231661371
  4129 + "lastPlayedAt": 1788233360994
4089 4130 },
4090 4131 {
4091 4132 "id": "10112fb3c1fd",
... ... @@ -4127,7 +4168,8 @@
4127 4168 "partition": "fl2va",
4128 4169 "likes": 0,
4129 4170 "createdAt": 1787375412946,
4130   - "promptEn": "golden portal opens, man in green jacket throws a glowing spear"
  4171 + "promptEn": "golden portal opens, man in green jacket throws a glowing spear",
  4172 + "lastPlayedAt": 1788233815949
4131 4173 },
4132 4174 {
4133 4175 "id": "a72236902363",
... ... @@ -4141,7 +4183,8 @@
4141 4183 "partition": "fl2va",
4142 4184 "likes": 0,
4143 4185 "createdAt": 1787367454249,
4144   - "promptEn": "golden portal opens, man in green jacket throws a glowing spear"
  4186 + "promptEn": "golden portal opens, man in green jacket throws a glowing spear",
  4187 + "lastPlayedAt": 1788232523825
4145 4188 },
4146 4189 {
4147 4190 "id": "c48af2f34e62",
... ... @@ -4169,7 +4212,8 @@
4169 4212 "partition": "fl2va",
4170 4213 "likes": 0,
4171 4214 "createdAt": 1787367453839,
4172   - "promptEn": "golden portal opens, man in green jacket throws a glowing spear"
  4215 + "promptEn": "golden portal opens, man in green jacket throws a glowing spear",
  4216 + "lastPlayedAt": 1788232667826
4173 4217 },
4174 4218 {
4175 4219 "id": "8402adae59dc",
... ... @@ -4183,7 +4227,8 @@
4183 4227 "partition": "text",
4184 4228 "likes": 0,
4185 4229 "createdAt": 1787363956909,
4186   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  4230 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  4231 + "lastPlayedAt": 1788232803824
4187 4232 },
4188 4233 {
4189 4234 "id": "5692965402f5",
... ... @@ -4197,7 +4242,8 @@
4197 4242 "partition": "fl2va",
4198 4243 "likes": 0,
4199 4244 "createdAt": 1787332996051,
4200   - "promptEn": "golden portal opens, man in green jacket throws a glowing spear"
  4245 + "promptEn": "golden portal opens, man in green jacket throws a glowing spear",
  4246 + "lastPlayedAt": 1788232624582
4201 4247 },
4202 4248 {
4203 4249 "id": "bf7d973d02a3",
... ... @@ -4240,7 +4286,8 @@
4240 4286 "partition": "text",
4241 4287 "likes": 0,
4242 4288 "createdAt": 1787326019663,
4243   - "promptEn": "misty Jiangnan old town at dawn, woman walking with an oil-paper umbrella"
  4289 + "promptEn": "misty Jiangnan old town at dawn, woman walking with an oil-paper umbrella",
  4290 + "lastPlayedAt": 1788232570541
4244 4291 },
4245 4292 {
4246 4293 "id": "ab42a6fba515",
... ... @@ -4254,7 +4301,8 @@
4254 4301 "partition": "text",
4255 4302 "likes": 0,
4256 4303 "createdAt": 1787326019290,
4257   - "promptEn": "misty Jiangnan old town at dawn, woman walking with an oil-paper umbrella"
  4304 + "promptEn": "misty Jiangnan old town at dawn, woman walking with an oil-paper umbrella",
  4305 + "lastPlayedAt": 1788232768693
4258 4306 },
4259 4307 {
4260 4308 "id": "fd8534ce588c",
... ... @@ -4268,7 +4316,8 @@
4268 4316 "partition": "text",
4269 4317 "likes": 0,
4270 4318 "createdAt": 1787309864037,
4271   - "promptEn": "transparent gaming mouse product film, blue and orange lighting"
  4319 + "promptEn": "transparent gaming mouse product film, blue and orange lighting",
  4320 + "lastPlayedAt": 1788233134901
4272 4321 },
4273 4322 {
4274 4323 "id": "073f5df6427a",
... ... @@ -4296,7 +4345,8 @@
4296 4345 "partition": "text",
4297 4346 "likes": 0,
4298 4347 "createdAt": 1787304875681,
4299   - "promptEn": "protagonist leaps across rooftops fleeing pursuers"
  4348 + "promptEn": "protagonist leaps across rooftops fleeing pursuers",
  4349 + "lastPlayedAt": 1788232911824
4300 4350 },
4301 4351 {
4302 4352 "id": "c84bc1c7bfa0",
... ... @@ -4325,7 +4375,7 @@
4325 4375 "likes": 0,
4326 4376 "createdAt": 1787304031103,
4327 4377 "promptEn": "constable asks how she's sure it's not human, she says a person would make a sound",
4328   - "lastPlayedAt": 1788231429119
  4378 + "lastPlayedAt": 1788232754686
4329 4379 },
4330 4380 {
4331 4381 "id": "807e042dce0d",
... ... @@ -4383,7 +4433,7 @@
4383 4433 "likes": 0,
4384 4434 "createdAt": 1787231456079,
4385 4435 "promptEn": "constable burns the beauty portrait with the lamp, the door opens on its own",
4386   - "lastPlayedAt": 1788231973672
  4436 + "lastPlayedAt": 1788233411014
4387 4437 },
4388 4438 {
4389 4439 "id": "66158f543a20",
... ... @@ -4397,7 +4447,8 @@
4397 4447 "partition": "fl2va",
4398 4448 "likes": 0,
4399 4449 "createdAt": 1787231440149,
4400   - "promptEn": "constable burns the beauty portrait with the lamp, the door opens on its own"
  4450 + "promptEn": "constable burns the beauty portrait with the lamp, the door opens on its own",
  4451 + "lastPlayedAt": 1788233266956
4401 4452 },
4402 4453 {
4403 4454 "id": "63c91f4b6bc7",
... ... @@ -4411,7 +4462,8 @@
4411 4462 "partition": "fl2va",
4412 4463 "likes": 0,
4413 4464 "createdAt": 1787225897650,
4414   - "promptEn": "constable burns the beauty portrait with the lamp, the door opens on its own"
  4465 + "promptEn": "constable burns the beauty portrait with the lamp, the door opens on its own",
  4466 + "lastPlayedAt": 1788232632587
4415 4467 },
4416 4468 {
4417 4469 "id": "ed3663dcda7f",
... ... @@ -4425,7 +4477,7 @@
4425 4477 "partition": "fl2va",
4426 4478 "likes": 0,
4427 4479 "createdAt": 1787224701504,
4428   - "lastPlayedAt": 1788231281005,
  4480 + "lastPlayedAt": 1788232507824,
4429 4481 "promptEn": "constable burns the beauty portrait with the lamp, the door opens on its own"
4430 4482 },
4431 4483 {
... ...
live.css
1 1 * { box-sizing: border-box; }
2 2 [hidden] { display: none !important; }
3 3  
  4 +/* Palette + type lifted from infiniteslop.ai: pure black, hot-pink accent,
  5 + Tahoma body copy, Shrikhand display logo with a punchy drop-shadow. */
  6 +:root {
  7 + --bg: #000;
  8 + --text: #fff;
  9 + --muted: #9a9aa1;
  10 + --border: #1e1e22;
  11 + --panel: #0e0e11;
  12 + --row-hover: #17171a;
  13 + --accent: #ff90e8;
  14 + --accent-text: #111;
  15 +}
  16 +
4 17 body {
5 18 margin: 0;
6   - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
7   - background: #0a0a0c;
8   - color: #f2f2f4;
  19 + font-family: Tahoma, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  20 + background: var(--bg);
  21 + color: var(--text);
9 22 font-size: 14px;
10 23 }
11 24  
... ... @@ -20,28 +33,32 @@ body {
20 33 align-items: center;
21 34 gap: 14px;
22 35 padding: 10px 16px;
23   - border-bottom: 1px solid #1e1e22;
  36 + border-bottom: 1px solid var(--border);
24 37 flex: 0 0 auto;
25 38 }
26   -.topbar h1 {
27   - font-size: 15px;
  39 +.topbar .logo {
  40 + font-family: "Shrikhand", "Cooper Black", serif;
  41 + font-weight: 400;
  42 + font-size: 20px;
28 43 margin: 0;
29   - font-style: italic;
  44 + color: #fff;
  45 + text-shadow: 2px 2px 0 var(--accent);
30 46 }
31 47 .topbar .spacer { flex: 1; }
32   -.watching { font-size: 12px; color: #9a9aa1; }
  48 +.watching { font-size: 12px; font-weight: 700; color: var(--muted); }
33 49  
34 50 .tabs { display: flex; gap: 6px; }
35 51 .tabs button {
36   - background: #17171a;
37   - border: 1px solid #26262b;
38   - color: #b8b8bf;
  52 + background: #fff;
  53 + border: none;
  54 + color: var(--accent-text);
39 55 border-radius: 999px;
40   - padding: 5px 14px;
  56 + padding: 6px 14px;
41 57 font-size: 12px;
  58 + font-weight: 700;
42 59 cursor: pointer;
43 60 }
44   -.tabs button.active { background: #f2f2f4; color: #0a0a0c; border-color: #f2f2f4; }
  61 +.tabs button.active { background: var(--accent); color: var(--accent-text); }
45 62  
46 63 .body {
47 64 flex: 1;
... ... @@ -53,25 +70,28 @@ body {
53 70 .left-col {
54 71 width: 300px;
55 72 min-width: 240px;
56   - border-right: 1px solid #1e1e22;
  73 + border-right: 1px solid var(--border);
57 74 display: flex;
58 75 flex-direction: column;
59 76 overflow: hidden;
  77 + background: var(--panel);
60 78 }
61 79 .left-col .section-title {
62 80 font-size: 11px;
  81 + font-weight: 700;
63 82 letter-spacing: .06em;
64   - color: #77777f;
  83 + text-transform: uppercase;
  84 + color: var(--muted);
65 85 padding: 12px 14px 6px;
66 86 }
67 87 .clip-list { flex: 1; overflow-y: auto; }
68 88 .clip-row {
69 89 padding: 10px 14px;
70   - border-bottom: 1px solid #17171a;
  90 + border-bottom: 1px solid var(--border);
71 91 cursor: pointer;
72 92 }
73   -.clip-row:hover { background: #131316; }
74   -.clip-row.active { background: #1a1a1f; }
  93 +.clip-row:hover { background: var(--row-hover); }
  94 +.clip-row.active { background: var(--row-hover); box-shadow: inset 3px 0 0 var(--accent); }
75 95 .clip-row .prompt {
76 96 font-size: 12.5px;
77 97 line-height: 1.4;
... ... @@ -116,24 +136,26 @@ body {
116 136 z-index: 2;
117 137 padding: 12px 16px;
118 138 font-size: 13px;
  139 + font-weight: 700;
119 140 line-height: 1.4;
120 141 color: #fff;
121 142 background: linear-gradient(to bottom, rgba(0,0,0,.75), rgba(0,0,0,0));
122 143 }
123   -.now-playing-bar #liveDot { color: #ff5c5c; font-weight: 700; margin-right: 4px; }
  144 +.now-playing-bar #liveDot { color: #ff3b3b; font-weight: 700; margin-right: 4px; }
124 145  
125 146 .mute-btn {
126 147 position: absolute;
127 148 bottom: 14px;
128 149 right: 14px;
129 150 z-index: 2;
130   - background: rgba(0,0,0,.5);
131   - border: 1px solid rgba(255,255,255,.25);
132   - color: #fff;
  151 + background: #fff;
  152 + border: none;
  153 + color: var(--accent-text);
133 154 border-radius: 999px;
134   - width: 34px;
135   - height: 34px;
  155 + width: 36px;
  156 + height: 36px;
136 157 font-size: 15px;
  158 + font-weight: 700;
137 159 cursor: pointer;
138 160 }
139 161  
... ... @@ -141,58 +163,64 @@ body {
141 163 .right-col {
142 164 width: 300px;
143 165 min-width: 240px;
144   - border-left: 1px solid #1e1e22;
  166 + border-left: 1px solid var(--border);
145 167 display: flex;
146 168 flex-direction: column;
  169 + background: var(--panel);
147 170 }
148 171 .right-col .section-title {
149 172 font-size: 11px;
  173 + font-weight: 700;
150 174 letter-spacing: .06em;
151   - color: #77777f;
  175 + text-transform: uppercase;
  176 + color: var(--muted);
152 177 padding: 12px 14px 6px;
153 178 }
154 179 .say-panel { padding: 0 14px 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
155 180 .say-panel textarea {
156   - background: #17171a;
157   - border: 1px solid #26262b;
158   - border-radius: 10px;
  181 + background: #fff;
  182 + border: none;
  183 + border-radius: 12px;
159 184 padding: 10px 12px;
160   - color: #f2f2f4;
  185 + color: var(--accent-text);
  186 + font-weight: 700;
161 187 font-size: 13px;
162 188 resize: none;
163 189 min-height: 90px;
164 190 font-family: inherit;
165 191 }
166   -.say-panel textarea::placeholder { color: #5c5c63; }
  192 +.say-panel textarea::placeholder { color: #8a8a8a; font-weight: 400; }
167 193 .say-panel button {
168   - background: #f2f2f4;
169   - color: #0a0a0c;
  194 + background: var(--accent);
  195 + color: var(--accent-text);
170 196 border: none;
171 197 border-radius: 999px;
172   - padding: 9px 0;
173   - font-weight: 600;
  198 + padding: 10px 0;
  199 + font-weight: 700;
174 200 font-size: 13px;
175 201 cursor: pointer;
176 202 }
177 203 .say-panel button:disabled { opacity: .5; cursor: not-allowed; }
178   -.say-hint { font-size: 11.5px; color: #9a9aa1; min-height: 1.4em; }
  204 +.say-hint { font-size: 11.5px; font-weight: 700; color: var(--muted); min-height: 1.4em; }
179 205  
180 206 /* ---- mobile sub-tabs (live mode only) ---- */
181 207 .mobile-subtabs {
182 208 display: none;
183   - border-top: 1px solid #1e1e22;
  209 + border-top: 1px solid var(--border);
184 210 flex: 0 0 auto;
  211 + background: var(--panel);
185 212 }
186 213 .mobile-subtabs button {
187 214 flex: 1;
188   - background: #0e0e11;
  215 + background: transparent;
189 216 border: none;
190   - color: #9a9aa1;
  217 + color: var(--muted);
  218 + font-weight: 700;
191 219 padding: 11px 0;
192 220 font-size: 13px;
193 221 cursor: pointer;
194 222 }
195   -.mobile-subtabs button.active { color: #fff; font-weight: 600; box-shadow: inset 0 -2px 0 #fff; }
  223 +.mobile-subtabs button.active { color: #fff; box-shadow: inset 0 -2px 0 var(--accent); }
196 224  
197 225 @media (max-width: 768px) {
198 226 .body { flex-direction: column; }
... ...
live.html
... ... @@ -4,12 +4,14 @@
4 4 <meta charset="UTF-8" />
5 5 <meta name="viewport" content="width=device-width, initial-scale=1" />
6 6 <title>AI 短剧频道</title>
  7 +<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  8 +<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Shrikhand&display=swap" />
7 9 <link rel="stylesheet" href="live.css" />
8 10 </head>
9 11 <body>
10 12 <div class="channel">
11 13 <header class="topbar">
12   - <h1>AI 短剧频道</h1>
  14 + <h1 class="logo">AI 短剧频道</h1>
13 15 <div class="tabs" id="tabs">
14 16 <button data-mode="live" class="active">🔴 直播</button>
15 17 <button data-mode="newest">🆕 最新</button>
... ...