asciidoctor-epub3 1.5.0.alpha.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/CHANGELOG.adoc +199 -0
  4. data/Gemfile +16 -0
  5. data/LICENSE.adoc +25 -0
  6. data/NOTICE.adoc +54 -0
  7. data/README.adoc +1001 -0
  8. data/Rakefile +5 -0
  9. data/asciidoctor-epub3.gemspec +42 -0
  10. data/bin/adb-push-ebook +35 -0
  11. data/bin/asciidoctor-epub3 +30 -0
  12. data/data/fonts/assorted-icons.ttf +0 -0
  13. data/data/fonts/fontawesome-icons.ttf +0 -0
  14. data/data/fonts/mplus1mn-bold-ascii.ttf +0 -0
  15. data/data/fonts/mplus1mn-bolditalic-ascii.ttf +0 -0
  16. data/data/fonts/mplus1mn-italic-ascii.ttf +0 -0
  17. data/data/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
  18. data/data/fonts/mplus1p-bold-latin-cyrillic.ttf +0 -0
  19. data/data/fonts/mplus1p-bold-latin-ext.ttf +0 -0
  20. data/data/fonts/mplus1p-bold-latin.ttf +0 -0
  21. data/data/fonts/mplus1p-bold-multilingual.ttf +0 -0
  22. data/data/fonts/mplus1p-light-latin-cyrillic.ttf +0 -0
  23. data/data/fonts/mplus1p-light-latin-ext.ttf +0 -0
  24. data/data/fonts/mplus1p-light-latin.ttf +0 -0
  25. data/data/fonts/mplus1p-light-multilingual.ttf +0 -0
  26. data/data/fonts/mplus1p-regular-latin-cyrillic.ttf +0 -0
  27. data/data/fonts/mplus1p-regular-latin-ext.ttf +0 -0
  28. data/data/fonts/mplus1p-regular-latin.ttf +0 -0
  29. data/data/fonts/mplus1p-regular-multilingual.ttf +0 -0
  30. data/data/fonts/notoserif-bold-latin-cyrillic.ttf +0 -0
  31. data/data/fonts/notoserif-bold-latin-ext.ttf +0 -0
  32. data/data/fonts/notoserif-bold-latin.ttf +0 -0
  33. data/data/fonts/notoserif-bold-multilingual.ttf +0 -0
  34. data/data/fonts/notoserif-bolditalic-latin-cyrillic.ttf +0 -0
  35. data/data/fonts/notoserif-bolditalic-latin-ext.ttf +0 -0
  36. data/data/fonts/notoserif-bolditalic-latin.ttf +0 -0
  37. data/data/fonts/notoserif-bolditalic-multilingual.ttf +0 -0
  38. data/data/fonts/notoserif-italic-latin-cyrillic.ttf +0 -0
  39. data/data/fonts/notoserif-italic-latin-ext.ttf +0 -0
  40. data/data/fonts/notoserif-italic-latin.ttf +0 -0
  41. data/data/fonts/notoserif-italic-multilingual.ttf +0 -0
  42. data/data/fonts/notoserif-regular-latin-cyrillic.ttf +0 -0
  43. data/data/fonts/notoserif-regular-latin-ext.ttf +0 -0
  44. data/data/fonts/notoserif-regular-latin.ttf +0 -0
  45. data/data/fonts/notoserif-regular-multilingual.ttf +0 -0
  46. data/data/images/default-avatar.jpg +0 -0
  47. data/data/images/default-avatar.png +0 -0
  48. data/data/images/default-avatar.svg +67 -0
  49. data/data/images/default-cover.svg +53 -0
  50. data/data/images/default-headshot.jpg +0 -0
  51. data/data/images/default-headshot.png +0 -0
  52. data/data/styles/color-palette.css +28 -0
  53. data/data/styles/epub3-css3-only.css +226 -0
  54. data/data/styles/epub3-fonts.css +94 -0
  55. data/data/styles/epub3.css +1266 -0
  56. data/lib/asciidoctor-epub3.rb +11 -0
  57. data/lib/asciidoctor-epub3/converter.rb +951 -0
  58. data/lib/asciidoctor-epub3/ext.rb +4 -0
  59. data/lib/asciidoctor-epub3/ext/asciidoctor.rb +3 -0
  60. data/lib/asciidoctor-epub3/ext/asciidoctor/logging_shim.rb +33 -0
  61. data/lib/asciidoctor-epub3/ext/core.rb +3 -0
  62. data/lib/asciidoctor-epub3/ext/core/string.rb +9 -0
  63. data/lib/asciidoctor-epub3/font_icon_map.rb +378 -0
  64. data/lib/asciidoctor-epub3/packager.rb +722 -0
  65. data/lib/asciidoctor-epub3/spine_item_processor.rb +92 -0
  66. data/lib/asciidoctor-epub3/version.rb +7 -0
  67. metadata +237 -0
