active_hashcash 0.2.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +101 -14
  4. data/app/assets/config/active_hashcash_manifest.js +1 -0
  5. data/app/assets/javascripts/hashcash.js +257 -0
  6. data/app/assets/stylesheets/active_hashcash/application.css +15 -0
  7. data/app/controllers/active_hashcash/addresses_controller.rb +7 -0
  8. data/app/controllers/active_hashcash/application_controller.rb +4 -0
  9. data/app/controllers/active_hashcash/assets_controller.rb +34 -0
  10. data/app/controllers/active_hashcash/stamps_controller.rb +11 -0
  11. data/app/helpers/active_hashcash/addresses_helper.rb +4 -0
  12. data/app/helpers/active_hashcash/application_helper.rb +4 -0
  13. data/app/helpers/active_hashcash/stamps_helper.rb +4 -0
  14. data/app/jobs/active_hashcash/application_job.rb +4 -0
  15. data/app/mailers/active_hashcash/application_mailer.rb +6 -0
  16. data/app/models/active_hashcash/application_record.rb +5 -0
  17. data/app/models/active_hashcash/stamp.rb +70 -0
  18. data/app/views/active_hashcash/addresses/index.html.erb +17 -0
  19. data/app/views/active_hashcash/assets/_logo.svg.erb +1 -0
  20. data/app/views/active_hashcash/assets/_style.css +148 -0
  21. data/app/views/active_hashcash/assets/application.css.erb +1 -0
  22. data/app/views/active_hashcash/assets/ariato.css.erb +2 -0
  23. data/app/views/active_hashcash/assets/favicon.ico +0 -0
  24. data/app/views/active_hashcash/assets/favicon.svg.erb +1 -0
  25. data/app/views/active_hashcash/assets/vendor/_ariato_base.css +1297 -0
  26. data/app/views/active_hashcash/assets/vendor/_ariato_extra.css +1206 -0
  27. data/app/views/active_hashcash/stamps/_filters.html.erb +39 -0
  28. data/app/views/active_hashcash/stamps/index.html.erb +25 -0
  29. data/app/views/active_hashcash/stamps/show.html.erb +21 -0
  30. data/app/views/layouts/active_hashcash/application.html.erb +36 -0
  31. data/config/locales/de.yml +4 -0
  32. data/config/locales/en.yml +4 -0
  33. data/config/locales/es.yml +4 -0
  34. data/config/locales/fr.yml +4 -0
  35. data/config/locales/it.yml +4 -0
  36. data/config/locales/jp.yml +4 -0
  37. data/config/locales/pt.yml +4 -0
  38. data/config/routes.rb +6 -0
  39. data/db/migrate/20240215143453_create_active_hashcash_stamps.rb +25 -0
  40. data/lib/active_hashcash/engine.rb +2 -14
  41. data/lib/active_hashcash/version.rb +1 -1
  42. data/lib/active_hashcash.rb +35 -21
  43. data/lib/tasks/active_hashcash_tasks.rake +4 -0
  44. metadata +47 -26
  45. data/lib/active_hashcash/stamp.rb +0 -52
  46. data/lib/active_hashcash/store.rb +0 -25
