@jjlmoya/utils-audiovisual 1.16.0 → 1.18.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 (234) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -0
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +1 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +2 -36
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/chromaticLens/bibliography.ts +12 -0
  11. package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +39 -39
  12. package/src/tool/chromaticLens/entry.ts +2 -0
  13. package/src/tool/chromaticLens/i18n/de.ts +1 -15
  14. package/src/tool/chromaticLens/i18n/en.ts +1 -15
  15. package/src/tool/chromaticLens/i18n/es.ts +1 -13
  16. package/src/tool/chromaticLens/i18n/fr.ts +1 -13
  17. package/src/tool/chromaticLens/i18n/id.ts +1 -15
  18. package/src/tool/chromaticLens/i18n/it.ts +1 -15
  19. package/src/tool/chromaticLens/i18n/ja.ts +1 -15
  20. package/src/tool/chromaticLens/i18n/ko.ts +1 -15
  21. package/src/tool/chromaticLens/i18n/nl.ts +1 -15
  22. package/src/tool/chromaticLens/i18n/pl.ts +1 -15
  23. package/src/tool/chromaticLens/i18n/pt.ts +1 -15
  24. package/src/tool/chromaticLens/i18n/ru.ts +1 -15
  25. package/src/tool/chromaticLens/i18n/sv.ts +1 -15
  26. package/src/tool/chromaticLens/i18n/tr.ts +1 -15
  27. package/src/tool/chromaticLens/i18n/zh.ts +1 -15
  28. package/src/tool/chromaticLens/seo.astro +1 -1
  29. package/src/tool/collageMaker/bibliography.ts +8 -0
  30. package/src/tool/collageMaker/entry.ts +2 -0
  31. package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +47 -47
  32. package/src/tool/collageMaker/i18n/de.ts +1 -11
  33. package/src/tool/collageMaker/i18n/en.ts +1 -11
  34. package/src/tool/collageMaker/i18n/es.ts +1 -9
  35. package/src/tool/collageMaker/i18n/fr.ts +1 -9
  36. package/src/tool/collageMaker/i18n/id.ts +1 -11
  37. package/src/tool/collageMaker/i18n/it.ts +1 -11
  38. package/src/tool/collageMaker/i18n/ja.ts +1 -11
  39. package/src/tool/collageMaker/i18n/ko.ts +1 -11
  40. package/src/tool/collageMaker/i18n/nl.ts +1 -11
  41. package/src/tool/collageMaker/i18n/pl.ts +1 -11
  42. package/src/tool/collageMaker/i18n/pt.ts +1 -11
  43. package/src/tool/collageMaker/i18n/ru.ts +1 -11
  44. package/src/tool/collageMaker/i18n/sv.ts +1 -11
  45. package/src/tool/collageMaker/i18n/tr.ts +1 -11
  46. package/src/tool/collageMaker/i18n/zh.ts +1 -11
  47. package/src/tool/collageMaker/seo.astro +1 -1
  48. package/src/tool/depthOfFieldCalculator/bibliography.astro +15 -0
  49. package/src/tool/depthOfFieldCalculator/bibliography.ts +20 -0
  50. package/src/tool/depthOfFieldCalculator/component.astro +341 -0
  51. package/src/tool/depthOfFieldCalculator/depth-of-field-calculator.css +417 -0
  52. package/src/tool/depthOfFieldCalculator/entry.ts +52 -0
  53. package/src/tool/depthOfFieldCalculator/i18n/de.ts +141 -0
  54. package/src/tool/depthOfFieldCalculator/i18n/en.ts +141 -0
  55. package/src/tool/depthOfFieldCalculator/i18n/es.ts +141 -0
  56. package/src/tool/depthOfFieldCalculator/i18n/fr.ts +141 -0
  57. package/src/tool/depthOfFieldCalculator/i18n/id.ts +141 -0
  58. package/src/tool/depthOfFieldCalculator/i18n/it.ts +141 -0
  59. package/src/tool/depthOfFieldCalculator/i18n/ja.ts +141 -0
  60. package/src/tool/depthOfFieldCalculator/i18n/ko.ts +141 -0
  61. package/src/tool/depthOfFieldCalculator/i18n/nl.ts +141 -0
  62. package/src/tool/depthOfFieldCalculator/i18n/pl.ts +141 -0
  63. package/src/tool/depthOfFieldCalculator/i18n/pt.ts +141 -0
  64. package/src/tool/depthOfFieldCalculator/i18n/ru.ts +141 -0
  65. package/src/tool/depthOfFieldCalculator/i18n/sv.ts +141 -0
  66. package/src/tool/depthOfFieldCalculator/i18n/tr.ts +141 -0
  67. package/src/tool/depthOfFieldCalculator/i18n/zh.ts +141 -0
  68. package/src/tool/depthOfFieldCalculator/index.ts +10 -0
  69. package/src/tool/depthOfFieldCalculator/logic.ts +91 -0
  70. package/src/tool/depthOfFieldCalculator/seo.astro +15 -0
  71. package/src/tool/exifCleaner/bibliography.ts +12 -0
  72. package/src/tool/exifCleaner/entry.ts +2 -0
  73. package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +36 -36
  74. package/src/tool/exifCleaner/i18n/de.ts +1 -15
  75. package/src/tool/exifCleaner/i18n/en.ts +1 -15
  76. package/src/tool/exifCleaner/i18n/es.ts +1 -15
  77. package/src/tool/exifCleaner/i18n/fr.ts +1 -15
  78. package/src/tool/exifCleaner/i18n/id.ts +1 -15
  79. package/src/tool/exifCleaner/i18n/it.ts +1 -15
  80. package/src/tool/exifCleaner/i18n/ja.ts +1 -15
  81. package/src/tool/exifCleaner/i18n/ko.ts +1 -15
  82. package/src/tool/exifCleaner/i18n/nl.ts +1 -15
  83. package/src/tool/exifCleaner/i18n/pl.ts +1 -15
  84. package/src/tool/exifCleaner/i18n/pt.ts +1 -15
  85. package/src/tool/exifCleaner/i18n/ru.ts +1 -15
  86. package/src/tool/exifCleaner/i18n/sv.ts +1 -15
  87. package/src/tool/exifCleaner/i18n/tr.ts +1 -15
  88. package/src/tool/exifCleaner/i18n/zh.ts +1 -15
  89. package/src/tool/exifCleaner/seo.astro +2 -5
  90. package/src/tool/imageCompressor/bibliography.ts +12 -0
  91. package/src/tool/imageCompressor/entry.ts +2 -0
  92. package/src/tool/imageCompressor/i18n/de.ts +1 -15
  93. package/src/tool/imageCompressor/i18n/en.ts +1 -15
  94. package/src/tool/imageCompressor/i18n/es.ts +1 -13
  95. package/src/tool/imageCompressor/i18n/fr.ts +1 -13
  96. package/src/tool/imageCompressor/i18n/id.ts +1 -15
  97. package/src/tool/imageCompressor/i18n/it.ts +1 -15
  98. package/src/tool/imageCompressor/i18n/ja.ts +1 -15
  99. package/src/tool/imageCompressor/i18n/ko.ts +1 -15
  100. package/src/tool/imageCompressor/i18n/nl.ts +1 -15
  101. package/src/tool/imageCompressor/i18n/pl.ts +1 -15
  102. package/src/tool/imageCompressor/i18n/pt.ts +1 -15
  103. package/src/tool/imageCompressor/i18n/ru.ts +1 -15
  104. package/src/tool/imageCompressor/i18n/sv.ts +1 -15
  105. package/src/tool/imageCompressor/i18n/tr.ts +1 -15
  106. package/src/tool/imageCompressor/i18n/zh.ts +1 -15
  107. package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +71 -64
  108. package/src/tool/imageCompressor/seo.astro +1 -1
  109. package/src/tool/printQualityCalculator/bibliography.ts +12 -0
  110. package/src/tool/printQualityCalculator/entry.ts +2 -0
  111. package/src/tool/printQualityCalculator/i18n/de.ts +1 -15
  112. package/src/tool/printQualityCalculator/i18n/en.ts +1 -15
  113. package/src/tool/printQualityCalculator/i18n/es.ts +1 -13
  114. package/src/tool/printQualityCalculator/i18n/fr.ts +1 -13
  115. package/src/tool/printQualityCalculator/i18n/id.ts +1 -15
  116. package/src/tool/printQualityCalculator/i18n/it.ts +1 -15
  117. package/src/tool/printQualityCalculator/i18n/ja.ts +1 -15
  118. package/src/tool/printQualityCalculator/i18n/ko.ts +1 -15
  119. package/src/tool/printQualityCalculator/i18n/nl.ts +1 -15
  120. package/src/tool/printQualityCalculator/i18n/pl.ts +1 -15
  121. package/src/tool/printQualityCalculator/i18n/pt.ts +1 -15
  122. package/src/tool/printQualityCalculator/i18n/ru.ts +1 -15
  123. package/src/tool/printQualityCalculator/i18n/sv.ts +1 -15
  124. package/src/tool/printQualityCalculator/i18n/tr.ts +1 -15
  125. package/src/tool/printQualityCalculator/i18n/zh.ts +1 -15
  126. package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +89 -81
  127. package/src/tool/printQualityCalculator/seo.astro +2 -5
  128. package/src/tool/privacyBlur/bibliography.ts +8 -0
  129. package/src/tool/privacyBlur/entry.ts +2 -0
  130. package/src/tool/privacyBlur/i18n/de.ts +1 -11
  131. package/src/tool/privacyBlur/i18n/en.ts +1 -11
  132. package/src/tool/privacyBlur/i18n/es.ts +1 -9
  133. package/src/tool/privacyBlur/i18n/fr.ts +1 -9
  134. package/src/tool/privacyBlur/i18n/id.ts +1 -11
  135. package/src/tool/privacyBlur/i18n/it.ts +1 -11
  136. package/src/tool/privacyBlur/i18n/ja.ts +1 -11
  137. package/src/tool/privacyBlur/i18n/ko.ts +1 -11
  138. package/src/tool/privacyBlur/i18n/nl.ts +1 -11
  139. package/src/tool/privacyBlur/i18n/pl.ts +1 -11
  140. package/src/tool/privacyBlur/i18n/pt.ts +1 -11
  141. package/src/tool/privacyBlur/i18n/ru.ts +1 -11
  142. package/src/tool/privacyBlur/i18n/sv.ts +1 -11
  143. package/src/tool/privacyBlur/i18n/tr.ts +1 -11
  144. package/src/tool/privacyBlur/i18n/zh.ts +1 -11
  145. package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +36 -36
  146. package/src/tool/privacyBlur/seo.astro +1 -1
  147. package/src/tool/subtitleSync/bibliography.ts +12 -0
  148. package/src/tool/subtitleSync/entry.ts +2 -0
  149. package/src/tool/subtitleSync/i18n/de.ts +1 -13
  150. package/src/tool/subtitleSync/i18n/en.ts +1 -13
  151. package/src/tool/subtitleSync/i18n/es.ts +1 -13
  152. package/src/tool/subtitleSync/i18n/fr.ts +1 -13
  153. package/src/tool/subtitleSync/i18n/id.ts +1 -13
  154. package/src/tool/subtitleSync/i18n/it.ts +1 -13
  155. package/src/tool/subtitleSync/i18n/ja.ts +1 -13
  156. package/src/tool/subtitleSync/i18n/ko.ts +1 -13
  157. package/src/tool/subtitleSync/i18n/nl.ts +1 -13
  158. package/src/tool/subtitleSync/i18n/pl.ts +1 -13
  159. package/src/tool/subtitleSync/i18n/pt.ts +1 -13
  160. package/src/tool/subtitleSync/i18n/ru.ts +1 -13
  161. package/src/tool/subtitleSync/i18n/sv.ts +1 -13
  162. package/src/tool/subtitleSync/i18n/tr.ts +1 -13
  163. package/src/tool/subtitleSync/i18n/zh.ts +1 -13
  164. package/src/tool/subtitleSync/seo.astro +1 -1
  165. package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +43 -43
  166. package/src/tool/timelapseCalculator/bibliography.ts +20 -0
  167. package/src/tool/timelapseCalculator/entry.ts +2 -0
  168. package/src/tool/timelapseCalculator/i18n/de.ts +1 -21
  169. package/src/tool/timelapseCalculator/i18n/en.ts +1 -21
  170. package/src/tool/timelapseCalculator/i18n/es.ts +1 -21
  171. package/src/tool/timelapseCalculator/i18n/fr.ts +1 -21
  172. package/src/tool/timelapseCalculator/i18n/id.ts +1 -21
  173. package/src/tool/timelapseCalculator/i18n/it.ts +1 -21
  174. package/src/tool/timelapseCalculator/i18n/ja.ts +1 -21
  175. package/src/tool/timelapseCalculator/i18n/ko.ts +1 -21
  176. package/src/tool/timelapseCalculator/i18n/nl.ts +1 -21
  177. package/src/tool/timelapseCalculator/i18n/pl.ts +1 -21
  178. package/src/tool/timelapseCalculator/i18n/pt.ts +1 -21
  179. package/src/tool/timelapseCalculator/i18n/ru.ts +1 -21
  180. package/src/tool/timelapseCalculator/i18n/sv.ts +1 -21
  181. package/src/tool/timelapseCalculator/i18n/tr.ts +1 -21
  182. package/src/tool/timelapseCalculator/i18n/zh.ts +1 -21
  183. package/src/tool/timelapseCalculator/seo.astro +2 -5
  184. package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +44 -42
  185. package/src/tool/tvDistance/bibliography.ts +12 -0
  186. package/src/tool/tvDistance/entry.ts +2 -0
  187. package/src/tool/tvDistance/i18n/de.ts +1 -13
  188. package/src/tool/tvDistance/i18n/en.ts +1 -13
  189. package/src/tool/tvDistance/i18n/es.ts +1 -13
  190. package/src/tool/tvDistance/i18n/fr.ts +1 -13
  191. package/src/tool/tvDistance/i18n/id.ts +1 -13
  192. package/src/tool/tvDistance/i18n/it.ts +1 -13
  193. package/src/tool/tvDistance/i18n/ja.ts +1 -13
  194. package/src/tool/tvDistance/i18n/ko.ts +1 -13
  195. package/src/tool/tvDistance/i18n/nl.ts +1 -13
  196. package/src/tool/tvDistance/i18n/pl.ts +1 -13
  197. package/src/tool/tvDistance/i18n/pt.ts +1 -13
  198. package/src/tool/tvDistance/i18n/ru.ts +1 -13
  199. package/src/tool/tvDistance/i18n/sv.ts +1 -13
  200. package/src/tool/tvDistance/i18n/tr.ts +1 -13
  201. package/src/tool/tvDistance/i18n/zh.ts +1 -13
  202. package/src/tool/tvDistance/seo.astro +1 -1
  203. package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +56 -56
  204. package/src/tool/videoFrameExtractor/bibliography.ts +8 -0
  205. package/src/tool/videoFrameExtractor/entry.ts +2 -0
  206. package/src/tool/videoFrameExtractor/i18n/de.ts +1 -9
  207. package/src/tool/videoFrameExtractor/i18n/en.ts +1 -9
  208. package/src/tool/videoFrameExtractor/i18n/es.ts +1 -9
  209. package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -8
  210. package/src/tool/videoFrameExtractor/i18n/id.ts +1 -9
  211. package/src/tool/videoFrameExtractor/i18n/it.ts +1 -8
  212. package/src/tool/videoFrameExtractor/i18n/ja.ts +1 -9
  213. package/src/tool/videoFrameExtractor/i18n/ko.ts +1 -9
  214. package/src/tool/videoFrameExtractor/i18n/nl.ts +1 -9
  215. package/src/tool/videoFrameExtractor/i18n/pl.ts +1 -9
  216. package/src/tool/videoFrameExtractor/i18n/pt.ts +1 -9
  217. package/src/tool/videoFrameExtractor/i18n/ru.ts +1 -9
  218. package/src/tool/videoFrameExtractor/i18n/sv.ts +1 -9
  219. package/src/tool/videoFrameExtractor/i18n/tr.ts +1 -9
  220. package/src/tool/videoFrameExtractor/i18n/zh.ts +1 -9
  221. package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +55 -55
  222. package/src/tool/videoFrameExtractor/seo.astro +1 -1
  223. package/src/tools.ts +2 -0
  224. package/src/types.ts +0 -2
  225. package/src/tool/chromaticLens/style.css +0 -308
  226. package/src/tool/collageMaker/style.css +0 -386
  227. package/src/tool/exifCleaner/style.css +0 -289
  228. package/src/tool/imageCompressor/style.css +0 -503
  229. package/src/tool/printQualityCalculator/style.css +0 -491
  230. package/src/tool/privacyBlur/style.css +0 -332
  231. package/src/tool/subtitleSync/style.css +0 -325
  232. package/src/tool/timelapseCalculator/style.css +0 -285
  233. package/src/tool/tvDistance/style.css +0 -435
  234. package/src/tool/videoFrameExtractor/style.css +0 -426