@@ -0,0 +1,94 @@
1
+ @font-face {
2
+ font-family: "Noto Serif";
3
+ font-style: normal;
4
+ font-weight: normal;
5
+ src: url(../fonts/notoserif-regular-latin.ttf);
6
+ }
7
+
8
+ @font-face {
9
+ font-family: "Noto Serif";
10
+ font-style: italic;
11
+ font-weight: normal;
12
+ src: url(../fonts/notoserif-italic-latin.ttf);
13
+ }
14
+
15
+ @font-face {
16
+ font-family: "Noto Serif";
17
+ font-style: normal;
18
+ font-weight: bold;
19
+ src: url(../fonts/notoserif-bold-latin.ttf);
20
+ }
21
+
22
+ @font-face {
23
+ font-family: "Noto Serif";
24
+ font-style: italic;
25
+ font-weight: bold;
26
+ src: url(../fonts/notoserif-bolditalic-latin.ttf);
27
+ }
28
+
29
+ /* NOTE: use numeric font weights for M+ 1p since we're using weight variations */
30
+ @font-face {
31
+ font-family: "M+ 1p";
32
+ font-style: normal;
33
+ font-weight: 400;
34
+ src: url(../fonts/mplus1p-regular-latin.ttf);
35
+ }
36
+
37
+ @font-face {
38
+ font-family: "M+ 1p";
39
+ font-style: normal;
40
+ font-weight: 200;
41
+ src: url(../fonts/mplus1p-light-latin.ttf);
42
+ }
43
+
44
+ @font-face {
45
+ font-family: "M+ 1p";
46
+ font-style: normal;
47
+ font-weight: 700;
48
+ src: url(../fonts/mplus1p-bold-latin.ttf);
49
+ }
50
+
51
+ @font-face {
52
+ font-family: "M+ 1mn";
53
+ font-style: normal;
54
+ font-weight: normal;
55
+ src: url(../fonts/mplus1mn-regular-ascii-conums.ttf);
56
+ }
57
+
58
+ @font-face {
59
+ font-family: "M+ 1mn";
60
+ font-style: italic;
61
+ font-weight: normal;
62
+ /* actually the M+ 1mn light font repurposed using FontForge to stand-in for Italic */
63
+ src: url(../fonts/mplus1mn-italic-ascii.ttf);
64
+ }
65
+
66
+ @font-face {
67
+ font-family: "M+ 1mn";
68
+ font-style: normal;
69
+ font-weight: bold;
70
+ /* actually the M+ 1mn medium font repurposed using FontForge to stand-in for Bold */
71
+ src: url(../fonts/mplus1mn-bold-ascii.ttf);
72
+ }
73
+
74
+ @font-face {
75
+ font-family: "M+ 1mn";
76
+ font-style: italic;
77
+ font-weight: bold;
78
+ /* actually the M+ 1mn bold font repurposed using FontForge to stand-in for Bold Italic */
79
+ src: url(../fonts/mplus1mn-bolditalic-ascii.ttf);
80
+ }
81
+
82
+ @font-face {
83
+ font-family: "FontAwesome";
84
+ font-style: normal;
85
+ font-weight: normal;
86
+ src: url(../fonts/fontawesome-icons.ttf);
87
+ }
88
+
89
+ @font-face {
90
+ font-family: "FontIcons";
91
+ font-style: normal;
92
+ font-weight: normal;
93
+ src: url(../fonts/assorted-icons.ttf);
94
+ }
@@ -0,0 +1,1266 @@
1
+ @import url("epub3-fonts.css");
2
+
3
+ *, *:before, *:after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ /* educate older readers about tags introduced in HTML5 */
8
+ article, aside, details, figcaption, figure,
9
+ footer, header, nav, section, summary {
10
+ display: block;
11
+ }
12
+
13
+ /* html and body declarations must be separate entries for some readers */
14
+ html {
15
+ margin: 0 !important;
16
+ padding: 0 !important;
17
+ /* set the em base (and relative em anchor) by setting the font-size on html */
18
+ /* TODO set font-size > 100% except for Kindle */
19
+ font-size: 100%;
20
+ -webkit-text-size-adjust: 100%;
21
+ }
22
+
23
+ /* don't set margin on body as that's how many readers frame reading area */
24
+ /* can't set the font-family on body in Kindle */
25
+ body {
26
+ padding: 0 !important;
27
+ /* add margin to ~ match Kindle's narrow setting */
28
+ /* don't use !important on margin as it interferes with reader overrides (Calibre and Kindle) */
29
+ margin: 0;
30
+ font-size: 100%;
31
+ /* NOTE putting optimizeLegibility on the body slows down rendering considerably */
32
+ text-rendering: optimizeSpeed;
33
+ /* -webkit-font-smoothing has no noticable effect and is controversial, so leaving it off */
34
+ }
35
+
36
+ /* disables night mode in Aldiko, hoo-ha! */
37
+ html body {
38
+ background-color: #FFFFFF;
39
+ }
40
+
41
+ /* @page only applies to EPUB2 readers; not supported by EPUB3 readers such as Kindle and Gitden */
42
+ @page {
43
+ /* sets minimum margin permitted */
44
+ /* pushes the top & bottom margins down in Aldiko to emulate Kindle (Kindle uses ~ 10% of screen by default )*/
45
+ margin: 1cm;
46
+ }
47
+
48
+ div, p, blockquote, pre, figure, figcaption,
49
+ h1, h2, h3, h4, h5, h6,
50
+ dl, dt, dd, ol, ul, li,
51
+ table, caption, thead, tfoot, tbody, tr, th, td {
52
+ margin: 0;
53
+ padding: 0;
54
+ font-size: 100%;
55
+ vertical-align: baseline;
56
+ }
57
+
58
+ a, abbr, address, cite, code, em, kbd, span, strong {
59
+ font-size: 100%;
60
+ }
61
+
62
+ a {
63
+ background: transparent;
64
+ }
65
+
66
+ a:active, a:hover {
67
+ outline: 0;
68
+ }
69
+
70
+ abbr[title] {
71
+ border-bottom: 1px dotted;
72
+ }
73
+
74
+ address {
75
+ white-space: pre-line;
76
+ }
77
+
78
+ b, strong {
79
+ font-weight: bold;
80
+ }
81
+
82
+ b.button {
83
+ font-weight: normal;
84
+ text-shadow: 1px 0 0 #666665;
85
+ color: #191918;
86
+ white-space: nowrap;
87
+ }
88
+
89
+ b.button .label {
90
+ padding: 0 0.25em;
91
+ }
92
+
93
+ kbd {
94
+ display: inline-block;
95
+ font-size: 0.8em;
96
+ line-height: 1;
97
+ background-color: #F7F7F7; /* #FAFAFA */
98
+ border: 1px solid #BEBEBC;
99
+ -webkit-border-radius: 3px;
100
+ border-radius: 3px;
101
+ -webkit-box-shadow: 1px 1px 0 rgba(102, 102, 101, 0.25), 0 0 0 1px white inset;
102
+ box-shadow: 1px 1px 0 rgba(102, 102, 101, 0.25), 0 0 0 1px white inset;
103
+ margin: 0 0.15em;
104
+ padding: 0.25em 0.4em 0.2em 0.4em;
105
+ vertical-align: 0.15em;
106
+ }
107
+
108
+ .keyseq {
109
+ white-space: nowrap;
110
+ }
111
+
112
+ .menuseq .caret {
113
+ /*
114
+ font-family: "FontAwesome";
115
+ font-size: 0.7em;
116
+ line-height: 1;
117
+ font-weight: bold;
118
+ vertical-align: 0.08rem;
119
+ */
120
+
121
+ font-weight: bold;
122
+ }
123
+
124
+ .menuseq span[class~="caret"] {
125
+ visibility: hidden;
126
+ }
127
+
128
+ .menuseq .caret::before {
129
+ font-family: "FontAwesome";
130
+ content: "\f054";
131
+ font-size: 0.6em;
132
+ vertical-align: 0.15em;
133
+ visibility: visible;
134
+ display: inline-block;
135
+ width: 0;
136
+ padding-right: 0.15em;
137
+ }
138
+
139
+ img {
140
+ border: 0;
141
+ max-width: 100%;
142
+ }
143
+
144
+ mark {
145
+ background-color: #FFC14F;
146
+ color: #191918;
147
+ }
148
+
149
+ small {
150
+ font-size: 80%;
151
+ }
152
+
153
+ sub, sup {
154
+ font-size: 0.75em;
155
+ line-height: 1;
156
+ }
157
+
158
+ sup {
159
+ /* position: relative not permitted on Kindle */
160
+ /*
161
+ position: relative;
162
+ top: -0.5em;
163
+ */
164
+ /* alternate approach #1 */
165
+ /*
166
+ display: inline-block;
167
+ vertical-align: text-top;
168
+ padding-top: .25em;
169
+ */
170
+ /* alternate approach #2 */
171
+ line-height: 1;
172
+ vertical-align: text-top;
173
+ }
174
+
175
+ sub {
176
+ /* position: relative not permitted on Kindle */
177
+ /*
178
+ position: relative;
179
+ bottom: -0.25em;
180
+ */
181
+ /* alternate approach #1 */
182
+ /*
183
+ display: inline-block;
184
+ vertical-align: text-bottom;
185
+ padding-bottom: .5em;
186
+ */
187
+ /* alternate approach #2 */
188
+ line-height: 1;
189
+ vertical-align: text-bottom;
190
+ }
191
+
192
+ table {
193
+ border-collapse: collapse;
194
+ border-spacing: 0;
195
+ }
196
+
197
+ td, th {
198
+ padding: 0;
199
+ }
200
+
201
+ body a:link {
202
+ color: #333332;
203
+ /* hack for font color in iBooks and Gitden (though Gitden would accept color !important too) */
204
+ -webkit-text-fill-color: #333332;
205
+ /* Kindle requires the !important on text-decoration */
206
+ /* In night mode, the only indicator of a link is the underline, so we need it or a background image */
207
+ text-decoration: none !important;
208
+ border-bottom: 1px dashed #666665;
209
+ /* allow URLs to break anywhere if they don't fit on a line; but how do we know it's a URL? */
210
+ /*
211
+ word-break: break-all;
212
+ */
213
+ }
214
+
215
+ body:first-of-type a:link {
216
+ border-bottom: none;
217
+ background-repeat: no-repeat;
218
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, #666665 5%, #666665 95%, rgba(255,255,255,0) 100%);
219
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 0%, #666665 5%, #666665 95%, rgba(255,255,255,0) 100%);
220
+ background-size: 100% 1px;
221
+ background-position: 0 1.2em;
222
+ }
223
+
224
+ body a:visited {
225
+ color: #666665;
226
+ /* hack for font color in iBooks */
227
+ -webkit-text-fill-color: #666665;
228
+ }
229
+
230
+ code.literal {
231
+ /* don't let it affect line spacing */
232
+ /* disable since M+ 1mn won't interrupt line height */
233
+ /*line-height: 1;*/
234
+ /*
235
+ white-space: nowrap;
236
+ */
237
+ word-wrap: break-word;
238
+ }
239
+
240
+ h1, h2, h3, h4, h5, h6 {
241
+ font-family: "M+ 1p", sans-serif;
242
+ font-weight: 400;
243
+ letter-spacing: -0.01em;
244
+ /* NOTE Kindle doesn't allow the line-height to be less than the font size (refer to heading font sizes) */
245
+ line-height: 1.4; /* or 1.2125 */
246
+ text-align: left;
247
+
248
+ -webkit-hyphens: none; /* disable hyphenation where supported (e.g., iBooks) */
249
+ word-wrap: break-word; /* break in middle of long word if no other break opportunities are available */
250
+
251
+ /* avoiding page breaks does not seem to work in Kindle */
252
+ -webkit-column-break-inside: avoid;
253
+ page-break-inside: avoid;
254
+ -webkit-column-break-after: avoid;
255
+ page-break-after: avoid;
256
+ }
257
+
258
+ /* Aldiko requires a higher precedence rule to set margin and text-indent, hence the body prefix */
259
+ /* We'll just use the stronger rule for all paragraph-related stuff to be sure */
260
+ body p {
261
+ margin: 1em 0 0 0;
262
+ text-align: justify;
263
+ text-indent: 0;
264
+
265
+ widows: 2;
266
+ orphans: 2;
267
+ }
268
+
269
+ body p,
270
+ ul, ol, li, dl, dt, dd, footer,
271
+ div.verse .attribution, table.table th, table.table td,
272
+ figcaption, caption {
273
+ color: #333332;
274
+ /* NOTE iBooks will forcefully override font-family of text inside div, p and span elements when font other than Original is selected */
275
+ /* NOTE iBooks honors Original font for prose text if declared in display-options.xml */
276
+ font-family: "Noto Serif", serif;
277
+ }
278
+
279
+ body p, li, dt, dd, footer {
280
+ line-height: 1.6;
281
+ }
282
+
283
+ code, kbd, pre {
284
+ color: #191918;
285
+ font-family: "M+ 1mn", monospace;
286
+ -webkit-hyphens: none; /* disable hyphenation where supported (e.g., iBooks) */
287
+ }
288
+
289
+ /* QUESTION should we kern preformatted text blocks? */
290
+ h1, h2, h3, h4, h5, h6,
291
+ body p, li, dd, blockquote > footer,
292
+ th, td, figcaption, caption {
293
+ /* forward-compatible CSS to enable kerning (if we want ligatures, add "liga" and "dlig") */
294
+ /* WebKits that don't recognize these properties don't kern well, hence why we don't simply enable kerning via text-rendering */
295
+ -webkit-font-feature-settings: "kern";
296
+ font-feature-settings: "kern";
297
+ font-kerning: normal;
298
+ /* NOTE see Kindle hack in epub3-css3-only.css for additional kerning settings (disabled) */
299
+ }
300
+
301
+ p.last::after {
302
+ color: #57AD68;
303
+ display: inline-block;
304
+ font-family: "FontAwesome";
305
+ font-size: 1em;
306
+ content: "\f121"; /* i.e., </> */
307
+ margin-left: 0.25em;
308
+ }
309
+
310
+ ul li, ol li {
311
+ /* minimum margin in case there is no paragraph content */
312
+ margin-top: 0.4em;
313
+ }
314
+
315
+ /* use paragraph-size gaps between list items */
316
+ .complex > ul > li,
317
+ .complex > ol > li {
318
+ margin-top: 1em;
319
+ }
320
+
321
+ /* squeeze content in complex lists */
322
+ /*
323
+ li > figure,
324
+ li > p {
325
+ margin-top: 0.4em;
326
+ }
327
+ */
328
+
329
+ dl {
330
+ margin-top: 0;
331
+ margin-bottom: 0;
332
+ }
333
+
334
+ dt {
335
+ -webkit-column-break-inside: avoid;
336
+ page-break-inside: avoid;
337
+ -webkit-column-break-after: avoid;
338
+ page-break-after: avoid;
339
+ }
340
+
341
+ dt > span.term {
342
+ font-style: italic;
343
+ }
344
+
345
+ /*
346
+ dt > span.term > code.literal {
347
+ font-style: normal;
348
+ }
349
+ */
350
+
351
+ dt {
352
+ margin-top: 0.75em; /* balances 0.25em to term */
353
+ }
354
+
355
+ dl dd {
356
+ /* minimum margin in case there is no paragraph content */
357
+ margin-top: 0.25em;
358
+ }
359
+
360
+ div.callout-list {
361
+ margin-top: 0.5em;
362
+ }
363
+
364
+ div.callout-list ol {
365
+ font-size: 80%;
366
+ margin-left: 1.5em !important;
367
+ list-style-type: none;
368
+ }
369
+
370
+ div.callout-list ol li {
371
+ text-align: left;
372
+ }
373
+
374
+ i.conum {
375
+ color: #468C54;
376
+ font-family: "M+ 1mn", monospace;
377
+ font-style: normal;
378
+ }
379
+
380
+ /* don't let conum affect line spacing; REVIEW may not need this! */
381
+ /*pre i.conum {
382
+ line-height: 1;
383
+ }*/
384
+
385
+ div.callout-list li > i.conum {
386
+ float: left;
387
+ margin-left: -1.25em;
388
+ display: block;
389
+ width: 1.25em;
390
+ }
391
+
392
+ div.itemized-list, div.ordered-list, div.description-list {
393
+ margin-top: 1em;
394
+ padding-bottom: 0.25em; /* REVIEW maybe, maybe not */
395
+ }
396
+
397
+ /* QUESTION should we add the class "list" so we can style these generically? */
398
+ div.itemized-list div.itemized-list,
399
+ div.itemized-list div.ordered-list,
400
+ div.itemized-list div.description-list,
401
+ div.ordered-list div.itemized-list,
402
+ div.ordered-list div.ordered-list,
403
+ div.ordered-list div.description-list {
404
+ margin-top: 0;
405
+ }
406
+
407
+ /*div.description-list div.itemized-list,
408
+ div.description-list div.ordered-list,
409
+ div.description-list div.description-list {
410
+ }*/
411
+
412
+ h3.list-heading {
413
+ font-size: 1em;
414
+ font-family: "Noto Serif", serif;
415
+ font-weight: bold;
416
+ line-height: 1.6;
417
+ margin-top: 1em;
418
+ margin-bottom: -0.25em;
419
+ letter-spacing: 0;
420
+ }
421
+
422
+ div.stack li strong.subject,
423
+ div.stack-subject li strong.subject {
424
+ display: block;
425
+ }
426
+
427
+ ul {
428
+ /* QUESTION do we need important here? */
429
+ margin-left: 1em !important;
430
+ list-style-type: square;
431
+ }
432
+
433
+ ul ul {
434
+ list-style-type: circle;
435
+ }
436
+
437
+ ul ul ul {
438
+ list-style-type: disc;
439
+ }
440
+
441
+ /* disable list style type for CSS3-enabled clients */
442
+ body:first-of-type ul,
443
+ body:first-of-type ul ul,
444
+ body:first-of-type ul ul ul {
445
+ list-style-type: none;
446
+ }
447
+
448
+ ul > li::before {
449
+ float: left;
450
+ margin-left: -1em;
451
+ margin-top: -0.05em;
452
+ padding-left: 0.25em;
453
+ /* guarantee it's out of the flow */
454
+ width: 0;
455
+ display: block;
456
+ }
457
+
458
+ ul > li::before {
459
+ content: "\25AA"; /* small black square */
460
+ color: #666665;
461
+ }
462
+
463
+ ul ul > li::before {
464
+ content: "\25E6"; /* small white circle */
465
+ color: #57AD68;
466
+ }
467
+
468
+ ul ul ul > li::before {
469
+ content: "\2022"; /* small black circle */
470
+ color: #666665;
471
+ }
472
+
473
+ ul ul ul ul > li::before {
474
+ content: "\25AB"; /* small white square */
475
+ color: #57AD68;
476
+ }
477
+
478
+ ol {
479
+ margin-left: 1.75em !important;
480
+ }
481
+
482
+ ol {
483
+ list-style-type: decimal;
484
+ }
485
+
486
+ ol ol {
487
+ list-style-type: lower-alpha;
488
+ }
489
+
490
+ ol ol ol {
491
+ list-style-type: lower-roman;
492
+ }
493
+
494
+ /* REVIEW */
495
+ dd {
496
+ margin-left: 1.5rem !important;
497
+ }
498
+
499
+ /* Kindle does not justify list-item element, must wrap in nested block element */
500
+ li > span.principal, dd > span.principal {
501
+ display: block;
502
+ text-align: justify;
503
+ }
504
+
505
+ ol.brief > li > span.principal,
506
+ ul.brief > li > span.principal {
507
+ text-align: left;
508
+ }
509
+
510
+ /* REVIEW still considering keeping this one */
511
+ /* disable justify within a link */
512
+ /*
513
+ li strong.subject a:link {
514
+ white-space: pre-wrap;
515
+ word-spacing: 0.1em;
516
+ }*/
517
+
518
+ /*
519
+ .bibliography ul li,
520
+ .references ul li {
521
+ text-align: left;
522
+ }
523
+ */
524
+
525
+ ul.bibliography > li > span.principal,
526
+ ul.references > li > span.principal {
527
+ text-align: left;
528
+ }
529
+
530
+ /* sized based on the major third modular scale (4:5, 16px, 24px) */
531
+ h1, h2 {
532
+ color: #333332;
533
+ font-size: 1.5em;
534
+ word-spacing: -0.075em;
535
+ margin-top: 1em; /* 1.5rem */
536
+ margin-bottom: -0.3333em; /* -0.5rem, 0.5rem to content */
537
+ }
538
+
539
+ h3 {
540
+ color: #333332;
541
+ font-size: 1.25em;
542
+ margin-top: 0.84em; /* 1.05rem */
543
+ margin-bottom: -0.5em; /* -0.625rem, 0.375rem to content */
544
+ }
545
+
546
+ h4 {
547
+ color: #4F4F4C;
548
+ font-weight: 200;
549
+
550
+ font-size: 1.1em;
551
+ margin-top: 1em; /* 1.1rem */
552
+ margin-bottom: -0.818em; /* -0.9rem, 0.1rem to content */
553
+
554
+ font-size: 1.2em;
555
+ margin-top: .917em; /* 1.1rem */
556
+ margin-top: 0.875em; /* 1.05rem */
557
+ /*margin-bottom: -0.75em;*/ /* -0.9rem, 0.1rem to content */
558
+ margin-bottom: -0.625em; /* -0.75rem, 0.25rem to content */
559
+ }
560
+
561
+ h5 {
562
+ color: #666665;
563
+ /*
564
+ font-size: 1em;
565
+ text-transform: uppercase;
566
+ margin-top: 1em;
567
+ margin-bottom: -1em;
568
+ */
569
+
570
+ font-size: 0.9em;
571
+ font-weight: 700;
572
+ text-transform: uppercase; /* not supported in Adobe Digital Editions */
573
+ margin-top: 1.11em; /* 1rem */
574
+ margin-bottom: -0.972em; /* -0.875rem */
575
+ }
576
+
577
+ h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
578
+ color: inherit;
579
+ }
580
+
581
+ h5 code {
582
+ text-transform: none;
583
+ }
584
+
585
+ /* Kindle strips (or unwraps) <header> tags, so we use an inner div to style */
586
+ .chapter-header {
587
+ /* NOTE div must have at least 1px top padding for background to fill */
588
+ /* would like to use vh units for top and bottom padding */
589
+ /*padding: 0.75em 1.5em 0.25em 1.5em;*/
590
+ padding: 0.25em 0;
591
+ margin-bottom: 2.5em;
592
+ border-bottom: 1px solid #666665;
593
+ /* TODO maybe what we need to get articles to start in left column
594
+ -webkit-column-break-before: left;
595
+ page-break-before: left;
596
+ */
597
+ }
598
+
599
+ h1.chapter-title {
600
+ font-weight: 200;
601
+ font-size: 1.2em;
602
+ margin-top: 3.5em; /* 4.2rem - would like to use 9vh */
603
+ margin-bottom: 0;
604
+ padding-bottom: 0.8333em; /* 1.2rem */
605
+ color: #666665;
606
+ text-transform: uppercase; /* not supported in Adobe Digital Editions */
607
+ word-spacing: -0.075em;
608
+ letter-spacing: -0.01em;
609
+ }
610
+
611
+ h1.chapter-title .subtitle {
612
+ font-weight: 400;
613
+ color: #333332;
614
+ display: block;
615
+ font-size: 1.5em;
616
+ margin: 0 0 0 0.75em; /* would like to use 2vw */
617
+ line-height: 1.2; /* line-height will remain 1.4 on Kindle, see hack in media query */
618
+ }
619
+
620
+ h1.chapter-title em {
621
+ color: #57AD68;
622
+ font-style: normal;
623
+ }
624
+
625
+ h1.chapter-title b {
626
+ font-weight: inherit;
627
+ }
628
+
629
+ .chapter-header p.byline {
630
+ color: #333332;
631
+ /* float left and height 0 takes this line out of the flow */
632
+ float: left;
633
+ height: 0;
634
+ width: 100%;
635
+ text-align: right;
636
+ margin-top: 0;
637
+ line-height: 2;
638
+ }
639
+
640
+ .chapter-header p.byline b {
641
+ font-weight: normal;
642
+ padding-left: 0.2em; /* 0.25rem */
643
+ font-size: 0.8em;
644
+ line-height: 2.5; /* 2rem */
645
+ }
646
+
647
+ .chapter-header p.byline img {
648
+ -webkit-border-radius: 0.5em;
649
+ border-radius: 0.5em;
650
+ vertical-align: middle;
651
+ /* some readers like to resize images; we don't want the author images resized */
652
+ height: 2em !important;
653
+ width: 2em !important;
654
+ }
655
+
656
+ div.abstract {
657
+ margin: 5% 1.5em 2.5em 1.5em;
658
+ }
659
+
660
+ div.abstract > p {
661
+ color: #666665;
662
+ font-size: 1.05em; /* or 1.1em? */
663
+ line-height: 1.75;
664
+ }
665
+
666
+ div.abstract > p a:link {
667
+ color: #666665;
668
+ /* hack for font color in iBooks */
669
+ -webkit-text-fill-color: #666665;
670
+ }
671
+
672
+ div.abstract > p:first-child::first-line {
673
+ font-weight: bold;
674
+ -webkit-font-feature-settings: "kern" off;
675
+ font-feature-settings: "kern" off;
676
+ font-kerning: none;
677
+ /* and for Kindle... */
678
+ text-rendering: optimizeSpeed;
679
+ }
680
+
681
+ div.abstract p strong {
682
+ font-weight: inherit;
683
+ font-style: italic;
684
+ }
685
+
686
+ p.lead {
687
+ font-size: 1.05em;
688
+ line-height: 1.75;
689
+ }
690
+
691
+ hr.thematicbreak {
692
+ display: none;
693
+ }
694
+
695
+ hr.thematicbreak + p {
696
+ margin-top: 1.5em;
697
+ }
698
+
699
+ /* TODO finish layout of first-letter */
700
+ hr.thematicbreak + p::first-letter {
701
+ font-size: 200%;
702
+ }
703
+
704
+ p.stack > strong.head,
705
+ p.stack-head > strong.head {
706
+ display: block;
707
+ }
708
+
709
+ p.signature {
710
+ font-size: 0.9em;
711
+ }
712
+
713
+ figure,
714
+ aside.sidebar {
715
+ margin-top: 1em;
716
+ }
717
+
718
+ /*
719
+ aside.sidebar {
720
+ -webkit-column-break-inside: avoid;
721
+ page-break-inside: avoid;
722
+ float: left;
723
+ margin-bottom: 1em;
724
+ }
725
+ */
726
+
727
+ figure.image {
728
+ -webkit-column-break-inside: avoid;
729
+ page-break-inside: avoid;
730
+ }
731
+
732
+ figure.image img {
733
+ display: block;
734
+ margin: 0 auto;
735
+ }
736
+
737
+ figure.coalesce {
738
+ -webkit-column-break-inside: avoid;
739
+ page-break-inside: avoid;
740
+ }
741
+
742
+ figcaption,
743
+ caption {
744
+ font-size: 0.9em;
745
+ font-style: italic;
746
+ color: #666665;
747
+ letter-spacing: -0.01em;
748
+ line-height: 1.4;
749
+ text-align: left;
750
+ padding-left: 0.1em;
751
+ page-break-inside: avoid;
752
+ -webkit-column-break-after: avoid;
753
+ page-break-after: avoid;
754
+ }
755
+
756
+ figure.image figcaption {
757
+ padding-left: 0;
758
+ margin-top: 0.2em;
759
+ -webkit-column-break-after: auto;
760
+ page-break-after: auto;
761
+ }
762
+
763
+ p + figure.listing,
764
+ span.principal + figure.listing {
765
+ margin-top: 0.75em; /* 0.75rem */
766
+ }
767
+
768
+ figure.listing > pre {
769
+ margin-top: 0;
770
+ }
771
+
772
+ /* REVIEW TODO put margin bottom on the figcaption instead */
773
+ figure.listing > figcaption + pre {
774
+ margin-top: 0.294em; /* 0.25rem */
775
+ }
776
+
777
+ aside.sidebar {
778
+ border: 1px solid #B3B3B1;
779
+ padding: 0 1.5em;
780
+ font-size: 0.9em;
781
+ background-color: #F2F2F2;
782
+ text-align: right; /* aligns heading to right */
783
+ /*
784
+ -webkit-box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.15);
785
+ box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.15);
786
+ */
787
+ }
788
+
789
+ body:first-of-type aside.sidebar {
790
+ background-color: rgba(0, 0, 0, 0.05); /* using transparency is night-mode friendly */
791
+ /*background-color: rgba(51, 51, 50, 0.06);*/ /* using transparency is night-mode friendly */
792
+ }
793
+
794
+ /* a bit of a cheat; could use aside.sidebar[title] instead, but not on Aldiko */
795
+ aside.sidebar.titled {
796
+ margin-top: 2em;
797
+ }
798
+
799
+ aside.sidebar > h2 {
800
+ text-transform: uppercase; /* not supported in Adobe Digital Editions */
801
+ font-size: 1em;
802
+ /*
803
+ font-weight: 700;
804
+ */
805
+ font-weight: 400;
806
+ letter-spacing: 0;
807
+ display: inline-block;
808
+ white-space: nowrap; /* for some reason it's wrapping prematurely */
809
+ border: 1px solid #B3B3B1;
810
+ padding: 1.5em .75em .5em .75em;
811
+ margin: -1em 0.5em -0.25em 0.5em;
812
+ background-color: #FFFFFF;
813
+ /*
814
+ -webkit-box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.1);
815
+ box-shadow: 0px 1px 1px rgba(102, 102, 101, 0.1);
816
+ */
817
+ }
818
+
819
+ /* doesn't work
820
+ body:first-of-type aside.sidebar > h2 {
821
+ background-color: rgba(255, 255, 255, 1);
822
+ }
823
+ */
824
+
825
+ aside.sidebar > div.content {
826
+ margin-bottom: 1em;
827
+ text-align: justify; /* restore text alignment in content */
828
+ }
829
+
830
+ /* QUESTION same for ordered-list? */
831
+ aside.sidebar > div.content > div.itemized-list > ul {
832
+ margin-left: 0.5em !important;
833
+ }
834
+
835
+ div.blockquote {
836
+ padding: 0 1em;
837
+ margin: 1.25em auto;
838
+ }
839
+
840
+ /* display: table causes quotes to be repeated in Aldiko, so we hide this part */
841
+ div[class~="blockquote"] {
842
+ display: table;
843
+ }
844
+
845
+ blockquote > p {
846
+ color: #191918;
847
+ font-style: italic;
848
+
849
+ /*
850
+ font-size: 1.2em;
851
+ word-spacing: 0.1em;
852
+ */
853
+
854
+ font-size: 1.15em;
855
+ word-spacing: 0.1em;
856
+
857
+ margin-top: 0;
858
+ line-height: 1.75;
859
+ }
860
+
861
+ blockquote > p:first-of-type::before {
862
+ display: inline-block;
863
+ color: #666665;
864
+ text-shadow: 0 1px 2px rgba(102, 102, 101, 0.3);
865
+
866
+ /* using serif quote from entypo */
867
+ font-family: "FontIcons";
868
+
869
+ /*content: "\f10e";*/ /* quote-right from Entypo */
870
+ /*
871
+ -webkit-transform: rotate(180deg);
872
+ transform: rotate(180deg);
873
+ padding-left: .3em;
874
+ padding-right: .2em;
875
+ */
876
+
877
+ content: "\f10d"; /* quote-left, a flipped version of the quote-right from Entypo */
878
+ padding-right: .5em;
879
+ font-size: 1.5em;
880
+ line-height: 1.3;
881
+ margin-top: -0.5em;
882
+ vertical-align: text-bottom;
883
+ }
884
+
885
+ blockquote footer {
886
+ font-size: 0.9em;
887
+ font-style: italic;
888
+
889
+ margin-top: 0.5rem;
890
+ text-align: right;
891
+ }
892
+
893
+ blockquote footer .context {
894
+ font-size: 0.9em;
895
+ letter-spacing: -0.05em;
896
+ color: #666665;
897
+ }
898
+
899
+ pre {
900
+ text-align: left; /* fix for Namo */
901
+ margin-top: 1em; /* 0.85rem */
902
+ /*margin-top: 1.176em;*/ /* 1rem */
903
+ white-space: pre-wrap;
904
+ overflow-wrap: break-word; /* break in middle of long word if no other break opportunities are available */
905
+ font-size: 0.85em;
906
+ line-height: 1.4; /* matches what Kindle uses and can't go less */
907
+ background-color: #F2F2F2;
908
+ padding: 0.5rem 0.75rem;
909
+ /*
910
+ border-top: 3px solid #DCDCDE;
911
+ */
912
+ /* QUESTION #B3B3B1? */
913
+ border-top: 1px solid #DCDCDE;
914
+ border-right: 1px solid #DCDCDE;
915
+ }
916
+
917
+ body:first-of-type pre {
918
+ background-color: rgba(0, 0, 0, 0.05); /* using transparency is night-mode friendly */
919
+ /*background-color: rgba(51, 51, 50, 0.06);*/ /* using transparency is night-mode friendly */
920
+ }
921
+
922
+ /* TODO what we really want is for pre w/o caption to be unbreakable */
923
+ pre.screen {
924
+ /*
925
+ -webkit-column-break-inside: avoid;
926
+ page-break-inside: avoid;
927
+ */
928
+ orphans: 3;
929
+ widows: 3; /* widows doesn't seem to work here */
930
+ }
931
+
932
+ pre.source {
933
+ orphans: 3;
934
+ widows: 3; /* widows doesn't seem to work here */
935
+ }
936
+
937
+ div.verse {
938
+ -webkit-column-break-inside: avoid;
939
+ page-break-inside: avoid;
940
+ }
941
+
942
+ /* TODO we may want to reenable hyphens here, but not for kf8 */
943
+ div.verse > pre {
944
+ background-color: transparent;
945
+ border: none;
946
+ font-size: 1.2em;
947
+ text-align: center;
948
+ }
949
+
950
+ div.verse .attribution {
951
+ display: block;
952
+ margin-top: 1.4em;
953
+ }
954
+
955
+ aside.admonition {
956
+ margin-top: 1em;
957
+ padding: 1em;
958
+ border-left: 0.5em solid transparent;
959
+ -webkit-column-break-inside: avoid;
960
+ page-break-inside: avoid;
961
+ }
962
+
963
+ /* overrides for CSS3-enabled clients */
964
+ aside[class~="admonition"] {
965
+ margin: 1.5em 2em; /* even if admonition is at bottom of block, we want that extra space below */
966
+ padding: 0;
967
+ border-width: 0;
968
+ background: none !important;
969
+ }
970
+
971
+ aside.note {
972
+ border-left-color: #FFC14F;
973
+ background-color: #FFF0D4; /* 25% opacity of border */
974
+ }
975
+
976
+ aside.tip {
977
+ border-left-color: #40403E;
978
+ background-color: #D0D0CF; /* 25% opacity of border */
979
+ }
980
+
981
+ aside.caution {
982
+ border-left-color: #7F7F7D;
983
+ background-color: #DFDFDF; /* 25% opacity of border */
984
+ }
985
+
986
+ aside.warning {
987
+ border-left-color: #C83737;
988
+ background-color: #F1CECE; /* 25% opacity of border */
989
+ }
990
+
991
+ aside.important {
992
+ border-left-color: #F2642A;
993
+ background-color: #FCD9CA; /* 25% opacity of border */
994
+ }
995
+
996
+ aside.admonition::before {
997
+ display: block;
998
+ font-family: "FontAwesome";
999
+ font-size: 2em;
1000
+ line-height: 1;
1001
+ width: 1em;
1002
+ text-align: center;
1003
+ margin-bottom: -0.25em;
1004
+ margin-left: -0.5em;
1005
+ text-shadow: 0px 1px 1px rgba(102, 102, 101, 0.15);
1006
+ }
1007
+
1008
+ aside.admonition > div.content {
1009
+ font-size: 90%;
1010
+ margin-top: -1em; /* prevent at top of content when using block form of admonition */
1011
+ }
1012
+
1013
+ aside[class~="admonition"] > div[class~="content"] {
1014
+ margin-top: 0;
1015
+ padding-bottom: 1em;
1016
+ background-size: 100% 1px;
1017
+ background-repeat: no-repeat;
1018
+ background-position: 0 bottom;
1019
+ /* template
1020
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, <color> 45%, <color> 55%, rgba(255,255,255,0) 57.5%);
1021
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, <color> 45%, <color> 55%, rgba(255,255,255,0) 57.5%);
1022
+ */
1023
+ }
1024
+
1025
+ aside.note::before {
1026
+ content: "\f040"; /* fa-pencil */
1027
+ color: #FFC14F;
1028
+ }
1029
+
1030
+ aside[class~="note"] > div[class~="content"] {
1031
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #FFC14F 45%, #FFC14F 55%, rgba(255,255,255,0) 57.5%);
1032
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #FFC14F 45%, #FFC14F 55%, rgba(255,255,255,0) 57.5%);
1033
+ }
1034
+
1035
+ aside.tip::before {
1036
+ content: "\f0eb"; /* fa-lightbulb-o */
1037
+ color: #40403E;
1038
+ }
1039
+
1040
+ aside[class~="tip"] > div[class~="content"] {
1041
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #40403E 45%, #40403E 55%, rgba(255,255,255,0) 57.5%);
1042
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #40403E 45%, #40403E 55%, rgba(255,255,255,0) 57.5%);
1043
+ }
1044
+
1045
+ aside.caution::before {
1046
+ content: "\f0c2"; /* fa-cloud */
1047
+ color: #7F7F7D;
1048
+ }
1049
+
1050
+ aside[class~="caution"] > div[class~="content"] {
1051
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #7F7F7D 45%, #7F7F7D 55%, rgba(255,255,255,0) 57.5%);
1052
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #7F7F7D 45%, #7F7F7D 55%, rgba(255,255,255,0) 57.5%);
1053
+ }
1054
+
1055
+ aside.warning::before {
1056
+ content: "\f0e7"; /* fa-bolt */
1057
+ color: #C83737;
1058
+ }
1059
+
1060
+ aside[class~="warning"] > div[class~="content"] {
1061
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #C83737 45%, #C83737 55%, rgba(255,255,255,0) 57.5%);
1062
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #C83737 45%, #C83737 55%, rgba(255,255,255,0) 57.5%);
1063
+ }
1064
+
1065
+ aside.important::before {
1066
+ content: "\f12a"; /* fa-exclamation */
1067
+ color: #F2642A;
1068
+ }
1069
+
1070
+ aside[class~="important"] > div[class~="content"] {
1071
+ background-image: -webkit-linear-gradient(left, rgba(255,255,255,0) 42.5%, #F2642A 45%, #F2642A 55%, rgba(255,255,255,0) 57.5%);
1072
+ background-image: linear-gradient(to right, rgba(255,255,255,0) 42.5%, #F2642A 45%, #F2642A 55%, rgba(255,255,255,0) 57.5%);
1073
+ }
1074
+
1075
+ aside.admonition > h2 {
1076
+ margin-top: 0;
1077
+ margin-bottom: 1.5em;
1078
+ font-size: 1em;
1079
+ text-align: center;
1080
+ }
1081
+
1082
+ aside[class~="admonition"] > h2 {
1083
+ float: left;
1084
+ width: 100%;
1085
+ margin-top: -1.25em;
1086
+ margin-bottom: 0;
1087
+ }
1088
+
1089
+ div.table {
1090
+ margin-top: 1em;
1091
+ }
1092
+
1093
+ table.table thead,
1094
+ table.table tbody,
1095
+ table.table tfoot {
1096
+ font-size: 0.8em;
1097
+ }
1098
+
1099
+ table.table > caption {
1100
+ padding-bottom: 0.1em;
1101
+ }
1102
+
1103
+ table.table th,
1104
+ table.table td {
1105
+ line-height: 1.4;
1106
+ padding: 0.5em 0.5em 1em 0.1em;
1107
+ vertical-align: top;
1108
+ text-align: left;
1109
+ -webkit-column-break-inside: avoid;
1110
+ page-break-inside: avoid;
1111
+ }
1112
+
1113
+ table.table th {
1114
+ font-weight: bold;
1115
+ }
1116
+
1117
+ table.table thead th {
1118
+ border-bottom: 1px solid #80807F;
1119
+ }
1120
+
1121
+ table.table td > p,
1122
+ table.table div.embed > * {
1123
+ margin-top: 0;
1124
+ }
1125
+
1126
+ table.table td > p {
1127
+ text-align: left;
1128
+ }
1129
+
1130
+ /* REVIEW */
1131
+ table.table td > p + p,
1132
+ table.table div.embed > * + * {
1133
+ margin-top: 1em;
1134
+ }
1135
+
1136
+ table.table-framed {
1137
+ border-width: 1px;
1138
+ border-style: solid;
1139
+ border-color: #80807F;
1140
+ }
1141
+
1142
+ table.table-framed-topbot {
1143
+ border-width: 1px 0;
1144
+ border-style: solid;
1145
+ border-color: #80807F;
1146
+ }
1147
+
1148
+ table.table-framed-sides {
1149
+ border-width: 0 1px;
1150
+ border-style: solid;
1151
+ border-color: #80807F;
1152
+ }
1153
+
1154
+ table.table-grid th,
1155
+ table.table-grid td {
1156
+ border-width: 0 1px 1px 0;
1157
+ border-style: solid;
1158
+ border-color: #80807F;
1159
+ }
1160
+
1161
+ table.table-grid thead tr > *:last-child {
1162
+ border-right-width: 0;
1163
+ }
1164
+
1165
+ table.table-grid tbody tr:last-child > th,
1166
+ table.table-grid tbody tr:last-child > td {
1167
+ border-bottom-width: 0;
1168
+ }
1169
+
1170
+ table.table-grid-rows tbody th,
1171
+ table.table-grid-rows tbody td {
1172
+ border-width: 1px 0 0 0;
1173
+ border-style: solid;
1174
+ border-color: #80807F;
1175
+ }
1176
+
1177
+ table.table-grid-cols th,
1178
+ table.table-grid-cols td {
1179
+ border-width: 0 1px 0 0;
1180
+ border-style: solid;
1181
+ border-color: #80807F;
1182
+ }
1183
+
1184
+ table.table-grid-cols thead th:last-child {
1185
+ border-right-width: 0;
1186
+ }
1187
+
1188
+ table.table-grid-cols tbody tr > td:last-child {
1189
+ border-right-width: 0;
1190
+ }
1191
+
1192
+ hr.pagebreak {
1193
+ -webkit-column-break-after: always;
1194
+ page-break-after: always;
1195
+ border: none;
1196
+ margin: 0;
1197
+ }
1198
+
1199
+ /* REVIEW */
1200
+ hr.pagebreak + * {
1201
+ margin-top: 0 !important;
1202
+ }
1203
+
1204
+ #_about_the_author {
1205
+ -webkit-column-break-before: always;
1206
+ page-break-before: always;
1207
+ border-bottom: 1px solid #B3B3B3;
1208
+ }
1209
+
1210
+ img.headshot {
1211
+ float: left;
1212
+ border: 1px solid #80807F;
1213
+ padding: 1px;
1214
+ margin: 0.35em 1em 0.15em 0;
1215
+ height: 5em !important;
1216
+ width: 5em !important;
1217
+ }
1218
+
1219
+ /* Kindle refuses to style footer (perhaps stripped), so we use an explicit class */
1220
+ .chapter-footer {
1221
+ -webkit-column-break-before: always;
1222
+ page-break-before: always;
1223
+ }
1224
+
1225
+ div.footnotes {
1226
+ margin-top: 1em;
1227
+ }
1228
+
1229
+ div.footnotes p {
1230
+ font-size: 0.8rem;
1231
+ margin-top: 0.4rem;
1232
+ }
1233
+
1234
+ div.footnotes sup.noteref {
1235
+ font-weight: bold;
1236
+ font-size: 0.9em;
1237
+ }
1238
+
1239
+ /*div.footnotes sup.noteref a {*/
1240
+ sup.noteref a {
1241
+ /* Kindle wants to underline these links */
1242
+ text-decoration: none !important;
1243
+ background-image: none;
1244
+ }
1245
+
1246
+ nav#toc ol {
1247
+ list-style-type: none;
1248
+ }
1249
+
1250
+ .icon {
1251
+ display: none;
1252
+ }
1253
+
1254
+ @media amzn-mobi {
1255
+ /* NOTE mobi7 doesn't support custom fonts, so revert to generic ones */
1256
+ body p, ul, ol, li, dl, dt, dd, figcaption, caption, footer,
1257
+ table.table th, table.table td, div.verse .attribution {
1258
+ font-family: serif;
1259
+ }
1260
+ h1, h2, h3, h4, h5, h6 {
1261
+ font-family: sans-serif;
1262
+ }
1263
+ code, kbd, pre, i.conum {
1264
+ font-family: monospace;
1265
+ }
1266
+ }