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