@@ -0,0 +1,1297 @@
1
+ /*******************************************/
2
+ /* ariato css */
3
+ /* https://github.com/BaseSecrete/ariato */
4
+ /*******************************************/
5
+
6
+ /* design_tokens */
7
+
8
+ :root,
9
+ .theme-light {
10
+ --color-grey-00: oklch(100% 0 269);
11
+ --color-grey-20: oklch(99% 0.01 269);
12
+ --color-grey-35: oklch(97% 0.01 269);
13
+ --color-grey-50: oklch(95% 0.01 269);
14
+ --color-grey-100: oklch(93% 0.01 269);
15
+ --color-grey-200: oklch(89.34546875% 0.01 269);
16
+ --color-grey-300: oklch(72.15796875% 0.02 269);
17
+ --color-grey-400: oklch(58.87671875% 0.03 269);
18
+ --color-grey-500: oklch(0.47 0.03 269);
19
+ --color-grey-600: oklch(42.67578125% 0.03 269);
20
+ --color-grey-700: oklch(32.51953125% 0.03 269);
21
+ --color-grey-800: oklch(24.12109375% 0.03 269);
22
+ --color-grey-900: oklch(22% 0.03 269);
23
+
24
+ --color-info-50: oklch(95% 0.05 269);
25
+ --color-info-100: oklch(92.27515625% 0.07 269);
26
+ --color-info-200: oklch(89.54078125% 0.1 269);
27
+ --color-info-400: oklch(63.36890625% 0.13 269);
28
+ --color-info-500: oklch(0.52 0.15 269);
29
+ --color-info-600: oklch(47.55859375% 0.17 269);
30
+ --color-info-700: oklch(38.37890625% 0.2 269);
31
+
32
+ --color-success-50: oklch(95% 0.05 149);
33
+ --color-success-100: oklch(93% 0.07 149);
34
+ --color-success-200: oklch(87.78296875% 0.1 149);
35
+ --color-success-400: oklch(59.85328125% 0.13 149);
36
+ --color-success-500: oklch(0.49 0.15 149);
37
+ --color-success-600: oklch(45.60546875% 0.17 149);
38
+ --color-success-700: oklch(36.03515625% 0.2 149);
39
+
40
+ --color-warning-50: oklch(95% 0.05 89);
41
+ --color-warning-100: oklch(93% 0.07 89);
42
+ --color-warning-200: oklch(89.34546875% 0.1 89);
43
+ --color-warning-400: oklch(59.07203125% 0.13 89);
44
+ --color-warning-500: oklch(0.52 0.15 89);
45
+ --color-warning-600: oklch(47.16796875% 0.17 89);
46
+ --color-warning-700: oklch(37.79296875% 0.2 89);
47
+
48
+ --color-danger-50: oklch(95% 0.05 29);
49
+ --color-danger-100: oklch(93% 0.07 29);
50
+ --color-danger-200: oklch(90.12671875% 0.1 29);
51
+ --color-danger-400: oklch(61.22046875% 0.13 29);
52
+ --color-danger-500: oklch(0.49 0.15 29);
53
+ --color-danger-600: oklch(44.04296875% 0.17 29);
54
+ --color-danger-700: oklch(33.30078125% 0.2 29);
55
+
56
+ --color-cyan-500: oklch(0.5 0.15 189);
57
+ --color-orange-500: oklch(0.52 0.15 59);
58
+ --color-fuschia-500: oklch(0.54 0.15 329);
59
+ --color-purple-500: oklch(0.53 0.15 299);
60
+
61
+ --color-shadow: oklch(5% 0.006 269 / 0.02);
62
+ --color-backdrop: oklch(20% 0.006 269 / 0.7);
63
+ --color-light: oklch(100% 0.006 269 / 0.2);
64
+ }
65
+
66
+ .theme-dark {
67
+ --color-grey-00: oklch(0.17 0.01 269);
68
+ --color-grey-20: oklch(0.19 0.01 269);
69
+ --color-grey-35: oklch(21% 0.01 269);
70
+ --color-grey-50: oklch(23% 0.01 269);
71
+ --color-grey-100: oklch(28% 0.01 269);
72
+ --color-grey-200: oklch(41.11328125% 0.01 269);
73
+ --color-grey-300: oklch(67.07984375% 0.01 269);
74
+ --color-grey-400: oklch(76.06421875% 0.02 269);
75
+ --color-grey-500: oklch(0.84 0.02 269);
76
+ --color-grey-600: oklch(86.80640625% 0.02 269);
77
+ --color-grey-700: oklch(91.88453125% 0.02 269);
78
+ --color-grey-800: oklch(96.57203125% 0.02 269);
79
+ --color-grey-900: oklch(98% 0.02 269);
80
+
81
+ --color-info-50: oklch(23% 0.05 269);
82
+ --color-info-100: oklch(28% 0.09 269);
83
+ --color-info-200: oklch(31% 0.09 269);
84
+ --color-info-400: oklch(76.25953125% 0.09 269);
85
+ --color-info-500: oklch(0.84 0.09 260);
86
+ --color-info-600: oklch(87.00171875% 0.07 269);
87
+ --color-info-700: oklch(91.88453125% 0.04 269);
88
+
89
+ --color-success-50: oklch(23% 0.07 149);
90
+ --color-success-100: oklch(28% 0.09 149);
91
+ --color-success-200: oklch(40.13671875% 0.09 149);
92
+ --color-success-400: oklch(74.69703125% 0.09 149);
93
+ --color-success-500: oklch(0.83 0.09 149);
94
+ --color-success-600: oklch(85.82984375% 0.07 149);
95
+ --color-success-700: oklch(91.10328125% 0.04 149);
96
+
97
+ --color-warning-50: oklch(23% 0.05 89);
98
+ --color-warning-100: oklch(28% 0.09 89);
99
+ --color-warning-200: oklch(41.11328125% 0.09 89);
100
+ --color-warning-400: oklch(76.06421875% 0.09 89);
101
+ --color-warning-500: oklch(0.84 0.09 89);
102
+ --color-warning-600: oklch(86.80640625% 0.07 89);
103
+ --color-warning-700: oklch(91.68921875% 0.04 89);
104
+
105
+ --color-danger-50: oklch(23% 0.05 29);
106
+ --color-danger-100: oklch(28% 0.09 29);
107
+ --color-danger-200: oklch(41.89453125% 0.09 29);
108
+ --color-danger-400: oklch(77.23609375% 0.09 29);
109
+ --color-danger-500: oklch(0.85 0.09 29);
110
+ --color-danger-600: oklch(87.78296875% 0.07 29);
111
+ --color-danger-700: oklch(92.27515625% 0.04 29);
112
+
113
+ --color-orange-500: oklch(0.85 0.05 59);
114
+ --color-purple-500: oklch(0.85 0.09 299);
115
+ --color-fuschia-500: oklch(0.86 0.09 329);
116
+ --color-cyan-500: oklch(0.83 0.09 189);
117
+
118
+ --color-backdrop: oklch(5% 0.006 269 / 0.7);
119
+ --color-shadow: oklch(5% 0.015 269 / 0.1);
120
+ --color-light: oklch(100% 0.006 269 / 0.1);
121
+ }
122
+
123
+ @media (prefers-color-scheme: dark) {
124
+ :root:not(.theme-light) {
125
+ --color-grey-00: oklch(0.17 0.02 269);
126
+ --color-grey-20: oklch(0.19 0.02 269);
127
+ --color-grey-35: oklch(21% 0.02 269);
128
+ --color-grey-50: oklch(23% 0.02 269);
129
+ --color-grey-100: oklch(28% 0.02 269);
130
+ --color-grey-200: oklch(41.11328125% 0.02 269);
131
+ --color-grey-300: oklch(67.07984375% 0.02 269);
132
+ --color-grey-400: oklch(76.06421875% 0.02 269);
133
+ --color-grey-500: oklch(0.84 0.02 269);
134
+ --color-grey-600: oklch(86.80640625% 0.02 269);
135
+ --color-grey-700: oklch(91.88453125% 0.02 269);
136
+ --color-grey-800: oklch(96.57203125% 0.02 269);
137
+ --color-grey-900: oklch(98% 0.02 269);
138
+
139
+ --color-info-50: oklch(23% 0.05 269);
140
+ --color-info-100: oklch(28% 0.09 269);
141
+ --color-info-200: oklch(31% 0.09 269);
142
+ --color-info-400: oklch(76.25953125% 0.09 269);
143
+ --color-info-500: oklch(0.84 0.09 260);
144
+ --color-info-600: oklch(87.00171875% 0.07 269);
145
+ --color-info-700: oklch(91.88453125% 0.04 269);
146
+
147
+ --color-success-50: oklch(23% 0.05 149);
148
+ --color-success-100: oklch(28% 0.09 149);
149
+ --color-success-200: oklch(40.13671875% 0.09 149);
150
+ --color-success-400: oklch(74.69703125% 0.09 149);
151
+ --color-success-500: oklch(0.83 0.09 149);
152
+ --color-success-600: oklch(85.82984375% 0.07 149);
153
+ --color-success-700: oklch(91.10328125% 0.04 149);
154
+
155
+ --color-warning-50: oklch(23% 0.05 89);
156
+ --color-warning-100: oklch(28% 0.09 89);
157
+ --color-warning-200: oklch(41.11328125% 0.09 89);
158
+ --color-warning-400: oklch(76.06421875% 0.09 89);
159
+ --color-warning-500: oklch(0.84 0.09 89);
160
+ --color-warning-600: oklch(86.80640625% 0.07 89);
161
+ --color-warning-700: oklch(91.68921875% 0.04 89);
162
+
163
+ --color-danger-50: oklch(23% 0.05 29);
164
+ --color-danger-100: oklch(28% 0.09 29);
165
+ --color-danger-200: oklch(41.89453125% 0.09 29);
166
+ --color-danger-400: oklch(77.23609375% 0.09 29);
167
+ --color-danger-500: oklch(0.85 0.09 29);
168
+ --color-danger-600: oklch(87.78296875% 0.07 29);
169
+ --color-danger-700: oklch(92.27515625% 0.04 29);
170
+
171
+ --color-orange-500: oklch(0.85 0.05 59);
172
+ --color-purple-500: oklch(0.85 0.09 299);
173
+ --color-fuschia-500: oklch(0.86 0.09 329);
174
+ --color-cyan-500: oklch(0.83 0.09 189);
175
+
176
+ --color-backdrop: oklch(5% 0.006 269 / 0.7);
177
+ --color-shadow: oklch(5% 0.015 269 / 0.1);
178
+ --color-light: oklch(100% 0.006 269 / 0.1);
179
+ }
180
+ }
181
+
182
+ body {
183
+ background: var(--color-grey-20);
184
+ color: var(--color-grey-500);
185
+ }
186
+
187
+ :focus-visible { outline: 2px solid var(--color-info-200); }
188
+
189
+ /* design_tokens/font.css */
190
+
191
+ :root {
192
+ --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
193
+ --font-serif: Athelas, Cambria, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
194
+ --font-mono: SF Mono, Menlo, Consolas, DejaVu Sans Mono, monospace;
195
+
196
+ --base-font-size: 16px;
197
+ --font-size-10: 0.482rem;
198
+ --font-size-20: 0.579rem;
199
+ --font-size-30: 0.694rem;
200
+ --font-size-40: 0.833rem;
201
+ --font-size-50: 1rem;
202
+ --font-size-60: 1.2rem;
203
+ --font-size-70: 1.4rem;
204
+ --font-size-80: 1.728rem;
205
+ --font-size-90: 2.074rem;
206
+ --font-size-100: 2.488rem;
207
+ --font-size-110: 2.986rem;
208
+ --font-size-120: 3.583rem;
209
+ --font-size-130: 4.3rem;
210
+ --font-size-140: 5.16rem;
211
+ }
212
+
213
+ html,
214
+ body {
215
+ font-size: var(--base-font-size);
216
+ }
217
+
218
+ body { font: 400 var(--font-size-50)/var(--space-3x) var(--font-sans); }
219
+ /* design_tokens/gradient.css */
220
+
221
+ :root,
222
+ :root.theme-light {
223
+ --gradient-bottom-grey-40: linear-gradient(0deg, var(--color-grey-300), var(--color-grey-400));
224
+
225
+ --gradient-top-grey-10: linear-gradient(180deg, var(--color-grey-35), var(--color-grey-50));
226
+ --gradient-top-grey-20: linear-gradient(180deg, var(--color-grey-50), var(--color-grey-100));
227
+ --gradient-top-grey-30: linear-gradient(180deg, var(--color-grey-100), var(--color-grey-200));
228
+
229
+ --gradient-top-grey-50: linear-gradient(180deg, var(--color-grey-500), var(--color-grey-600));
230
+ --gradient-top-grey-60: linear-gradient(180deg, var(--color-grey-600), var(--color-grey-700));
231
+ --gradient-top-grey-70: linear-gradient(180deg, var(--color-grey-700), var(--color-grey-800));
232
+ --gradient-top-grey-80: linear-gradient(180deg, var(--color-grey-800), var(--color-grey-900));
233
+
234
+ --gradient-top-primary-50: linear-gradient(180deg, var(--color-info-500), var(--color-info-600));
235
+ --gradient-top-primary-60: linear-gradient(180deg, var(--color-info-600), var(--color-info-700));
236
+ }
237
+
238
+ :root.theme-dark {
239
+ /* invert angle */
240
+ --gradient-bottom-grey-40: linear-gradient(0deg, var(--color-grey-400), var(--color-grey-300));
241
+
242
+ --gradient-top-grey-10: linear-gradient(180deg, var(--color-grey-50), var(--color-grey-35));
243
+ --gradient-top-grey-20: linear-gradient(180deg, var(--color-grey-100), var(--color-grey-50));
244
+ --gradient-top-grey-30: linear-gradient(180deg, var(--color-grey-200), var(--color-grey-100));
245
+
246
+ --gradient-top-grey-50: linear-gradient(180deg, var(--color-grey-500), var(--color-grey-400));
247
+ --gradient-top-grey-60: linear-gradient(180deg, var(--color-grey-600), var(--color-grey-500));
248
+ --gradient-top-grey-70: linear-gradient(180deg, var(--color-grey-800), var(--color-grey-700));
249
+ --gradient-top-grey-80: linear-gradient(180deg, var(--color-grey-900), var(--color-grey-800));
250
+
251
+ --gradient-top-primary-50: linear-gradient(180deg, var(--color-info-500), var(--color-info-400));
252
+ --gradient-top-primary-60: linear-gradient(180deg, var(--color-info-600), var(--color-info-500));
253
+ }
254
+
255
+ @media (prefers-color-scheme: dark) {
256
+ :root:not(.theme-light) {
257
+ /* dark */
258
+ --gradient-bottom-grey-40: linear-gradient(0deg, var(--color-grey-400), var(--color-grey-300));
259
+
260
+ --gradient-top-grey-10: linear-gradient(180deg, var(--color-grey-50), var(--color-grey-35));
261
+ --gradient-top-grey-20: linear-gradient(180deg, var(--color-grey-100), var(--color-grey-50));
262
+ --gradient-top-grey-30: linear-gradient(180deg, var(--color-grey-200), var(--color-grey-100));
263
+
264
+ --gradient-top-grey-50: linear-gradient(180deg, var(--color-grey-500), var(--color-grey-400));
265
+ --gradient-top-grey-60: linear-gradient(180deg, var(--color-grey-600), var(--color-grey-500));
266
+ --gradient-top-grey-70: linear-gradient(180deg, var(--color-grey-800), var(--color-grey-700));
267
+ --gradient-top-grey-80: linear-gradient(180deg, var(--color-grey-900), var(--color-grey-800));
268
+
269
+ --gradient-top-primary-50: linear-gradient(180deg, var(--color-info-500), var(--color-info-400));
270
+ --gradient-top-primary-60: linear-gradient(180deg, var(--color-info-600), var(--color-info-500));
271
+ }
272
+ }
273
+ /* design_tokens/shadow.css */
274
+
275
+ :root {
276
+ /* box-shadow */
277
+ --box-shadow-s:
278
+ 0 1px 1px 0 var(--color-shadow),
279
+ 0 1px 2px 0 var(--color-shadow);
280
+ --box-shadow-m:
281
+ 0 1px 1px 0 var(--color-shadow),
282
+ 0 1px 2px 0 var(--color-shadow),
283
+ 0 2px 4px -1px var(--color-shadow),
284
+ 0 4px 8px -2px var(--color-shadow);
285
+ --box-shadow-l:
286
+ 0 0px 2px 0 var(--color-shadow),
287
+ 0 1px 2px 0 var(--color-shadow),
288
+ 0 2px 4px -1px var(--color-shadow),
289
+ 0 4px 8px -2px var(--color-shadow),
290
+ 0 8px 16px -4px var(--color-shadow),
291
+ 0 16px 32px -8px var(--color-shadow);
292
+
293
+ /* inset box shadow */
294
+ --box-inset-shadow-s: 0 1px 1px 0 var(--color-shadow) inset;
295
+ --box-inset-shadow-m: 0 1px 1px 0px var(--color-shadow) inset,
296
+ 0 2px 2px 1px var(--color-shadow) inset;
297
+ --box-inset-shadow-l: 0 1px 1px 0px var(--color-shadow) inset,
298
+ 0 2px 2px 1px var(--color-shadow) inset,
299
+ 0 2px 8px 2px var(--color-shadow) inset;
300
+
301
+ /* text shadow */
302
+ --text-shadow-s: 0 1px 1px var(--color-shadow);
303
+ --text-shadow-m: 0 1px 1px var(--color-shadow),
304
+ 0 2px 2px var(--color-shadow);
305
+ --text-shadow-l: 0 1px 1px var(--color-shadow),
306
+ 0 2px 2px var(--color-shadow),
307
+ 0 4px 4px var(--color-shadow);
308
+ }
309
+ /* design_tokens/shape.css */
310
+
311
+ :root {
312
+ /* border radius */
313
+ --border-radius-s: calc(var(--space) * 0.25);
314
+ --border-radius-m: var(--space-1-2);
315
+ --border-radius-l: calc(var(--space) * 1);
316
+
317
+ /* aspect ratio */
318
+ }
319
+ /* design_tokens/space.css */
320
+
321
+ *,
322
+ *::before,
323
+ *::after {
324
+ box-sizing: border-box;
325
+ }
326
+
327
+ :root {
328
+ --space: 0.5rem;
329
+ /* divided */
330
+ --space-1-4: calc(var(--space) / 4);
331
+ --space-1-2: calc(var(--space) / 2);
332
+ /* multiple */
333
+ --space-2x: calc(var(--space) * 2);
334
+ --space-3x: calc(var(--space) * 3);
335
+ --space-4x: calc(var(--space) * 4);
336
+ --space-5x: calc(var(--space) * 5);
337
+ --space-6x: calc(var(--space) * 6);
338
+ --space-7x: calc(var(--space) * 7);
339
+ --space-8x: calc(var(--space) * 8);
340
+ --space-9x: calc(var(--space) * 9);
341
+ --space-10x: calc(var(--space) * 10);
342
+ --space-11x: calc(var(--space) * 11);
343
+ --space-12x: calc(var(--space) * 12);
344
+ --space-13x: calc(var(--space) * 13);
345
+ --space-14x: calc(var(--space) * 14);
346
+
347
+ --screen-s: 900px;
348
+ --screen-m: 1200px;
349
+ --screen-l: 1400px;
350
+ }
351
+
352
+ .is-flowing > * + * {
353
+ margin-top: var(--space-3x);
354
+ }
355
+ /* design_tokens/motion.css */
356
+
357
+ html:focus-within {
358
+ scroll-behavior: smooth;
359
+ }
360
+
361
+ /* force reduced motion if preference is set */
362
+
363
+ @media (prefers-reduced-motion: reduce) {
364
+ *, ::before, ::after {
365
+ animation-delay: -1ms !important;
366
+ animation-duration: 1ms !important;
367
+ animation-iteration-count: 1 !important;
368
+ background-attachment: initial !important;
369
+ scroll-behavior: auto !important;
370
+ transition-duration: 0s !important;
371
+ transition-delay: 0s !important;
372
+ }
373
+ }
374
+
375
+ /* elements */
376
+
377
+ ::-moz-selection,
378
+ ::selection {
379
+ background: var(--color-info-100);
380
+ color: var(--color-info-700);
381
+ text-shadow: none;
382
+ }
383
+
384
+ p {
385
+ margin: 0;
386
+ padding: calc(var(--space) - 2px) 0 calc(var(--space-2x) + 2px);
387
+
388
+ &.is-large {
389
+ font-size: var(--font-size-70);
390
+ line-height: var(--space-4x);
391
+ padding: var(--space) 0 var(--space-2x); /* adjust baseline */
392
+ }
393
+
394
+ & + :not(p) {
395
+ margin-top: var(--space-3x);
396
+ }
397
+
398
+ & code,
399
+ & kbd,
400
+ & samp,
401
+ & small {
402
+ line-height: 0;
403
+ }
404
+ }
405
+
406
+ h1,
407
+ .is-h1 {
408
+ display: inline-block;
409
+ margin: 0;
410
+ padding: calc(var(--space-2x) + 2px) 0 calc(var(--space) - 2px);
411
+ color: var(--color-grey-700);
412
+ font-size: var(--font-size-110);
413
+ font-weight: 700;
414
+ letter-spacing: -0.05rem;
415
+ line-height: var(--space-7x);
416
+ text-transform: none;
417
+ }
418
+
419
+ h2,
420
+ .is-h2 {
421
+ margin: 0;
422
+ padding: calc(var(--space) + 1px) 0 calc(var(--space-2x) - 1px);
423
+ color: var(--color-grey-700);
424
+ font-size: var(--font-size-100);
425
+ font-weight: 700;
426
+ letter-spacing: -0.05rem;
427
+ line-height: var(--space-6x);
428
+ text-transform: none;
429
+ }
430
+
431
+ * + h2,
432
+ * + .is-h2 {
433
+ margin-top: var(--space-3x);
434
+ }
435
+
436
+ h3,
437
+ .is-h3 {
438
+ margin: 0;
439
+ padding: calc(var(--space) - 3px) 0 calc(var(--space-2x) + 3px);
440
+ color: var(--color-grey-700);
441
+ font-size: var(--font-size-60);
442
+ font-weight: 700;
443
+ letter-spacing: 0;
444
+ line-height: var(--space-3x);
445
+ text-transform: none;
446
+ }
447
+
448
+ h4,
449
+ .is-h4 {
450
+ margin: 0;
451
+ padding: calc(var(--space) - 1px) 0 calc(var(--space-2x) + 1px);
452
+ color: var(--color-grey-700);
453
+ font-size: var(--font-size-40);
454
+ letter-spacing: 0.1rem;
455
+ line-height: var(--space-3x);
456
+ text-transform: uppercase;
457
+
458
+ & + p { margin-top: -24px; }
459
+ }
460
+
461
+ strong {
462
+ color: var(--color-grey-700);
463
+ font-weight: inherit;
464
+ }
465
+
466
+ small {
467
+ font-size: var(--font-size-30);
468
+ font-weight: 400;
469
+ text-transform: none;
470
+ color: var(--color-grey-400);
471
+ }
472
+
473
+ hr {
474
+ height: var(--space-3x);
475
+ margin: 0;
476
+ padding: var(--space-3x) 0 calc(var(--space-3x) - 1px);
477
+ background: transparent;
478
+ border: 0;
479
+ box-shadow: 0 -1px 0 0 var(--color-grey-50);
480
+ }
481
+
482
+ blockquote {
483
+ margin: 0;
484
+ padding: var(--space-2x) 0 var(--space) calc(var(--space-2x) + 2px);
485
+ border-left: calc(var(--space) / 2) solid var(--color-grey-100);
486
+ color: var(--color-grey-500);
487
+ font-family: var(--font-serif);
488
+ font-size: var(--font-size-80);
489
+ font-style: italic;
490
+ line-height: var(--space-4x);
491
+
492
+ & q,
493
+ & p {
494
+ display: block;
495
+ color: var(--color-danger-500);
496
+ }
497
+ & * + *,
498
+ & + * { margin-top: var(--space-3x); }
499
+
500
+ }
501
+
502
+ cite {
503
+ position: relative;
504
+ display: inline-block;
505
+ margin: 0;
506
+ top: 0;
507
+ font-size: var(--font-size-50);
508
+ font-style: normal;
509
+ line-height: 0;
510
+ font-weight: 700;
511
+ }
512
+
513
+ sub,
514
+ sup {
515
+ line-height: 0; /* prevent line height shift */
516
+ }
517
+
518
+ kbd {
519
+ padding: 0 var(--space-1-2);
520
+ background-color: var(--color-grey-50);
521
+ box-shadow:
522
+ 0 0 0 1px var(--color-grey-300),
523
+ var(--box-shadow-m);
524
+ border-radius: var(--space-1-2);
525
+ color: var(--color-grey-700);
526
+ font-size: var(--font-size-40);
527
+ line-height: var(--space-3x);
528
+ white-space: nowrap;
529
+ text-transform: uppercase;
530
+ font-family: var(--font-mono);
531
+ font-weight: 700;
532
+ }
533
+
534
+ q { font-style: italic; }
535
+
536
+ mark {
537
+ background-color: var(--color-warning-200);
538
+ color: var(--color-warning-600);
539
+ }
540
+
541
+ details {
542
+ display: block;
543
+ background: var(--color-grey-35);
544
+ box-shadow: 0 0 0 1px var(--color-grey-50) inset,
545
+ var(--box-shadow-s);
546
+ border-radius: var(--border-radius-m, 0);
547
+ color: var(--color-grey-700);
548
+
549
+ & p {
550
+ margin-top: calc(var(--space) * 1);
551
+ padding: 6px var(--space-2x) 18px;
552
+ }
553
+ p + & { margin-top: var(--space-3x); }
554
+ }
555
+
556
+ summary {
557
+ outline: 0 none;
558
+ padding: 6px var(--space-2x) 10px;
559
+ cursor: pointer;
560
+
561
+ &:focus {
562
+ outline: 0 none;
563
+ border: 0;
564
+ }
565
+ }
566
+ button,
567
+ input[type="submit"],
568
+ input[type="button"],
569
+ input[type="reset"],
570
+ [role="button"],
571
+ :any-link[role="button"],
572
+ .button {
573
+ display: inline-flex;
574
+ gap: var(--space);
575
+ width: auto;
576
+ cursor: pointer;
577
+ align-items: center;
578
+ justify-content: center;
579
+ align-self: start;
580
+ background-color: transparent;
581
+ min-height: var(--space-5x);
582
+ margin: 0;
583
+ padding: var(--space) calc(var(--space) * 2);
584
+ border: none;
585
+ border-radius: var(--border-radius-s, 0);
586
+ box-shadow: 0 0 0 1px var(--color-grey-200) inset, var(--box-shadow-s);
587
+ outline: 0;
588
+ color: var(--color-grey-700);
589
+ font: inherit;
590
+ font-family: inherit;
591
+ font-size: var(--font-size-40);
592
+ font-weight: 700;
593
+ letter-spacing: 0.05rem;
594
+ line-height: var(--space-3x);
595
+ text-align: center;
596
+ text-decoration: none;
597
+ text-transform: uppercase;
598
+ text-shadow: var(--text-shadow-s);
599
+
600
+ @media screen and (-ms-high-contrast: active) { border: 2px solid currentcolor; }
601
+
602
+ &:hover,
603
+ &:active {
604
+ color: var(--color-grey-800);
605
+ box-shadow: 0 0 0 1px var(--color-grey-300) inset, var(--box-shadow-s);
606
+ transition: 0.2s all ease-in-out;
607
+ }
608
+
609
+ &:focus {
610
+ outline: 2px solid var(--color-info-200);
611
+ border: 0;
612
+ color: var(--color-grey-900);
613
+ z-index: 1;
614
+ &:not(:focus-visible) { outline: none; }
615
+ }
616
+
617
+ & svg {
618
+ height: calc(var(--space) * 2);
619
+ width: calc(var(--space) * 2);
620
+ display: inline-block;
621
+ fill: none;
622
+ stroke: currentColor;
623
+ stroke-width: 2;
624
+ stroke-linecap: round;
625
+ stroke-linejoin: round;
626
+ }
627
+
628
+ &[type="reset"],
629
+ &.is-reset {
630
+ color: var(--color-danger-500);
631
+
632
+ &:hover,
633
+ &:active {
634
+ background: var(--color-danger-500);
635
+ color: var(--color-grey-20);
636
+ box-shadow: 0 0 0 1px var(--color-danger-600) inset, var(--box-shadow-s);
637
+ }
638
+ &:focus {
639
+ background: var(--color-danger-500);
640
+ color: var(--color-grey-20);
641
+ outline: 2px solid var(--color-danger-200);
642
+ }
643
+ }
644
+
645
+ &[aria-expanded="true"] {
646
+ background: var(--color-grey-00);
647
+ color: var(--color-grey-600);
648
+ box-shadow: 0 0 0 1px var(--color-grey-200) inset, var(--box-inset-shadow-m);
649
+ }
650
+
651
+ &[aria-pressed="true"] {
652
+ background: var(--color-grey-100);
653
+ color: var(--color-info-600);
654
+ box-shadow: 0 0 0 1px var(--color-grey-200) inset, var(--box-inset-shadow-m);
655
+ }
656
+
657
+ &.is-block { width: 100%; }
658
+
659
+ &.is-strong {
660
+ background: var(--color-grey-700);
661
+ background: var(--gradient-top-grey-60);
662
+ color: var(--color-grey-20);
663
+ box-shadow:
664
+ 0 -1px 1px 0 var(--color-shadow) inset,
665
+ 0 1px 2px 0 var(--color-light) inset,
666
+ var(--box-shadow-m);
667
+
668
+ &:hover,
669
+ &:active {
670
+ background: var(--color-grey-800);
671
+ background: var(--gradient-top-grey-70);
672
+ color: var(--color-grey-20);
673
+ box-shadow: 0 -1px 1px 0 var(--color-shadow) inset,
674
+ 0 1px 2px 0 var(--color-light) inset,
675
+ var(--box-shadow-m);
676
+ }
677
+ &:focus { color: var(--color-grey-20); }
678
+ }
679
+
680
+ &.is-link {
681
+ background: transparent;
682
+ color: var(--color-grey-500);
683
+ text-decoration: underline;
684
+ border-color: transparent;
685
+ box-shadow: none;
686
+
687
+ &:hover,
688
+ &:active {
689
+ background: transparent;
690
+ color: var(--color-grey-700);
691
+ box-shadow: none;
692
+ }
693
+ &:focus { color: var(--color-grey-700); }
694
+ }
695
+
696
+ &.is-icon svg { margin: var(--space-1-2) calc(var(--space) * -0.5); }
697
+
698
+ &.is-small {
699
+ border-radius: var(--border-radius-s);
700
+ font-size: var(--font-size-30);
701
+ line-height: var(--space-3x);
702
+ min-height: var(--space-3x);
703
+ padding: 0 calc(var(--space) * 1.5);
704
+
705
+ & svg {
706
+ height: var(--space);
707
+ width: var(--space);
708
+ }
709
+
710
+ &.is-icon svg {
711
+ margin: 0 calc(var(--space) * -1);
712
+ }
713
+ }
714
+
715
+ &.is-large {
716
+ border-radius: var(--border-radius-m);
717
+ font-size: var(--font-size-50);
718
+ line-height: calc(var(--space) * 6);
719
+ min-height: calc(var(--space) * 8);
720
+ padding: var(--space) calc(var(--space) * 3);
721
+
722
+ & svg {
723
+ height: var(--space-3x);
724
+ width: var(--space-3x);
725
+ }
726
+
727
+ &.is-icon svg {
728
+ margin: 0 calc(var(--space) * -0.5);
729
+ }
730
+ }
731
+ }
732
+ code,
733
+ pre {
734
+ font-family: var(--font-mono);
735
+ color: var(--color-grey-500);
736
+ font-size: inherit;
737
+ line-height: inherit;
738
+ overflow-y: auto;
739
+ word-wrap: normal;
740
+ white-space: pre-wrap;
741
+ word-spacing: normal;
742
+ word-break: normal;
743
+ margin: 0;
744
+ }
745
+
746
+ code {
747
+ background: var(--color-grey-50);
748
+ }
749
+
750
+ pre {
751
+ padding: calc(var(--space) * 1 - 1px) 0 calc(var(--space) * 2 + 1px);
752
+
753
+ & p {
754
+ padding: 0 0 var(--space-3x);
755
+ font-family: inherit;
756
+ font-size: inherit;
757
+ }
758
+ }
759
+ form {
760
+ overflow: visible;
761
+ width: 100%;;
762
+ & > * + * { margin-top: var(--space-3x); }
763
+ & *[hidden] { margin: 0; }
764
+ }
765
+
766
+ fieldset {
767
+ padding: 0 var(--space-3x) var(--space-3x);
768
+ margin-inline: 0;
769
+ border: 1px solid var(--color-grey-50);
770
+ overflow: visible;
771
+ & > * + * { margin-top: var(--space-3x); }
772
+ }
773
+
774
+ legend {
775
+ transform: translateY(-2px);
776
+ margin: calc(var(--space-3x) * -1) auto 0;
777
+ }
778
+
779
+ label {
780
+ display: block;
781
+ line-height: var(--space-3x);
782
+ padding: 0;
783
+ text-align: left;
784
+ text-transform: uppercase;
785
+ font-size: var(--font-size-30);
786
+ font-weight: 400;
787
+ letter-spacing: 0.1rem;
788
+ color: var(--color-grey-500);
789
+ -webkit-user-select: none;
790
+
791
+ & .badge,
792
+ & small {
793
+ text-transform: none;
794
+ letter-spacing: 0;
795
+ }
796
+ }
797
+
798
+ input,
799
+ select,
800
+ textarea,
801
+ output {
802
+ display: block;
803
+ width: 100%;
804
+ background-color: var(--color-grey-00);
805
+ min-height: var(--space-5x);
806
+ padding: calc(var(--space) - 1px) calc(var(--space-2x) - 1px);
807
+ margin: 0;
808
+ border: 1px solid var(--color-grey-50);
809
+ border-radius: var(--border-radius-s, 0);
810
+ outline: 0 none;
811
+ box-shadow: var(--box-inset-shadow-s);
812
+ color: var(--color-grey-600);
813
+ font-family: inherit;
814
+ font-size: var(--base-font-size);
815
+ line-height: var(--space-3x);
816
+
817
+ &:focus {
818
+ outline: 0 none;
819
+ border-color: var(--color-info-400);
820
+ box-shadow: 0 0 0 2px var(--color-info-200), var(--box-shadow-s);
821
+ &:not(:focus-visible) { outline: none; }
822
+ }
823
+
824
+ &[disabled] {
825
+ border-color: var(--color-grey-100);
826
+ color: var(--color-grey-20);
827
+ background-color: var(--color-grey-100);
828
+ box-shadow: none;
829
+ cursor: not-allowed;
830
+ opacity: 1;
831
+ }
832
+
833
+ &[readonly] {
834
+ border: 1px dashed var(--color-grey-200);
835
+ cursor: not-allowed;
836
+ color: var(--color-grey-500);
837
+ background-color: transparent;
838
+ box-shadow: none;
839
+ }
840
+
841
+ &:-internal-autofill-selected {
842
+ font-size: var(--base-font-size);
843
+ background-color: var(--color-success-100) !important;
844
+ }
845
+
846
+ &:-webkit-autofill {
847
+ &:focus,
848
+ &:hover {
849
+ border-color:var(--color-info-200);
850
+ font-size: var(--base-font-size);
851
+ -webkit-text-fill-color:var(--color-info-700);
852
+ -webkit-box-shadow: 0 0 0px 1000px var(--color-info-100) inset;
853
+ box-shadow: 0 0 0px 1000px var(--color-info-100) inset;
854
+ transition: background-color 5000s ease-in-out 0s;
855
+ }
856
+ }
857
+
858
+ label + & { margin-top: 0; }
859
+ }
860
+
861
+ ::placeholder { color: var(--color-grey-300); }
862
+
863
+ textarea,
864
+ select[multiple] {
865
+ min-height: calc(var(--space) * 11);
866
+ }
867
+
868
+ textarea { resize: vertical; }
869
+
870
+ input[type="file"],
871
+ input[type="date"],
872
+ input[type="time"] {
873
+ height: var(--space-5x);
874
+ }
875
+
876
+ input[type="date"],
877
+ input[type="time"],
878
+ input[type="tel"],
879
+ input[type="number"] {
880
+ max-width: 16ch;
881
+ }
882
+
883
+ input[type="date"]::-webkit-calendar-picker-indicator,
884
+ input[type="time"]::-webkit-calendar-picker-indicator {
885
+ opacity: .8;
886
+ .theme-dark & { filter: invert(0.5); }
887
+ }
888
+
889
+ input[type="color"] {
890
+ max-width: var(--space-5x);
891
+ padding: 0;
892
+ position: relative;
893
+ }
894
+ fieldset.is-checkbox {
895
+ border: 0;
896
+ padding: 0;
897
+ margin: var(--space-3x) 0 0;
898
+ transform: translateY(0);
899
+
900
+ & legend {
901
+ display: block;
902
+ transform: translateY(0);
903
+ line-height: var(--space-3x);
904
+ padding: 0;
905
+ margin: 0;
906
+ text-align: left;
907
+ text-transform: uppercase;
908
+ font-size: var(--font-size-30);
909
+ font-weight: 400;
910
+ letter-spacing: 0.1rem;
911
+ color: var(--color-grey-500);
912
+ user-select: none;
913
+ }
914
+
915
+ & label,
916
+ & input {
917
+ min-height: var(--space-2x);
918
+ padding: 0;
919
+ font-size: 1rem;
920
+ letter-spacing: 0;
921
+ text-transform: none;
922
+ }
923
+
924
+ & label { margin: -2px 2px 2px; }
925
+
926
+ & > * + * { margin-top: 0; }
927
+ }
928
+
929
+
930
+ input[type="checkbox"],
931
+ input[type="radio"] {
932
+ box-shadow: none;
933
+ height: var(--space-2x);
934
+ width: var(--space-2x);
935
+ min-height: var(--space-2x);
936
+ appearance: none;
937
+
938
+ outline: none;
939
+ display: inline-block;
940
+ vertical-align: top;
941
+ position: relative;
942
+ margin: var(--space-1-2) 0 0;
943
+ padding: 0;
944
+ cursor: pointer;
945
+ border: 1px solid var(--color-grey-200);
946
+ background: var(--color-grey-20);
947
+ transition: background .3s, border-color .3s, box-shadow .2s;
948
+
949
+ &[disabled] {
950
+ & + span {
951
+ color: var(--color-grey-300);
952
+ display: inline-block;
953
+ }
954
+ }
955
+
956
+ &:after {
957
+ content: '';
958
+ display: block;
959
+ left: 0;
960
+ top: 0;
961
+ position: absolute;
962
+ transition: transform var(--d-t, .3s) var(--d-t-e, ease), opacity var(--d-o, .2s);
963
+ opacity: var(--o, 0);
964
+ }
965
+
966
+ &:checked {
967
+ background: var(--color-info-500);
968
+ border-color: var(--color-info-200);
969
+ --d-o: .3s;
970
+ --d-t: .6s;
971
+ --d-t-e: cubic-bezier(.2, .85, .32, 1.2);
972
+ }
973
+
974
+ &:disabled {
975
+ background: var(--color-grey-200);
976
+ cursor: not-allowed;
977
+
978
+ & + label { cursor: not-allowed; }
979
+ &:checked { border-color: var(--color-grey-200); }
980
+ }
981
+
982
+ &:hover {
983
+ &:not(:checked) {
984
+ &:not(:disabled) {
985
+ border-color: var(--color-grey-300);
986
+ }
987
+ }
988
+ }
989
+
990
+ &:focus {
991
+ border-color: var(--color-info-200);
992
+ box-shadow: 0 0 0 2px var(--color-info-200);
993
+ }
994
+
995
+ }
996
+
997
+ input[type='checkbox'] {
998
+ border-radius: var(--border-radius-m);
999
+ width: var(--space-2x);
1000
+
1001
+ &:after {
1002
+ width: 6px;
1003
+ height: 10px;
1004
+ border: 2px solid var(--color-grey-00);
1005
+ border-top: 0;
1006
+ border-left: 0;
1007
+ left: 5px;
1008
+ top: 0px;
1009
+ transform: rotate(var(--r, 15deg));
1010
+ opacity: var(--o, 0);
1011
+ }
1012
+
1013
+ &:checked {
1014
+ --r: 45deg;
1015
+ --o: 1;
1016
+ }
1017
+ }
1018
+
1019
+ input[type='radio'] {
1020
+ border-radius: 50%;
1021
+ width: var(--space-2x);
1022
+ &:after {
1023
+ width: var(--space-2x);
1024
+ height: var(--space-2x);
1025
+ border-radius: 50%;
1026
+ background: var(--color-grey-20);
1027
+ opacity: 0;
1028
+ left: -1px;
1029
+ top: -1px;
1030
+ transform: scale(var(--s, 1));
1031
+ opacity: var(--o, 0);
1032
+ }
1033
+ &:checked {
1034
+ --s: .5;
1035
+ --o: 1;
1036
+ }
1037
+ }
1038
+ select {
1039
+ appearance: none;
1040
+ background-color: transparent;
1041
+ margin: 0;
1042
+ z-index: 1;
1043
+ box-shadow: 0 0 0 1px var(--color-grey-200) inset,
1044
+ var(--box-shadow-s);
1045
+
1046
+ &::-ms-expand { display: none; }
1047
+ &:focus + .focus {
1048
+ position: absolute;
1049
+ top: -1px;
1050
+ left: -1px;
1051
+ right: -1px;
1052
+ bottom: -1px;
1053
+ border: 1px solid var(--color-info-200);
1054
+ box-shadow: 0 0 0 1px var(--color-info-200) inset,
1055
+ var(--box-shadow-s);
1056
+ border-radius: inherit;
1057
+ }
1058
+ &[multiple] {
1059
+ padding-right: 0;
1060
+ height: 6rem;
1061
+ margin-top: 0;
1062
+ & option {
1063
+ white-space: normal;
1064
+ outline-color: var(--select-focus);
1065
+ }
1066
+ }
1067
+ }
1068
+
1069
+ .select {
1070
+ display: grid;
1071
+ grid-template-areas: "select";
1072
+ align-items: center;
1073
+ position: relative;
1074
+ background-color: transparent;
1075
+ border-radius: var(--border-radius-s, 0);
1076
+ margin: 2px 0 -2px;
1077
+ cursor: pointer;
1078
+ & select,
1079
+ &::after {
1080
+ grid-area: select;
1081
+ }
1082
+
1083
+ &:not(.select--multiple)::after {
1084
+ content: "";
1085
+ display: block;
1086
+ width: 8px;
1087
+ height: 8px;
1088
+ position: absolute;
1089
+ right: 16px;
1090
+ top: 14px;
1091
+ border-bottom: 2px solid;
1092
+ border-right: 2px solid;
1093
+ transform: rotate(45deg);
1094
+ }
1095
+ }
1096
+
1097
+ .select--disabled {
1098
+ cursor: not-allowed;
1099
+ background-color: var(--color-grey-200);
1100
+ }
1101
+ svg {
1102
+ vertical-align: middle;
1103
+ }
1104
+
1105
+ /* use feathers icons as inline svg for icons */
1106
+
1107
+ .is-icon svg,
1108
+ svg.is-icon {
1109
+ display: inline-block;
1110
+ fill: none;
1111
+ stroke: currentColor;
1112
+ stroke-width: 2;
1113
+ stroke-linecap: round;
1114
+ stroke-linejoin: round;
1115
+ }
1116
+ img {
1117
+ max-width: 100%;
1118
+ display: block;
1119
+ }
1120
+
1121
+ figure {
1122
+ display: block;
1123
+ text-align: center;
1124
+ margin: 0;
1125
+
1126
+ & img { margin: 0 auto; }
1127
+ }
1128
+
1129
+ figcaption {
1130
+ text-align: center;
1131
+ font-size: var(--font-size-40);
1132
+ padding: calc(var(--space) - 1px) 0 calc(var(--space-2x) + 1px);
1133
+ }
1134
+
1135
+ picture {
1136
+ display: block;
1137
+ position: relative;
1138
+ overflow: hidden;
1139
+
1140
+ & img { margin-inline: auto; }
1141
+ & svg {
1142
+ width: auto;
1143
+ height: auto;
1144
+ max-width: 100%;
1145
+ display: block;
1146
+ }
1147
+
1148
+ &.is-16-9 {
1149
+ aspect-ratio: 16/9;
1150
+ & img {
1151
+ object-fit: cover;
1152
+ width: 100%;
1153
+ height: 100%;
1154
+ }
1155
+ }
1156
+
1157
+ &.is-3-2 {
1158
+ aspect-ratio: 3/2;
1159
+ & img {
1160
+ object-fit: cover;
1161
+ width: 100%;
1162
+ height: 100%;
1163
+ }
1164
+ }
1165
+
1166
+ &.is-1-1 {
1167
+ aspect-ratio: 1/1;
1168
+ & img {
1169
+ object-fit: cover;
1170
+ width: 100%;
1171
+ height: 100%;
1172
+ }
1173
+ }
1174
+ }
1175
+ a:any-link {
1176
+ color: var(--color-info-500);
1177
+ text-decoration: underline;
1178
+
1179
+ &:hover { color: var(--color-info-600); }
1180
+
1181
+ &[target="_blank"] {
1182
+ padding-right: 16px;
1183
+ position: relative;
1184
+ display: inline-block;
1185
+ &::after,
1186
+ &::before {
1187
+ content: "";
1188
+ display: block;
1189
+ position: absolute;
1190
+ right: 0;
1191
+ }
1192
+ &::before {
1193
+ background: currentColor;
1194
+ transform: rotate(-45deg);
1195
+ top: 50%;
1196
+ height: 2px;
1197
+ width: 12px;
1198
+ }
1199
+ &::after {
1200
+ width: 8px;
1201
+ height: 8px;
1202
+ border-right: 2px solid;
1203
+ border-top: 2px solid;
1204
+ top: calc(50% - 5px);
1205
+ }
1206
+ }
1207
+
1208
+ &.is-icon[target="_blank"] {
1209
+ padding-right: 0;
1210
+ &::after,
1211
+ &::before {
1212
+ content: none;
1213
+ background: none;
1214
+ width: 0;
1215
+ height: 0;
1216
+ }
1217
+ }
1218
+ }
1219
+
1220
+ ul,
1221
+ ol,
1222
+ dl {
1223
+ margin: 0;
1224
+ padding: 6px 0 18px 24px;
1225
+ }
1226
+
1227
+ ul ul,
1228
+ ol ol,
1229
+ ol ul {
1230
+ padding: 0 0 0 24px;
1231
+ }
1232
+
1233
+ ul.is-nobullet {
1234
+ list-style-type: none;
1235
+ padding: 0;
1236
+ }
1237
+
1238
+ dl {
1239
+ padding: 6px 0 18px 0;
1240
+ }
1241
+
1242
+ dt {
1243
+ font-weight: 700;
1244
+ color: var(--color-grey-700);
1245
+ }
1246
+
1247
+ dd {
1248
+ margin: 0;
1249
+ }
1250
+
1251
+ dd + dt {
1252
+ margin-top: var(--space-3x)
1253
+ }
1254
+ table {
1255
+ width: 100%;
1256
+ padding: 0;
1257
+ border-spacing: 0;
1258
+ }
1259
+
1260
+ thead {
1261
+ box-shadow: 0 -1px 0 0 var(--color-grey-50) inset;
1262
+ }
1263
+
1264
+ tfoot {
1265
+ box-shadow: 0 -1px 0 0 var(--color-grey-50);
1266
+ }
1267
+
1268
+ caption {
1269
+ color: var(--color-grey-500);
1270
+ padding: 6px 0 18px;
1271
+ }
1272
+
1273
+ th {
1274
+ text-transform: uppercase;
1275
+ font-weight: 700;
1276
+ font-size: var(--font-size-30);
1277
+ letter-spacing: 0.03em;
1278
+ transform: translateY(2px);
1279
+ padding: 12px 24px;
1280
+ text-align: left;
1281
+ color: var(--color-grey-500);
1282
+ }
1283
+
1284
+ tbody tr {
1285
+ box-shadow: 0 -1px 0 0 var(--color-grey-50) inset;
1286
+ &:hover { background: var(--color-grey-50); }
1287
+ }
1288
+
1289
+ td {
1290
+ color: var(--color-grey-500);
1291
+ padding: 12px 24px;
1292
+ }
1293
+
1294
+ th.is-right,
1295
+ td.is-right {
1296
+ text-align: right;
1297
+ }