1/*!
2 * reveal.js
3 * http://revealjs.com
4 * MIT licensed
5 *
6 * Copyright (C) 2020 Hakim El Hattab, http://hakim.se
7 */
8/*********************************************
9 * GLOBAL STYLES
10 *********************************************/
11html {
12  width: 100%;
13  height: 100%;
14  height: 100vh;
15  height: calc( var(--vh, 1vh) * 100);
16  overflow: hidden; }
17
18body {
19  height: 100%;
20  overflow: hidden;
21  position: relative;
22  line-height: 1;
23  margin: 0;
24  background-color: #fff;
25  color: #000; }
26
27/*********************************************
28 * VIEW FRAGMENTS
29 *********************************************/
30.reveal .slides section .fragment {
31  opacity: 0;
32  visibility: hidden;
33  transition: all .2s ease; }
34  .reveal .slides section .fragment.visible {
35    opacity: 1;
36    visibility: inherit; }
37
38.reveal .slides section .fragment.grow {
39  opacity: 1;
40  visibility: inherit; }
41  .reveal .slides section .fragment.grow.visible {
42    -webkit-transform: scale(1.3);
43            transform: scale(1.3); }
44
45.reveal .slides section .fragment.shrink {
46  opacity: 1;
47  visibility: inherit; }
48  .reveal .slides section .fragment.shrink.visible {
49    -webkit-transform: scale(0.7);
50            transform: scale(0.7); }
51
52.reveal .slides section .fragment.zoom-in {
53  -webkit-transform: scale(0.1);
54          transform: scale(0.1); }
55  .reveal .slides section .fragment.zoom-in.visible {
56    -webkit-transform: none;
57            transform: none; }
58
59.reveal .slides section .fragment.fade-out {
60  opacity: 1;
61  visibility: inherit; }
62  .reveal .slides section .fragment.fade-out.visible {
63    opacity: 0;
64    visibility: hidden; }
65
66.reveal .slides section .fragment.semi-fade-out {
67  opacity: 1;
68  visibility: inherit; }
69  .reveal .slides section .fragment.semi-fade-out.visible {
70    opacity: 0.5;
71    visibility: inherit; }
72
73.reveal .slides section .fragment.strike {
74  opacity: 1;
75  visibility: inherit; }
76  .reveal .slides section .fragment.strike.visible {
77    text-decoration: line-through; }
78
79.reveal .slides section .fragment.fade-up {
80  -webkit-transform: translate(0, 40px);
81          transform: translate(0, 40px); }
82  .reveal .slides section .fragment.fade-up.visible {
83    -webkit-transform: translate(0, 0);
84            transform: translate(0, 0); }
85
86.reveal .slides section .fragment.fade-down {
87  -webkit-transform: translate(0, -40px);
88          transform: translate(0, -40px); }
89  .reveal .slides section .fragment.fade-down.visible {
90    -webkit-transform: translate(0, 0);
91            transform: translate(0, 0); }
92
93.reveal .slides section .fragment.fade-right {
94  -webkit-transform: translate(-40px, 0);
95          transform: translate(-40px, 0); }
96  .reveal .slides section .fragment.fade-right.visible {
97    -webkit-transform: translate(0, 0);
98            transform: translate(0, 0); }
99
100.reveal .slides section .fragment.fade-left {
101  -webkit-transform: translate(40px, 0);
102          transform: translate(40px, 0); }
103  .reveal .slides section .fragment.fade-left.visible {
104    -webkit-transform: translate(0, 0);
105            transform: translate(0, 0); }
106
107.reveal .slides section .fragment.fade-in-then-out,
108.reveal .slides section .fragment.current-visible {
109  opacity: 0;
110  visibility: hidden; }
111  .reveal .slides section .fragment.fade-in-then-out.current-fragment,
112  .reveal .slides section .fragment.current-visible.current-fragment {
113    opacity: 1;
114    visibility: inherit; }
115
116.reveal .slides section .fragment.fade-in-then-semi-out {
117  opacity: 0;
118  visibility: hidden; }
119  .reveal .slides section .fragment.fade-in-then-semi-out.visible {
120    opacity: 0.5;
121    visibility: inherit; }
122  .reveal .slides section .fragment.fade-in-then-semi-out.current-fragment {
123    opacity: 1;
124    visibility: inherit; }
125
126.reveal .slides section .fragment.highlight-red,
127.reveal .slides section .fragment.highlight-current-red,
128.reveal .slides section .fragment.highlight-green,
129.reveal .slides section .fragment.highlight-current-green,
130.reveal .slides section .fragment.highlight-blue,
131.reveal .slides section .fragment.highlight-current-blue {
132  opacity: 1;
133  visibility: inherit; }
134
135.reveal .slides section .fragment.highlight-red.visible {
136  color: #ff2c2d; }
137
138.reveal .slides section .fragment.highlight-green.visible {
139  color: #17ff2e; }
140
141.reveal .slides section .fragment.highlight-blue.visible {
142  color: #1b91ff; }
143
144.reveal .slides section .fragment.highlight-current-red.current-fragment {
145  color: #ff2c2d; }
146
147.reveal .slides section .fragment.highlight-current-green.current-fragment {
148  color: #17ff2e; }
149
150.reveal .slides section .fragment.highlight-current-blue.current-fragment {
151  color: #1b91ff; }
152
153/*********************************************
154 * DEFAULT ELEMENT STYLES
155 *********************************************/
156/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */
157.reveal:after {
158  content: '';
159  font-style: italic; }
160
161.reveal iframe {
162  z-index: 1; }
163
164/** Prevents layering issues in certain browser/transition combinations */
165.reveal a {
166  position: relative; }
167
168.reveal .stretch {
169  max-width: none;
170  max-height: none; }
171
172.reveal pre.stretch code {
173  height: 100%;
174  max-height: 100%;
175  box-sizing: border-box; }
176
177/*********************************************
178 * CONTROLS
179 *********************************************/
180@-webkit-keyframes bounce-right {
181  0%, 10%, 25%, 40%, 50% {
182    -webkit-transform: translateX(0);
183            transform: translateX(0); }
184  20% {
185    -webkit-transform: translateX(10px);
186            transform: translateX(10px); }
187  30% {
188    -webkit-transform: translateX(-5px);
189            transform: translateX(-5px); } }
190@keyframes bounce-right {
191  0%, 10%, 25%, 40%, 50% {
192    -webkit-transform: translateX(0);
193            transform: translateX(0); }
194  20% {
195    -webkit-transform: translateX(10px);
196            transform: translateX(10px); }
197  30% {
198    -webkit-transform: translateX(-5px);
199            transform: translateX(-5px); } }
200
201@-webkit-keyframes bounce-down {
202  0%, 10%, 25%, 40%, 50% {
203    -webkit-transform: translateY(0);
204            transform: translateY(0); }
205  20% {
206    -webkit-transform: translateY(10px);
207            transform: translateY(10px); }
208  30% {
209    -webkit-transform: translateY(-5px);
210            transform: translateY(-5px); } }
211
212@keyframes bounce-down {
213  0%, 10%, 25%, 40%, 50% {
214    -webkit-transform: translateY(0);
215            transform: translateY(0); }
216  20% {
217    -webkit-transform: translateY(10px);
218            transform: translateY(10px); }
219  30% {
220    -webkit-transform: translateY(-5px);
221            transform: translateY(-5px); } }
222
223.reveal .controls {
224  display: none;
225  position: absolute;
226  top: auto;
227  bottom: 12px;
228  right: 12px;
229  left: auto;
230  z-index: 11;
231  color: #000;
232  pointer-events: none;
233  font-size: 10px; }
234  .reveal .controls button {
235    position: absolute;
236    padding: 0;
237    background-color: transparent;
238    border: 0;
239    outline: 0;
240    cursor: pointer;
241    color: currentColor;
242    -webkit-transform: scale(0.9999);
243            transform: scale(0.9999);
244    transition: color 0.2s ease, opacity 0.2s ease, -webkit-transform 0.2s ease;
245    transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
246    z-index: 2;
247    pointer-events: auto;
248    font-size: inherit;
249    visibility: hidden;
250    opacity: 0;
251    -webkit-appearance: none;
252    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
253  .reveal .controls .controls-arrow:before,
254  .reveal .controls .controls-arrow:after {
255    content: '';
256    position: absolute;
257    top: 0;
258    left: 0;
259    width: 2.6em;
260    height: 0.5em;
261    border-radius: 0.25em;
262    background-color: currentColor;
263    transition: all 0.15s ease, background-color 0.8s ease;
264    -webkit-transform-origin: 0.2em 50%;
265            transform-origin: 0.2em 50%;
266    will-change: transform; }
267  .reveal .controls .controls-arrow {
268    position: relative;
269    width: 3.6em;
270    height: 3.6em; }
271    .reveal .controls .controls-arrow:before {
272      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
273              transform: translateX(0.5em) translateY(1.55em) rotate(45deg); }
274    .reveal .controls .controls-arrow:after {
275      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
276              transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); }
277    .reveal .controls .controls-arrow:hover:before {
278      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(40deg);
279              transform: translateX(0.5em) translateY(1.55em) rotate(40deg); }
280    .reveal .controls .controls-arrow:hover:after {
281      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-40deg);
282              transform: translateX(0.5em) translateY(1.55em) rotate(-40deg); }
283    .reveal .controls .controls-arrow:active:before {
284      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(36deg);
285              transform: translateX(0.5em) translateY(1.55em) rotate(36deg); }
286    .reveal .controls .controls-arrow:active:after {
287      -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-36deg);
288              transform: translateX(0.5em) translateY(1.55em) rotate(-36deg); }
289  .reveal .controls .navigate-left {
290    right: 6.4em;
291    bottom: 3.2em;
292    -webkit-transform: translateX(-10px);
293            transform: translateX(-10px); }
294  .reveal .controls .navigate-right {
295    right: 0;
296    bottom: 3.2em;
297    -webkit-transform: translateX(10px);
298            transform: translateX(10px); }
299    .reveal .controls .navigate-right .controls-arrow {
300      -webkit-transform: rotate(180deg);
301              transform: rotate(180deg); }
302    .reveal .controls .navigate-right.highlight {
303      -webkit-animation: bounce-right 2s 50 both ease-out;
304              animation: bounce-right 2s 50 both ease-out; }
305  .reveal .controls .navigate-up {
306    right: 3.2em;
307    bottom: 6.4em;
308    -webkit-transform: translateY(-10px);
309            transform: translateY(-10px); }
310    .reveal .controls .navigate-up .controls-arrow {
311      -webkit-transform: rotate(90deg);
312              transform: rotate(90deg); }
313  .reveal .controls .navigate-down {
314    right: 3.2em;
315    bottom: -1.4em;
316    padding-bottom: 1.4em;
317    -webkit-transform: translateY(10px);
318            transform: translateY(10px); }
319    .reveal .controls .navigate-down .controls-arrow {
320      -webkit-transform: rotate(-90deg);
321              transform: rotate(-90deg); }
322    .reveal .controls .navigate-down.highlight {
323      -webkit-animation: bounce-down 2s 50 both ease-out;
324              animation: bounce-down 2s 50 both ease-out; }
325  .reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled,
326  .reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled {
327    opacity: 0.3; }
328    .reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled:hover,
329    .reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled:hover {
330      opacity: 1; }
331  .reveal .controls[data-controls-back-arrows="hidden"] .navigate-left.enabled,
332  .reveal .controls[data-controls-back-arrows="hidden"] .navigate-up.enabled {
333    opacity: 0;
334    visibility: hidden; }
335  .reveal .controls .enabled {
336    visibility: visible;
337    opacity: 0.9;
338    cursor: pointer;
339    -webkit-transform: none;
340            transform: none; }
341  .reveal .controls .enabled.fragmented {
342    opacity: 0.5; }
343  .reveal .controls .enabled:hover,
344  .reveal .controls .enabled.fragmented:hover {
345    opacity: 1; }
346
347.reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-up,
348.reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-down {
349  display: none; }
350
351.reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-left,
352.reveal:not(.has-vertical-slides) .controls .navigate-left {
353  bottom: 1.4em;
354  right: 5.5em; }
355
356.reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-right,
357.reveal:not(.has-vertical-slides) .controls .navigate-right {
358  bottom: 1.4em;
359  right: 0.5em; }
360
361.reveal:not(.has-horizontal-slides) .controls .navigate-up {
362  right: 1.4em;
363  bottom: 5em; }
364
365.reveal:not(.has-horizontal-slides) .controls .navigate-down {
366  right: 1.4em;
367  bottom: 0.5em; }
368
369.reveal.has-dark-background .controls {
370  color: #fff; }
371
372.reveal.has-light-background .controls {
373  color: #000; }
374
375.reveal.no-hover .controls .controls-arrow:hover:before,
376.reveal.no-hover .controls .controls-arrow:active:before {
377  -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
378          transform: translateX(0.5em) translateY(1.55em) rotate(45deg); }
379
380.reveal.no-hover .controls .controls-arrow:hover:after,
381.reveal.no-hover .controls .controls-arrow:active:after {
382  -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
383          transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); }
384
385@media screen and (min-width: 500px) {
386  .reveal .controls[data-controls-layout="edges"] {
387    top: 0;
388    right: 0;
389    bottom: 0;
390    left: 0; }
391  .reveal .controls[data-controls-layout="edges"] .navigate-left,
392  .reveal .controls[data-controls-layout="edges"] .navigate-right,
393  .reveal .controls[data-controls-layout="edges"] .navigate-up,
394  .reveal .controls[data-controls-layout="edges"] .navigate-down {
395    bottom: auto;
396    right: auto; }
397  .reveal .controls[data-controls-layout="edges"] .navigate-left {
398    top: 50%;
399    left: 0.8em;
400    margin-top: -1.8em; }
401  .reveal .controls[data-controls-layout="edges"] .navigate-right {
402    top: 50%;
403    right: 0.8em;
404    margin-top: -1.8em; }
405  .reveal .controls[data-controls-layout="edges"] .navigate-up {
406    top: 0.8em;
407    left: 50%;
408    margin-left: -1.8em; }
409  .reveal .controls[data-controls-layout="edges"] .navigate-down {
410    bottom: -0.3em;
411    left: 50%;
412    margin-left: -1.8em; } }
413
414/*********************************************
415 * PROGRESS BAR
416 *********************************************/
417.reveal .progress {
418  position: absolute;
419  display: none;
420  height: 3px;
421  width: 100%;
422  bottom: 0;
423  left: 0;
424  z-index: 10;
425  background-color: rgba(0, 0, 0, 0.2);
426  color: #fff; }
427
428.reveal .progress:after {
429  content: '';
430  display: block;
431  position: absolute;
432  height: 10px;
433  width: 100%;
434  top: -10px; }
435
436.reveal .progress span {
437  display: block;
438  height: 100%;
439  width: 0px;
440  background-color: currentColor;
441  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
442
443/*********************************************
444 * SLIDE NUMBER
445 *********************************************/
446.reveal .slide-number {
447  position: absolute;
448  display: block;
449  right: 8px;
450  bottom: 8px;
451  z-index: 31;
452  font-family: Helvetica, sans-serif;
453  font-size: 12px;
454  line-height: 1;
455  color: #fff;
456  background-color: rgba(0, 0, 0, 0.4);
457  padding: 5px; }
458
459.reveal .slide-number a {
460  color: currentColor; }
461
462.reveal .slide-number-delimiter {
463  margin: 0 3px; }
464
465/*********************************************
466 * SLIDES
467 *********************************************/
468.reveal {
469  position: relative;
470  width: 100%;
471  height: 100%;
472  overflow: hidden;
473  -ms-touch-action: pinch-zoom;
474      touch-action: pinch-zoom; }
475
476.reveal .slides {
477  position: absolute;
478  width: 100%;
479  height: 100%;
480  top: 0;
481  right: 0;
482  bottom: 0;
483  left: 0;
484  margin: auto;
485  pointer-events: none;
486  overflow: visible;
487  z-index: 1;
488  text-align: center;
489  -webkit-perspective: 600px;
490          perspective: 600px;
491  -webkit-perspective-origin: 50% 40%;
492          perspective-origin: 50% 40%; }
493
494.reveal .slides > section {
495  -webkit-perspective: 600px;
496          perspective: 600px; }
497
498.reveal .slides > section,
499.reveal .slides > section > section {
500  display: none;
501  position: absolute;
502  width: 100%;
503  padding: 20px 0px;
504  pointer-events: auto;
505  z-index: 10;
506  -webkit-transform-style: flat;
507          transform-style: flat;
508  transition: -webkit-transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), -webkit-transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
509  transition: transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
510
511/* Global transition speed settings */
512.reveal[data-transition-speed="fast"] .slides section {
513  transition-duration: 400ms; }
514
515.reveal[data-transition-speed="slow"] .slides section {
516  transition-duration: 1200ms; }
517
518/* Slide-specific transition speed overrides */
519.reveal .slides section[data-transition-speed="fast"] {
520  transition-duration: 400ms; }
521
522.reveal .slides section[data-transition-speed="slow"] {
523  transition-duration: 1200ms; }
524
525.reveal .slides > section.stack {
526  padding-top: 0;
527  padding-bottom: 0;
528  pointer-events: none;
529  height: 100%; }
530
531.reveal .slides > section.present,
532.reveal .slides > section > section.present {
533  display: block;
534  z-index: 11;
535  opacity: 1; }
536
537.reveal .slides > section:empty,
538.reveal .slides > section > section:empty,
539.reveal .slides > section[data-background-interactive],
540.reveal .slides > section > section[data-background-interactive] {
541  pointer-events: none; }
542
543.reveal.center,
544.reveal.center .slides,
545.reveal.center .slides section {
546  min-height: 0 !important; }
547
548/* Don't allow interaction with invisible slides */
549.reveal .slides > section.future,
550.reveal .slides > section > section.future,
551.reveal .slides > section.past,
552.reveal .slides > section > section.past {
553  pointer-events: none; }
554
555.reveal.overview .slides > section,
556.reveal.overview .slides > section > section {
557  pointer-events: auto; }
558
559.reveal .slides > section.past,
560.reveal .slides > section.future,
561.reveal .slides > section > section.past,
562.reveal .slides > section > section.future {
563  opacity: 0; }
564
565/*********************************************
566 * Mixins for readability of transitions
567 *********************************************/
568/*********************************************
569 * SLIDE TRANSITION
570 * Aliased 'linear' for backwards compatibility
571 *********************************************/
572.reveal.slide section {
573  -webkit-backface-visibility: hidden;
574          backface-visibility: hidden; }
575
576.reveal .slides > section[data-transition=slide].past,
577.reveal .slides > section[data-transition~=slide-out].past,
578.reveal.slide .slides > section:not([data-transition]).past {
579  -webkit-transform: translate(-150%, 0);
580          transform: translate(-150%, 0); }
581
582.reveal .slides > section[data-transition=slide].future,
583.reveal .slides > section[data-transition~=slide-in].future,
584.reveal.slide .slides > section:not([data-transition]).future {
585  -webkit-transform: translate(150%, 0);
586          transform: translate(150%, 0); }
587
588.reveal .slides > section > section[data-transition=slide].past,
589.reveal .slides > section > section[data-transition~=slide-out].past,
590.reveal.slide .slides > section > section:not([data-transition]).past {
591  -webkit-transform: translate(0, -150%);
592          transform: translate(0, -150%); }
593
594.reveal .slides > section > section[data-transition=slide].future,
595.reveal .slides > section > section[data-transition~=slide-in].future,
596.reveal.slide .slides > section > section:not([data-transition]).future {
597  -webkit-transform: translate(0, 150%);
598          transform: translate(0, 150%); }
599
600.reveal.linear section {
601  -webkit-backface-visibility: hidden;
602          backface-visibility: hidden; }
603
604.reveal .slides > section[data-transition=linear].past,
605.reveal .slides > section[data-transition~=linear-out].past,
606.reveal.linear .slides > section:not([data-transition]).past {
607  -webkit-transform: translate(-150%, 0);
608          transform: translate(-150%, 0); }
609
610.reveal .slides > section[data-transition=linear].future,
611.reveal .slides > section[data-transition~=linear-in].future,
612.reveal.linear .slides > section:not([data-transition]).future {
613  -webkit-transform: translate(150%, 0);
614          transform: translate(150%, 0); }
615
616.reveal .slides > section > section[data-transition=linear].past,
617.reveal .slides > section > section[data-transition~=linear-out].past,
618.reveal.linear .slides > section > section:not([data-transition]).past {
619  -webkit-transform: translate(0, -150%);
620          transform: translate(0, -150%); }
621
622.reveal .slides > section > section[data-transition=linear].future,
623.reveal .slides > section > section[data-transition~=linear-in].future,
624.reveal.linear .slides > section > section:not([data-transition]).future {
625  -webkit-transform: translate(0, 150%);
626          transform: translate(0, 150%); }
627
628/*********************************************
629 * CONVEX TRANSITION
630 * Aliased 'default' for backwards compatibility
631 *********************************************/
632.reveal .slides section[data-transition=default].stack,
633.reveal.default .slides section.stack {
634  -webkit-transform-style: preserve-3d;
635          transform-style: preserve-3d; }
636
637.reveal .slides > section[data-transition=default].past,
638.reveal .slides > section[data-transition~=default-out].past,
639.reveal.default .slides > section:not([data-transition]).past {
640  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
641          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }
642
643.reveal .slides > section[data-transition=default].future,
644.reveal .slides > section[data-transition~=default-in].future,
645.reveal.default .slides > section:not([data-transition]).future {
646  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
647          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }
648
649.reveal .slides > section > section[data-transition=default].past,
650.reveal .slides > section > section[data-transition~=default-out].past,
651.reveal.default .slides > section > section:not([data-transition]).past {
652  -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
653          transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }
654
655.reveal .slides > section > section[data-transition=default].future,
656.reveal .slides > section > section[data-transition~=default-in].future,
657.reveal.default .slides > section > section:not([data-transition]).future {
658  -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
659          transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }
660
661.reveal .slides section[data-transition=convex].stack,
662.reveal.convex .slides section.stack {
663  -webkit-transform-style: preserve-3d;
664          transform-style: preserve-3d; }
665
666.reveal .slides > section[data-transition=convex].past,
667.reveal .slides > section[data-transition~=convex-out].past,
668.reveal.convex .slides > section:not([data-transition]).past {
669  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
670          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }
671
672.reveal .slides > section[data-transition=convex].future,
673.reveal .slides > section[data-transition~=convex-in].future,
674.reveal.convex .slides > section:not([data-transition]).future {
675  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
676          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }
677
678.reveal .slides > section > section[data-transition=convex].past,
679.reveal .slides > section > section[data-transition~=convex-out].past,
680.reveal.convex .slides > section > section:not([data-transition]).past {
681  -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
682          transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }
683
684.reveal .slides > section > section[data-transition=convex].future,
685.reveal .slides > section > section[data-transition~=convex-in].future,
686.reveal.convex .slides > section > section:not([data-transition]).future {
687  -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
688          transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }
689
690/*********************************************
691 * CONCAVE TRANSITION
692 *********************************************/
693.reveal .slides section[data-transition=concave].stack,
694.reveal.concave .slides section.stack {
695  -webkit-transform-style: preserve-3d;
696          transform-style: preserve-3d; }
697
698.reveal .slides > section[data-transition=concave].past,
699.reveal .slides > section[data-transition~=concave-out].past,
700.reveal.concave .slides > section:not([data-transition]).past {
701  -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
702          transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }
703
704.reveal .slides > section[data-transition=concave].future,
705.reveal .slides > section[data-transition~=concave-in].future,
706.reveal.concave .slides > section:not([data-transition]).future {
707  -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
708          transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }
709
710.reveal .slides > section > section[data-transition=concave].past,
711.reveal .slides > section > section[data-transition~=concave-out].past,
712.reveal.concave .slides > section > section:not([data-transition]).past {
713  -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
714          transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); }
715
716.reveal .slides > section > section[data-transition=concave].future,
717.reveal .slides > section > section[data-transition~=concave-in].future,
718.reveal.concave .slides > section > section:not([data-transition]).future {
719  -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
720          transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); }
721
722/*********************************************
723 * ZOOM TRANSITION
724 *********************************************/
725.reveal .slides section[data-transition=zoom],
726.reveal.zoom .slides section:not([data-transition]) {
727  transition-timing-function: ease; }
728
729.reveal .slides > section[data-transition=zoom].past,
730.reveal .slides > section[data-transition~=zoom-out].past,
731.reveal.zoom .slides > section:not([data-transition]).past {
732  visibility: hidden;
733  -webkit-transform: scale(16);
734          transform: scale(16); }
735
736.reveal .slides > section[data-transition=zoom].future,
737.reveal .slides > section[data-transition~=zoom-in].future,
738.reveal.zoom .slides > section:not([data-transition]).future {
739  visibility: hidden;
740  -webkit-transform: scale(0.2);
741          transform: scale(0.2); }
742
743.reveal .slides > section > section[data-transition=zoom].past,
744.reveal .slides > section > section[data-transition~=zoom-out].past,
745.reveal.zoom .slides > section > section:not([data-transition]).past {
746  -webkit-transform: scale(16);
747          transform: scale(16); }
748
749.reveal .slides > section > section[data-transition=zoom].future,
750.reveal .slides > section > section[data-transition~=zoom-in].future,
751.reveal.zoom .slides > section > section:not([data-transition]).future {
752  -webkit-transform: scale(0.2);
753          transform: scale(0.2); }
754
755/*********************************************
756 * CUBE TRANSITION
757 *
758 * WARNING:
759 * this is deprecated and will be removed in a
760 * future version.
761 *********************************************/
762.reveal.cube .slides {
763  -webkit-perspective: 1300px;
764          perspective: 1300px; }
765
766.reveal.cube .slides section {
767  padding: 30px;
768  min-height: 700px;
769  -webkit-backface-visibility: hidden;
770          backface-visibility: hidden;
771  box-sizing: border-box;
772  -webkit-transform-style: preserve-3d;
773          transform-style: preserve-3d; }
774
775.reveal.center.cube .slides section {
776  min-height: 0; }
777
778.reveal.cube .slides section:not(.stack):before {
779  content: '';
780  position: absolute;
781  display: block;
782  width: 100%;
783  height: 100%;
784  left: 0;
785  top: 0;
786  background: rgba(0, 0, 0, 0.1);
787  border-radius: 4px;
788  -webkit-transform: translateZ(-20px);
789          transform: translateZ(-20px); }
790
791.reveal.cube .slides section:not(.stack):after {
792  content: '';
793  position: absolute;
794  display: block;
795  width: 90%;
796  height: 30px;
797  left: 5%;
798  bottom: 0;
799  background: none;
800  z-index: 1;
801  border-radius: 4px;
802  box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);
803  -webkit-transform: translateZ(-90px) rotateX(65deg);
804          transform: translateZ(-90px) rotateX(65deg); }
805
806.reveal.cube .slides > section.stack {
807  padding: 0;
808  background: none; }
809
810.reveal.cube .slides > section.past {
811  -webkit-transform-origin: 100% 0%;
812          transform-origin: 100% 0%;
813  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
814          transform: translate3d(-100%, 0, 0) rotateY(-90deg); }
815
816.reveal.cube .slides > section.future {
817  -webkit-transform-origin: 0% 0%;
818          transform-origin: 0% 0%;
819  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
820          transform: translate3d(100%, 0, 0) rotateY(90deg); }
821
822.reveal.cube .slides > section > section.past {
823  -webkit-transform-origin: 0% 100%;
824          transform-origin: 0% 100%;
825  -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
826          transform: translate3d(0, -100%, 0) rotateX(90deg); }
827
828.reveal.cube .slides > section > section.future {
829  -webkit-transform-origin: 0% 0%;
830          transform-origin: 0% 0%;
831  -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
832          transform: translate3d(0, 100%, 0) rotateX(-90deg); }
833
834/*********************************************
835 * PAGE TRANSITION
836 *
837 * WARNING:
838 * this is deprecated and will be removed in a
839 * future version.
840 *********************************************/
841.reveal.page .slides {
842  -webkit-perspective-origin: 0% 50%;
843          perspective-origin: 0% 50%;
844  -webkit-perspective: 3000px;
845          perspective: 3000px; }
846
847.reveal.page .slides section {
848  padding: 30px;
849  min-height: 700px;
850  box-sizing: border-box;
851  -webkit-transform-style: preserve-3d;
852          transform-style: preserve-3d; }
853
854.reveal.page .slides section.past {
855  z-index: 12; }
856
857.reveal.page .slides section:not(.stack):before {
858  content: '';
859  position: absolute;
860  display: block;
861  width: 100%;
862  height: 100%;
863  left: 0;
864  top: 0;
865  background: rgba(0, 0, 0, 0.1);
866  -webkit-transform: translateZ(-20px);
867          transform: translateZ(-20px); }
868
869.reveal.page .slides section:not(.stack):after {
870  content: '';
871  position: absolute;
872  display: block;
873  width: 90%;
874  height: 30px;
875  left: 5%;
876  bottom: 0;
877  background: none;
878  z-index: 1;
879  border-radius: 4px;
880  box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);
881  -webkit-transform: translateZ(-90px) rotateX(65deg); }
882
883.reveal.page .slides > section.stack {
884  padding: 0;
885  background: none; }
886
887.reveal.page .slides > section.past {
888  -webkit-transform-origin: 0% 0%;
889          transform-origin: 0% 0%;
890  -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
891          transform: translate3d(-40%, 0, 0) rotateY(-80deg); }
892
893.reveal.page .slides > section.future {
894  -webkit-transform-origin: 100% 0%;
895          transform-origin: 100% 0%;
896  -webkit-transform: translate3d(0, 0, 0);
897          transform: translate3d(0, 0, 0); }
898
899.reveal.page .slides > section > section.past {
900  -webkit-transform-origin: 0% 0%;
901          transform-origin: 0% 0%;
902  -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
903          transform: translate3d(0, -40%, 0) rotateX(80deg); }
904
905.reveal.page .slides > section > section.future {
906  -webkit-transform-origin: 0% 100%;
907          transform-origin: 0% 100%;
908  -webkit-transform: translate3d(0, 0, 0);
909          transform: translate3d(0, 0, 0); }
910
911/*********************************************
912 * FADE TRANSITION
913 *********************************************/
914.reveal .slides section[data-transition=fade],
915.reveal.fade .slides section:not([data-transition]),
916.reveal.fade .slides > section > section:not([data-transition]) {
917  -webkit-transform: none;
918          transform: none;
919  transition: opacity 0.5s; }
920
921.reveal.fade.overview .slides section,
922.reveal.fade.overview .slides > section > section {
923  transition: none; }
924
925/*********************************************
926 * NO TRANSITION
927 *********************************************/
928.reveal .slides section[data-transition=none],
929.reveal.none .slides section:not([data-transition]) {
930  -webkit-transform: none;
931          transform: none;
932  transition: none; }
933
934/*********************************************
935 * PAUSED MODE
936 *********************************************/
937.reveal .pause-overlay {
938  position: absolute;
939  top: 0;
940  left: 0;
941  width: 100%;
942  height: 100%;
943  background: black;
944  visibility: hidden;
945  opacity: 0;
946  z-index: 100;
947  transition: all 1s ease; }
948
949.reveal .pause-overlay .resume-button {
950  position: absolute;
951  bottom: 20px;
952  right: 20px;
953  color: #ccc;
954  border-radius: 2px;
955  padding: 6px 14px;
956  border: 2px solid #ccc;
957  font-size: 16px;
958  background: transparent;
959  cursor: pointer; }
960  .reveal .pause-overlay .resume-button:hover {
961    color: #fff;
962    border-color: #fff; }
963
964.reveal.paused .pause-overlay {
965  visibility: visible;
966  opacity: 1; }
967
968/*********************************************
969 * FALLBACK
970 *********************************************/
971.no-transforms {
972  overflow-y: auto; }
973
974.no-transforms .reveal {
975  overflow: visible; }
976
977.no-transforms .reveal .slides {
978  position: relative;
979  width: 80%;
980  max-width: 1280px;
981  height: auto;
982  top: 0;
983  margin: 0 auto;
984  text-align: center; }
985
986.no-transforms .reveal .controls,
987.no-transforms .reveal .progress {
988  display: none; }
989
990.no-transforms .reveal .slides section {
991  display: block;
992  opacity: 1;
993  position: relative;
994  height: auto;
995  min-height: 0;
996  top: 0;
997  left: 0;
998  margin: 10vh 0;
999  margin: 70px 0;
1000  -webkit-transform: none;
1001          transform: none; }
1002
1003.reveal .no-transition,
1004.reveal .no-transition * {
1005  transition: none !important; }
1006
1007/*********************************************
1008 * PER-SLIDE BACKGROUNDS
1009 *********************************************/
1010.reveal .backgrounds {
1011  position: absolute;
1012  width: 100%;
1013  height: 100%;
1014  top: 0;
1015  left: 0;
1016  -webkit-perspective: 600px;
1017          perspective: 600px; }
1018
1019.reveal .slide-background {
1020  display: none;
1021  position: absolute;
1022  width: 100%;
1023  height: 100%;
1024  opacity: 0;
1025  visibility: hidden;
1026  overflow: hidden;
1027  background-color: rgba(0, 0, 0, 0);
1028  transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
1029
1030.reveal .slide-background-content {
1031  position: absolute;
1032  width: 100%;
1033  height: 100%;
1034  background-position: 50% 50%;
1035  background-repeat: no-repeat;
1036  background-size: cover; }
1037
1038.reveal .slide-background.stack {
1039  display: block; }
1040
1041.reveal .slide-background.present {
1042  opacity: 1;
1043  visibility: visible;
1044  z-index: 2; }
1045
1046.print-pdf .reveal .slide-background {
1047  opacity: 1 !important;
1048  visibility: visible !important; }
1049
1050/* Video backgrounds */
1051.reveal .slide-background video {
1052  position: absolute;
1053  width: 100%;
1054  height: 100%;
1055  max-width: none;
1056  max-height: none;
1057  top: 0;
1058  left: 0;
1059  -o-object-fit: cover;
1060     object-fit: cover; }
1061
1062.reveal .slide-background[data-background-size="contain"] video {
1063  -o-object-fit: contain;
1064     object-fit: contain; }
1065
1066/* Immediate transition style */
1067.reveal[data-background-transition=none] > .backgrounds .slide-background,
1068.reveal > .backgrounds .slide-background[data-background-transition=none] {
1069  transition: none; }
1070
1071/* Slide */
1072.reveal[data-background-transition=slide] > .backgrounds .slide-background,
1073.reveal > .backgrounds .slide-background[data-background-transition=slide] {
1074  opacity: 1;
1075  -webkit-backface-visibility: hidden;
1076          backface-visibility: hidden; }
1077
1078.reveal[data-background-transition=slide] > .backgrounds .slide-background.past,
1079.reveal > .backgrounds .slide-background.past[data-background-transition=slide] {
1080  -webkit-transform: translate(-100%, 0);
1081          transform: translate(-100%, 0); }
1082
1083.reveal[data-background-transition=slide] > .backgrounds .slide-background.future,
1084.reveal > .backgrounds .slide-background.future[data-background-transition=slide] {
1085  -webkit-transform: translate(100%, 0);
1086          transform: translate(100%, 0); }
1087
1088.reveal[data-background-transition=slide] > .backgrounds .slide-background > .slide-background.past,
1089.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=slide] {
1090  -webkit-transform: translate(0, -100%);
1091          transform: translate(0, -100%); }
1092
1093.reveal[data-background-transition=slide] > .backgrounds .slide-background > .slide-background.future,
1094.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=slide] {
1095  -webkit-transform: translate(0, 100%);
1096          transform: translate(0, 100%); }
1097
1098/* Convex */
1099.reveal[data-background-transition=convex] > .backgrounds .slide-background.past,
1100.reveal > .backgrounds .slide-background.past[data-background-transition=convex] {
1101  opacity: 0;
1102  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
1103          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }
1104
1105.reveal[data-background-transition=convex] > .backgrounds .slide-background.future,
1106.reveal > .backgrounds .slide-background.future[data-background-transition=convex] {
1107  opacity: 0;
1108  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
1109          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }
1110
1111.reveal[data-background-transition=convex] > .backgrounds .slide-background > .slide-background.past,
1112.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=convex] {
1113  opacity: 0;
1114  -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
1115          transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0); }
1116
1117.reveal[data-background-transition=convex] > .backgrounds .slide-background > .slide-background.future,
1118.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=convex] {
1119  opacity: 0;
1120  -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
1121          transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0); }
1122
1123/* Concave */
1124.reveal[data-background-transition=concave] > .backgrounds .slide-background.past,
1125.reveal > .backgrounds .slide-background.past[data-background-transition=concave] {
1126  opacity: 0;
1127  -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
1128          transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }
1129
1130.reveal[data-background-transition=concave] > .backgrounds .slide-background.future,
1131.reveal > .backgrounds .slide-background.future[data-background-transition=concave] {
1132  opacity: 0;
1133  -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
1134          transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }
1135
1136.reveal[data-background-transition=concave] > .backgrounds .slide-background > .slide-background.past,
1137.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=concave] {
1138  opacity: 0;
1139  -webkit-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
1140          transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0); }
1141
1142.reveal[data-background-transition=concave] > .backgrounds .slide-background > .slide-background.future,
1143.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=concave] {
1144  opacity: 0;
1145  -webkit-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
1146          transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0); }
1147
1148/* Zoom */
1149.reveal[data-background-transition=zoom] > .backgrounds .slide-background,
1150.reveal > .backgrounds .slide-background[data-background-transition=zoom] {
1151  transition-timing-function: ease; }
1152
1153.reveal[data-background-transition=zoom] > .backgrounds .slide-background.past,
1154.reveal > .backgrounds .slide-background.past[data-background-transition=zoom] {
1155  opacity: 0;
1156  visibility: hidden;
1157  -webkit-transform: scale(16);
1158          transform: scale(16); }
1159
1160.reveal[data-background-transition=zoom] > .backgrounds .slide-background.future,
1161.reveal > .backgrounds .slide-background.future[data-background-transition=zoom] {
1162  opacity: 0;
1163  visibility: hidden;
1164  -webkit-transform: scale(0.2);
1165          transform: scale(0.2); }
1166
1167.reveal[data-background-transition=zoom] > .backgrounds .slide-background > .slide-background.past,
1168.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=zoom] {
1169  opacity: 0;
1170  visibility: hidden;
1171  -webkit-transform: scale(16);
1172          transform: scale(16); }
1173
1174.reveal[data-background-transition=zoom] > .backgrounds .slide-background > .slide-background.future,
1175.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=zoom] {
1176  opacity: 0;
1177  visibility: hidden;
1178  -webkit-transform: scale(0.2);
1179          transform: scale(0.2); }
1180
1181/* Global transition speed settings */
1182.reveal[data-transition-speed="fast"] > .backgrounds .slide-background {
1183  transition-duration: 400ms; }
1184
1185.reveal[data-transition-speed="slow"] > .backgrounds .slide-background {
1186  transition-duration: 1200ms; }
1187
1188/*********************************************
1189 * OVERVIEW
1190 *********************************************/
1191.reveal.overview {
1192  -webkit-perspective-origin: 50% 50%;
1193          perspective-origin: 50% 50%;
1194  -webkit-perspective: 700px;
1195          perspective: 700px; }
1196  .reveal.overview .slides {
1197    -moz-transform-style: preserve-3d; }
1198  .reveal.overview .slides section {
1199    height: 100%;
1200    top: 0 !important;
1201    opacity: 1 !important;
1202    overflow: hidden;
1203    visibility: visible !important;
1204    cursor: pointer;
1205    box-sizing: border-box; }
1206  .reveal.overview .slides section:hover,
1207  .reveal.overview .slides section.present {
1208    outline: 10px solid rgba(150, 150, 150, 0.4);
1209    outline-offset: 10px; }
1210  .reveal.overview .slides section .fragment {
1211    opacity: 1;
1212    transition: none; }
1213  .reveal.overview .slides section:after,
1214  .reveal.overview .slides section:before {
1215    display: none !important; }
1216  .reveal.overview .slides > section.stack {
1217    padding: 0;
1218    top: 0 !important;
1219    background: none;
1220    outline: none;
1221    overflow: visible; }
1222  .reveal.overview .backgrounds {
1223    -webkit-perspective: inherit;
1224            perspective: inherit;
1225    -moz-transform-style: preserve-3d; }
1226  .reveal.overview .backgrounds .slide-background {
1227    opacity: 1;
1228    visibility: visible;
1229    outline: 10px solid rgba(150, 150, 150, 0.1);
1230    outline-offset: 10px; }
1231  .reveal.overview .backgrounds .slide-background.stack {
1232    overflow: visible; }
1233
1234.reveal.overview .slides section,
1235.reveal.overview-deactivating .slides section {
1236  transition: none; }
1237
1238.reveal.overview .backgrounds .slide-background,
1239.reveal.overview-deactivating .backgrounds .slide-background {
1240  transition: none; }
1241
1242/*********************************************
1243 * RTL SUPPORT
1244 *********************************************/
1245.reveal.rtl .slides,
1246.reveal.rtl .slides h1,
1247.reveal.rtl .slides h2,
1248.reveal.rtl .slides h3,
1249.reveal.rtl .slides h4,
1250.reveal.rtl .slides h5,
1251.reveal.rtl .slides h6 {
1252  direction: rtl;
1253  font-family: sans-serif; }
1254
1255.reveal.rtl pre,
1256.reveal.rtl code {
1257  direction: ltr; }
1258
1259.reveal.rtl ol,
1260.reveal.rtl ul {
1261  text-align: right; }
1262
1263.reveal.rtl .progress span {
1264  float: right; }
1265
1266/*********************************************
1267 * PARALLAX BACKGROUND
1268 *********************************************/
1269.reveal.has-parallax-background .backgrounds {
1270  transition: all 0.8s ease; }
1271
1272/* Global transition speed settings */
1273.reveal.has-parallax-background[data-transition-speed="fast"] .backgrounds {
1274  transition-duration: 400ms; }
1275
1276.reveal.has-parallax-background[data-transition-speed="slow"] .backgrounds {
1277  transition-duration: 1200ms; }
1278
1279/*********************************************
1280 * OVERLAY FOR LINK PREVIEWS AND HELP
1281 *********************************************/
1282.reveal > .overlay {
1283  position: absolute;
1284  top: 0;
1285  left: 0;
1286  width: 100%;
1287  height: 100%;
1288  z-index: 1000;
1289  background: rgba(0, 0, 0, 0.9);
1290  opacity: 0;
1291  visibility: hidden;
1292  transition: all 0.3s ease; }
1293
1294.reveal > .overlay.visible {
1295  opacity: 1;
1296  visibility: visible; }
1297
1298.reveal > .overlay .spinner {
1299  position: absolute;
1300  display: block;
1301  top: 50%;
1302  left: 50%;
1303  width: 32px;
1304  height: 32px;
1305  margin: -16px 0 0 -16px;
1306  z-index: 10;
1307  background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);
1308  visibility: visible;
1309  opacity: 0.6;
1310  transition: all 0.3s ease; }
1311
1312.reveal > .overlay header {
1313  position: absolute;
1314  left: 0;
1315  top: 0;
1316  width: 100%;
1317  height: 40px;
1318  z-index: 2;
1319  border-bottom: 1px solid #222; }
1320
1321.reveal > .overlay header a {
1322  display: inline-block;
1323  width: 40px;
1324  height: 40px;
1325  line-height: 36px;
1326  padding: 0 10px;
1327  float: right;
1328  opacity: 0.6;
1329  box-sizing: border-box; }
1330
1331.reveal > .overlay header a:hover {
1332  opacity: 1; }
1333
1334.reveal > .overlay header a .icon {
1335  display: inline-block;
1336  width: 20px;
1337  height: 20px;
1338  background-position: 50% 50%;
1339  background-size: 100%;
1340  background-repeat: no-repeat; }
1341
1342.reveal > .overlay header a.close .icon {
1343  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC); }
1344
1345.reveal > .overlay header a.external .icon {
1346  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==); }
1347
1348.reveal > .overlay .viewport {
1349  position: absolute;
1350  display: -webkit-box;
1351  display: -ms-flexbox;
1352  display: flex;
1353  top: 40px;
1354  right: 0;
1355  bottom: 0;
1356  left: 0; }
1357
1358.reveal > .overlay.overlay-preview .viewport iframe {
1359  width: 100%;
1360  height: 100%;
1361  max-width: 100%;
1362  max-height: 100%;
1363  border: 0;
1364  opacity: 0;
1365  visibility: hidden;
1366  transition: all 0.3s ease; }
1367
1368.reveal > .overlay.overlay-preview.loaded .viewport iframe {
1369  opacity: 1;
1370  visibility: visible; }
1371
1372.reveal > .overlay.overlay-preview.loaded .viewport-inner {
1373  position: absolute;
1374  z-index: -1;
1375  left: 0;
1376  top: 45%;
1377  width: 100%;
1378  text-align: center;
1379  letter-spacing: normal; }
1380
1381.reveal > .overlay.overlay-preview .x-frame-error {
1382  opacity: 0;
1383  transition: opacity 0.3s ease 0.3s; }
1384
1385.reveal > .overlay.overlay-preview.loaded .x-frame-error {
1386  opacity: 1; }
1387
1388.reveal > .overlay.overlay-preview.loaded .spinner {
1389  opacity: 0;
1390  visibility: hidden;
1391  -webkit-transform: scale(0.2);
1392          transform: scale(0.2); }
1393
1394.reveal > .overlay.overlay-help .viewport {
1395  overflow: auto;
1396  color: #fff; }
1397
1398.reveal > .overlay.overlay-help .viewport .viewport-inner {
1399  width: 600px;
1400  margin: auto;
1401  padding: 20px 20px 80px 20px;
1402  text-align: center;
1403  letter-spacing: normal; }
1404
1405.reveal > .overlay.overlay-help .viewport .viewport-inner .title {
1406  font-size: 20px; }
1407
1408.reveal > .overlay.overlay-help .viewport .viewport-inner table {
1409  border: 1px solid #fff;
1410  border-collapse: collapse;
1411  font-size: 16px; }
1412
1413.reveal > .overlay.overlay-help .viewport .viewport-inner table th,
1414.reveal > .overlay.overlay-help .viewport .viewport-inner table td {
1415  width: 200px;
1416  padding: 14px;
1417  border: 1px solid #fff;
1418  vertical-align: middle; }
1419
1420.reveal > .overlay.overlay-help .viewport .viewport-inner table th {
1421  padding-top: 20px;
1422  padding-bottom: 20px; }
1423
1424/*********************************************
1425 * PLAYBACK COMPONENT
1426 *********************************************/
1427.reveal .playback {
1428  position: absolute;
1429  left: 15px;
1430  bottom: 20px;
1431  z-index: 30;
1432  cursor: pointer;
1433  transition: all 400ms ease;
1434  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
1435
1436.reveal.overview .playback {
1437  opacity: 0;
1438  visibility: hidden; }
1439
1440/*********************************************
1441 * CODE HIGHLGIHTING
1442 *********************************************/
1443.reveal .hljs table {
1444  margin: initial; }
1445
1446.reveal .hljs-ln-code,
1447.reveal .hljs-ln-numbers {
1448  padding: 0;
1449  border: 0; }
1450
1451.reveal .hljs-ln-numbers {
1452  opacity: 0.6;
1453  padding-right: 0.75em;
1454  text-align: right;
1455  vertical-align: top; }
1456
1457.reveal .hljs.has-highlights tr:not(.highlight-line) {
1458  opacity: 0.4; }
1459
1460.reveal .hljs:not(:first-child).fragment {
1461  position: absolute;
1462  top: 0;
1463  left: 0;
1464  width: 100%;
1465  box-sizing: border-box; }
1466
1467/*********************************************
1468 * ROLLING LINKS
1469 *********************************************/
1470.reveal .roll {
1471  display: inline-block;
1472  line-height: 1.2;
1473  overflow: hidden;
1474  vertical-align: top;
1475  -webkit-perspective: 400px;
1476          perspective: 400px;
1477  -webkit-perspective-origin: 50% 50%;
1478          perspective-origin: 50% 50%; }
1479
1480.reveal .roll:hover {
1481  background: none;
1482  text-shadow: none; }
1483
1484.reveal .roll span {
1485  display: block;
1486  position: relative;
1487  padding: 0 2px;
1488  pointer-events: none;
1489  transition: all 400ms ease;
1490  -webkit-transform-origin: 50% 0%;
1491          transform-origin: 50% 0%;
1492  -webkit-transform-style: preserve-3d;
1493          transform-style: preserve-3d;
1494  -webkit-backface-visibility: hidden;
1495          backface-visibility: hidden; }
1496
1497.reveal .roll:hover span {
1498  background: rgba(0, 0, 0, 0.5);
1499  -webkit-transform: translate3d(0px, 0px, -45px) rotateX(90deg);
1500          transform: translate3d(0px, 0px, -45px) rotateX(90deg); }
1501
1502.reveal .roll span:after {
1503  content: attr(data-title);
1504  display: block;
1505  position: absolute;
1506  left: 0;
1507  top: 0;
1508  padding: 0 2px;
1509  -webkit-backface-visibility: hidden;
1510          backface-visibility: hidden;
1511  -webkit-transform-origin: 50% 0%;
1512          transform-origin: 50% 0%;
1513  -webkit-transform: translate3d(0px, 110%, 0px) rotateX(-90deg);
1514          transform: translate3d(0px, 110%, 0px) rotateX(-90deg); }
1515
1516/*********************************************
1517 * SPEAKER NOTES
1518 *********************************************/
1519.reveal aside.notes {
1520  display: none; }
1521
1522.reveal .speaker-notes {
1523  display: none;
1524  position: absolute;
1525  width: 33.3333333333%;
1526  height: 100%;
1527  top: 0;
1528  left: 100%;
1529  padding: 14px 18px 14px 18px;
1530  z-index: 1;
1531  font-size: 18px;
1532  line-height: 1.4;
1533  border: 1px solid rgba(0, 0, 0, 0.05);
1534  color: #222;
1535  background-color: #f5f5f5;
1536  overflow: auto;
1537  box-sizing: border-box;
1538  text-align: left;
1539  font-family: Helvetica, sans-serif;
1540  -webkit-overflow-scrolling: touch; }
1541  .reveal .speaker-notes .notes-placeholder {
1542    color: #ccc;
1543    font-style: italic; }
1544  .reveal .speaker-notes:focus {
1545    outline: none; }
1546  .reveal .speaker-notes:before {
1547    content: 'Speaker notes';
1548    display: block;
1549    margin-bottom: 10px;
1550    opacity: 0.5; }
1551
1552.reveal.show-notes {
1553  max-width: 75%;
1554  overflow: visible; }
1555
1556.reveal.show-notes .speaker-notes {
1557  display: block; }
1558
1559@media screen and (min-width: 1600px) {
1560  .reveal .speaker-notes {
1561    font-size: 20px; } }
1562
1563@media screen and (max-width: 1024px) {
1564  .reveal.show-notes {
1565    border-left: 0;
1566    max-width: none;
1567    max-height: 70%;
1568    max-height: 70vh;
1569    overflow: visible; }
1570  .reveal.show-notes .speaker-notes {
1571    top: 100%;
1572    left: 0;
1573    width: 100%;
1574    height: 42.8571428571%;
1575    height: 30vh;
1576    border: 0; } }
1577
1578@media screen and (max-width: 600px) {
1579  .reveal.show-notes {
1580    max-height: 60%;
1581    max-height: 60vh; }
1582  .reveal.show-notes .speaker-notes {
1583    top: 100%;
1584    height: 66.6666666667%;
1585    height: 40vh; }
1586  .reveal .speaker-notes {
1587    font-size: 14px; } }
1588
1589/*********************************************
1590 * ZOOM PLUGIN
1591 *********************************************/
1592.zoomed .reveal *,
1593.zoomed .reveal *:before,
1594.zoomed .reveal *:after {
1595  -webkit-backface-visibility: visible !important;
1596          backface-visibility: visible !important; }
1597
1598.zoomed .reveal .progress,
1599.zoomed .reveal .controls {
1600  opacity: 0; }
1601
1602.zoomed .reveal .roll span {
1603  background: none; }
1604
1605.zoomed .reveal .roll span:after {
1606  visibility: hidden; }
1607