@@ -1,289 +0,0 @@
1
- .ec-root {
2
- --ec-bg: #fff;
3
- --ec-bg-elevated: #f8fafc;
4
- --ec-border: #e2e8f0;
5
- --ec-text: #0f172a;
6
- --ec-text-muted: #64748b;
7
- --ec-accent: #6366f1;
8
- --ec-accent-alpha: rgba(99, 102, 241, 0.08);
9
- --ec-accent-alpha-hover: rgba(99, 102, 241, 0.02);
10
- --ec-shadow: rgba(0, 0, 0, 0.15);
11
-
12
- padding: 2.5rem 1.5rem;
13
- max-width: 1000px;
14
- margin: 0 auto;
15
- }
16
-
17
- .theme-dark .ec-root {
18
- --ec-bg: #18181b;
19
- --ec-bg-elevated: #27272a;
20
- --ec-border: #3f3f46;
21
- --ec-text: #f4f4f5;
22
- --ec-text-muted: #71717a;
23
- --ec-accent: #818cf8;
24
- --ec-accent-alpha: rgba(129, 140, 248, 0.12);
25
- --ec-accent-alpha-hover: rgba(129, 140, 248, 0.02);
26
- --ec-shadow: rgba(0, 0, 0, 0.3);
27
- }
28
-
29
- .ec-card {
30
- background: var(--ec-bg);
31
- border: 1px solid var(--ec-border);
32
- border-radius: 3rem;
33
- padding: 1.5rem;
34
- box-shadow: 0 45px 120px -30px var(--ec-shadow);
35
- position: relative;
36
- overflow: hidden;
37
- }
38
-
39
- .ec-drop {
40
- padding: 4rem 2rem;
41
- border: 3px dashed var(--ec-border);
42
- border-radius: 2.5rem;
43
- display: flex;
44
- flex-direction: column;
45
- align-items: center;
46
- text-align: center;
47
- cursor: pointer;
48
- gap: 1.5rem;
49
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
50
- }
51
-
52
- .ec-drop:hover,
53
- .ec-drop-active {
54
- border-color: var(--ec-accent);
55
- background: var(--ec-accent-alpha-hover);
56
- }
57
-
58
- .ec-drop-icon {
59
- width: 6rem;
60
- height: 6rem;
61
- background: var(--ec-accent-alpha);
62
- border-radius: 2rem;
63
- display: flex;
64
- align-items: center;
65
- justify-content: center;
66
- color: var(--ec-accent);
67
- }
68
-
69
- .ec-drop-icon svg {
70
- width: 3rem;
71
- height: 3rem;
72
- }
73
-
74
- .ec-title {
75
- font-size: 2.5rem;
76
- font-weight: 950;
77
- color: var(--ec-text);
78
- margin: 0;
79
- }
80
-
81
- .ec-subtitle {
82
- font-size: 1.15rem;
83
- color: var(--ec-text-muted);
84
- max-width: 500px;
85
- margin: 0;
86
- font-weight: 700;
87
- }
88
-
89
- .ec-badges {
90
- display: flex;
91
- gap: 1rem;
92
- flex-wrap: wrap;
93
- justify-content: center;
94
- }
95
-
96
- .ec-badge {
97
- padding: 0.6rem 1.25rem;
98
- background: var(--ec-bg-elevated);
99
- border-radius: 2rem;
100
- font-size: 0.8rem;
101
- font-weight: 800;
102
- color: var(--ec-text-muted);
103
- display: flex;
104
- align-items: center;
105
- gap: 0.5rem;
106
- }
107
-
108
- .ec-badge svg {
109
- width: 1rem;
110
- height: 1rem;
111
- flex-shrink: 0;
112
- }
113
-
114
- .ec-processing {
115
- padding: 5rem;
116
- display: flex;
117
- flex-direction: column;
118
- align-items: center;
119
- justify-content: center;
120
- gap: 1.5rem;
121
- }
122
-
123
- .ec-spinner {
124
- width: 4rem;
125
- height: 4rem;
126
- border: 4px solid var(--ec-accent-alpha);
127
- border-top-color: var(--ec-accent);
128
- border-radius: 50%;
129
- animation: ec-spin 0.8s linear infinite;
130
- }
131
-
132
- .ec-processing-text {
133
- font-weight: 800;
134
- color: var(--ec-text);
135
- margin: 0;
136
- }
137
-
138
- .ec-result {
139
- padding: 2.5rem;
140
- display: flex;
141
- flex-direction: column;
142
- animation: ec-slide-up 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
143
- }
144
-
145
- .ec-result-layout {
146
- display: grid;
147
- grid-template-columns: 1fr 1fr;
148
- gap: 3rem;
149
- }
150
-
151
- @media (max-width: 800px) {
152
- .ec-result-layout {
153
- grid-template-columns: 1fr;
154
- }
155
- }
156
-
157
- .ec-preview-col {
158
- display: flex;
159
- flex-direction: column;
160
- gap: 1.5rem;
161
- }
162
-
163
- .ec-preview-img {
164
- width: 100%;
165
- border-radius: 1.5rem;
166
- box-shadow: 0 20px 50px var(--ec-shadow);
167
- display: block;
168
- }
169
-
170
- .ec-metadata {
171
- background: var(--ec-bg-elevated);
172
- border: 1px solid var(--ec-border);
173
- border-radius: 1.25rem;
174
- padding: 1.5rem;
175
- min-height: 150px;
176
- display: flex;
177
- flex-direction: column;
178
- justify-content: center;
179
- }
180
-
181
- .ec-no-metadata {
182
- display: flex;
183
- align-items: center;
184
- justify-content: center;
185
- height: 100%;
186
- color: var(--ec-text-muted);
187
- text-align: center;
188
- }
189
-
190
- .ec-metadata-title {
191
- color: var(--ec-accent);
192
- font-weight: 700;
193
- margin-bottom: 1rem;
194
- font-size: 0.9rem;
195
- }
196
-
197
- .ec-metadata-list {
198
- list-style: none;
199
- padding: 0;
200
- margin: 0;
201
- display: flex;
202
- flex-direction: column;
203
- gap: 0.75rem;
204
- }
205
-
206
- .ec-metadata-list li {
207
- display: flex;
208
- justify-content: space-between;
209
- gap: 1rem;
210
- font-size: 0.85rem;
211
- font-weight: 600;
212
- color: var(--ec-text);
213
- }
214
-
215
- .ec-metadata-list li span:first-child {
216
- font-weight: 700;
217
- }
218
-
219
- .ec-metadata-list li span:last-child {
220
- color: var(--ec-text-muted);
221
- }
222
-
223
- .ec-actions-col {
224
- display: flex;
225
- flex-direction: column;
226
- gap: 1.5rem;
227
- }
228
-
229
- .ec-btn {
230
- padding: 1.25rem;
231
- border-radius: 1.5rem;
232
- font-weight: 950;
233
- font-size: 1.1rem;
234
- border: none;
235
- cursor: pointer;
236
- display: flex;
237
- align-items: center;
238
- justify-content: center;
239
- gap: 0.75rem;
240
- transition: all 0.2s;
241
- }
242
-
243
- .ec-btn svg {
244
- width: 1.25rem;
245
- height: 1.25rem;
246
- }
247
-
248
- .ec-btn-primary {
249
- background: var(--ec-accent);
250
- color: #fff;
251
- box-shadow: 0 15px 35px -10px var(--ec-accent);
252
- }
253
-
254
- .ec-btn-primary:hover {
255
- transform: translateY(-2px);
256
- box-shadow: 0 20px 45px -10px var(--ec-accent);
257
- }
258
-
259
- .ec-btn-secondary {
260
- background: var(--ec-bg-elevated);
261
- border: 1px solid var(--ec-border);
262
- color: var(--ec-text);
263
- }
264
-
265
- .ec-btn-secondary:hover {
266
- border-color: var(--ec-accent);
267
- color: var(--ec-accent);
268
- }
269
-
270
- .ec-hidden {
271
- display: none;
272
- }
273
-
274
- @keyframes ec-spin {
275
- to {
276
- transform: rotate(360deg);
277
- }
278
- }
279
-
280
- @keyframes ec-slide-up {
281
- from {
282
- opacity: 0;
283
- transform: translateY(30px);
284
- }
285
- to {
286
- opacity: 1;
287
- transform: translateY(0);
288
- }
289
- }