| @use "sass:math"; |
| |
| /** |
| * reveal.js |
| * http://revealjs.com |
| * MIT licensed |
| * |
| * Copyright (C) Hakim El Hattab, https://hakim.se |
| */ |
| |
| @import 'layout'; |
| |
| /********************************************* |
| * GLOBAL STYLES |
| *********************************************/ |
| |
| html.reveal-full-page { |
| width: 100%; |
| height: 100%; |
| height: 100vh; |
| height: calc( var(--vh, 1vh) * 100 ); |
| height: 100svh; |
| overflow: hidden; |
| } |
| |
| .reveal-viewport { |
| height: 100%; |
| overflow: hidden; |
| position: relative; |
| line-height: 1; |
| margin: 0; |
| |
| background-color: #fff; |
| color: #000; |
| |
| --r-controls-spacing: 12px; |
| } |
| |
| // Force the presentation to cover the full viewport when we |
| // enter fullscreen mode. Fixes sizing issues in Safari. |
| .reveal-viewport:fullscreen { |
| top: 0 !important; |
| left: 0 !important; |
| width: 100% !important; |
| height: 100% !important; |
| transform: none !important; |
| } |
| |
| |
| /********************************************* |
| * VIEW FRAGMENTS |
| *********************************************/ |
| |
| .reveal .fragment { |
| transition: all .2s ease; |
| |
| &:not(.custom) { |
| opacity: 0; |
| visibility: hidden; |
| will-change: opacity; |
| } |
| |
| &.visible { |
| opacity: 1; |
| visibility: inherit; |
| } |
| |
| &.disabled { |
| transition: none; |
| } |
| } |
| |
| .reveal .fragment.grow { |
| opacity: 1; |
| visibility: inherit; |
| |
| &.visible { |
| transform: scale( 1.3 ); |
| } |
| } |
| |
| .reveal .fragment.shrink { |
| opacity: 1; |
| visibility: inherit; |
| |
| &.visible { |
| transform: scale( 0.7 ); |
| } |
| } |
| |
| .reveal .fragment.zoom-in { |
| transform: scale( 0.1 ); |
| |
| &.visible { |
| transform: none; |
| } |
| } |
| |
| .reveal .fragment.fade-out { |
| opacity: 1; |
| visibility: inherit; |
| |
| &.visible { |
| opacity: 0; |
| visibility: hidden; |
| } |
| } |
| |
| .reveal .fragment.semi-fade-out { |
| opacity: 1; |
| visibility: inherit; |
| |
| &.visible { |
| opacity: 0.5; |
| visibility: inherit; |
| } |
| } |
| |
| .reveal .fragment.strike { |
| opacity: 1; |
| visibility: inherit; |
| |
| &.visible { |
| text-decoration: line-through; |
| } |
| } |
| |
| .reveal .fragment.fade-up { |
| transform: translate(0, 40px); |
| |
| &.visible { |
| transform: translate(0, 0); |
| } |
| } |
| |
| .reveal .fragment.fade-down { |
| transform: translate(0, -40px); |
| |
| &.visible { |
| transform: translate(0, 0); |
| } |
| } |
| |
| .reveal .fragment.fade-right { |
| transform: translate(-40px, 0); |
| |
| &.visible { |
| transform: translate(0, 0); |
| } |
| } |
| |
| .reveal .fragment.fade-left { |
| transform: translate(40px, 0); |
| |
| &.visible { |
| transform: translate(0, 0); |
| } |
| } |
| |
| .reveal .fragment.fade-in-then-out, |
| .reveal .fragment.current-visible { |
| opacity: 0; |
| visibility: hidden; |
| |
| &.current-fragment { |
| opacity: 1; |
| visibility: inherit; |
| } |
| } |
| |
| .reveal .fragment.fade-in-then-semi-out { |
| opacity: 0; |
| visibility: hidden; |
| |
| &.visible { |
| opacity: 0.5; |
| visibility: inherit; |
| } |
| |
| &.current-fragment { |
| opacity: 1; |
| visibility: inherit; |
| } |
| } |
| |
| .reveal .fragment.highlight-red, |
| .reveal .fragment.highlight-current-red, |
| .reveal .fragment.highlight-green, |
| .reveal .fragment.highlight-current-green, |
| .reveal .fragment.highlight-blue, |
| .reveal .fragment.highlight-current-blue { |
| opacity: 1; |
| visibility: inherit; |
| } |
| .reveal .fragment.highlight-red.visible { |
| color: #ff2c2d |
| } |
| .reveal .fragment.highlight-green.visible { |
| color: #17ff2e; |
| } |
| .reveal .fragment.highlight-blue.visible { |
| color: #1b91ff; |
| } |
| |
| .reveal .fragment.highlight-current-red.current-fragment { |
| color: #ff2c2d |
| } |
| .reveal .fragment.highlight-current-green.current-fragment { |
| color: #17ff2e; |
| } |
| .reveal .fragment.highlight-current-blue.current-fragment { |
| color: #1b91ff; |
| } |
| |
| |
| /********************************************* |
| * DEFAULT ELEMENT STYLES |
| *********************************************/ |
| |
| /* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */ |
| .reveal:after { |
| content: ''; |
| font-style: italic; |
| } |
| |
| .reveal iframe { |
| z-index: 1; |
| } |
| |
| /** Prevents layering issues in certain browser/transition combinations */ |
| .reveal a { |
| position: relative; |
| } |
| |
| |
| /********************************************* |
| * CONTROLS |
| *********************************************/ |
| |
| @keyframes bounce-right { |
| 0%, 10%, 25%, 40%, 50% {transform: translateX(0);} |
| 20% {transform: translateX(10px);} |
| 30% {transform: translateX(-5px);} |
| } |
| |
| @keyframes bounce-left { |
| 0%, 10%, 25%, 40%, 50% {transform: translateX(0);} |
| 20% {transform: translateX(-10px);} |
| 30% {transform: translateX(5px);} |
| } |
| |
| @keyframes bounce-down { |
| 0%, 10%, 25%, 40%, 50% {transform: translateY(0);} |
| 20% {transform: translateY(10px);} |
| 30% {transform: translateY(-5px);} |
| } |
| |
| $controlArrowSize: 3.6em; |
| $controlArrowSpacing: 1.4em; |
| $controlArrowLength: 2.6em; |
| $controlArrowThickness: 0.5em; |
| $controlsArrowAngle: 45deg; |
| $controlsArrowAngleHover: 40deg; |
| $controlsArrowAngleActive: 36deg; |
| |
| @mixin controlsArrowTransform( $angle ) { |
| &:before { |
| transform: translateX(($controlArrowSize - $controlArrowLength)*0.5) translateY(($controlArrowSize - $controlArrowThickness)*0.5) rotate( $angle ); |
| } |
| |
| &:after { |
| transform: translateX(($controlArrowSize - $controlArrowLength)*0.5) translateY(($controlArrowSize - $controlArrowThickness)*0.5) rotate( -$angle ); |
| } |
| } |
| |
| .reveal .controls { |
| display: none; |
| position: absolute; |
| top: auto; |
| bottom: var(--r-controls-spacing); |
| right: var(--r-controls-spacing); |
| left: auto; |
| z-index: 11; |
| color: #000; |
| pointer-events: none; |
| font-size: 10px; |
| |
| button { |
| position: absolute; |
| padding: 0; |
| background-color: transparent; |
| border: 0; |
| outline: 0; |
| cursor: pointer; |
| color: currentColor; |
| transform: scale(.9999); |
| transition: color 0.2s ease, |
| opacity 0.2s ease, |
| transform 0.2s ease; |
| z-index: 2; // above slides |
| pointer-events: auto; |
| font-size: inherit; |
| |
| visibility: hidden; |
| opacity: 0; |
| |
| -webkit-appearance: none; |
| -webkit-tap-highlight-color: rgba( 0, 0, 0, 0 ); |
| } |
| |
| .controls-arrow:before, |
| .controls-arrow:after { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: $controlArrowLength; |
| height: $controlArrowThickness; |
| border-radius: $controlArrowThickness*0.5; |
| background-color: currentColor; |
| |
| transition: all 0.15s ease, background-color 0.8s ease; |
| transform-origin: math.div(floor(($controlArrowThickness*0.5)*10), 10) 50%; |
| will-change: transform; |
| } |
| |
| .controls-arrow { |
| position: relative; |
| width: $controlArrowSize; |
| height: $controlArrowSize; |
| |
| @include controlsArrowTransform( $controlsArrowAngle ); |
| |
| &:hover { |
| @include controlsArrowTransform( $controlsArrowAngleHover ); |
| } |
| |
| &:active { |
| @include controlsArrowTransform( $controlsArrowAngleActive ); |
| } |
| } |
| |
| .navigate-left { |
| right: $controlArrowSize + $controlArrowSpacing*2; |
| bottom: $controlArrowSpacing + $controlArrowSize*0.5; |
| transform: translateX( -10px ); |
| |
| &.highlight { |
| animation: bounce-left 2s 50 both ease-out; |
| } |
| } |
| |
| .navigate-right { |
| right: 0; |
| bottom: $controlArrowSpacing + $controlArrowSize*0.5; |
| transform: translateX( 10px ); |
| |
| .controls-arrow { |
| transform: rotate( 180deg ); |
| } |
| |
| &.highlight { |
| animation: bounce-right 2s 50 both ease-out; |
| } |
| } |
| |
| .navigate-up { |
| right: $controlArrowSpacing + $controlArrowSize*0.5; |
| bottom: $controlArrowSpacing*2 + $controlArrowSize; |
| transform: translateY( -10px ); |
| |
| .controls-arrow { |
| transform: rotate( 90deg ); |
| } |
| } |
| |
| .navigate-down { |
| right: $controlArrowSpacing + $controlArrowSize*0.5; |
| bottom: -$controlArrowSpacing; |
| padding-bottom: $controlArrowSpacing; |
| transform: translateY( 10px ); |
| |
| .controls-arrow { |
| transform: rotate( -90deg ); |
| } |
| |
| &.highlight { |
| animation: bounce-down 2s 50 both ease-out; |
| } |
| } |
| |
| // Back arrow style: "faded": |
| // Deemphasize backwards navigation arrows in favor of drawing |
| // attention to forwards navigation |
| &[data-controls-back-arrows="faded"] .navigate-up.enabled { |
| opacity: 0.3; |
| |
| &:hover { |
| opacity: 1; |
| } |
| } |
| |
| // Back arrow style: "hidden": |
| // Never show arrows for backwards navigation |
| &[data-controls-back-arrows="hidden"] .navigate-up.enabled { |
| opacity: 0; |
| visibility: hidden; |
| } |
| |
| // Any control button that can be clicked is "enabled" |
| .enabled { |
| visibility: visible; |
| opacity: 0.9; |
| cursor: pointer; |
| transform: none; |
| } |
| |
| // Any control button that leads to showing or hiding |
| // a fragment |
| .enabled.fragmented { |
| opacity: 0.5; |
| } |
| |
| .enabled:hover, |
| .enabled.fragmented:hover { |
| opacity: 1; |
| } |
| } |
| |
| .reveal:not(.rtl) .controls { |
| // Back arrow style: "faded": |
| // Deemphasize left arrow |
| &[data-controls-back-arrows="faded"] .navigate-left.enabled { |
| opacity: 0.3; |
| |
| &:hover { |
| opacity: 1; |
| } |
| } |
| |
| // Back arrow style: "hidden": |
| // Never show left arrow |
| &[data-controls-back-arrows="hidden"] .navigate-left.enabled { |
| opacity: 0; |
| visibility: hidden; |
| } |
| } |
| |
| .reveal.rtl .controls { |
| // Back arrow style: "faded": |
| // Deemphasize right arrow in RTL mode |
| &[data-controls-back-arrows="faded"] .navigate-right.enabled { |
| opacity: 0.3; |
| |
| &:hover { |
| opacity: 1; |
| } |
| } |
| |
| // Back arrow style: "hidden": |
| // Never show right arrow in RTL mode |
| &[data-controls-back-arrows="hidden"] .navigate-right.enabled { |
| opacity: 0; |
| visibility: hidden; |
| } |
| } |
| |
| .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-up, |
| .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-down { |
| display: none; |
| } |
| |
| // Adjust the layout when there are no vertical slides |
| .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-left, |
| .reveal:not(.has-vertical-slides) .controls .navigate-left { |
| bottom: $controlArrowSpacing; |
| right: 0.5em + $controlArrowSpacing + $controlArrowSize; |
| } |
| |
| .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-right, |
| .reveal:not(.has-vertical-slides) .controls .navigate-right { |
| bottom: $controlArrowSpacing; |
| right: 0.5em; |
| } |
| |
| // Adjust the layout when there are no horizontal slides |
| .reveal:not(.has-horizontal-slides) .controls .navigate-up { |
| right: $controlArrowSpacing; |
| bottom: $controlArrowSpacing + $controlArrowSize; |
| } |
| .reveal:not(.has-horizontal-slides) .controls .navigate-down { |
| right: $controlArrowSpacing; |
| bottom: 0.5em; |
| } |
| |
| // Invert arrows based on background color |
| .reveal.has-dark-background .controls { |
| color: #fff; |
| } |
| .reveal.has-light-background .controls { |
| color: #000; |
| } |
| |
| // Disable active states on touch devices |
| .reveal.no-hover .controls .controls-arrow:hover, |
| .reveal.no-hover .controls .controls-arrow:active { |
| @include controlsArrowTransform( $controlsArrowAngle ); |
| } |
| |
| // Edge aligned controls layout |
| @media screen and (min-width: 500px) { |
| |
| .reveal-viewport { |
| --r-controls-spacing: 0.8em; |
| } |
| |
| .reveal .controls[data-controls-layout="edges"] { |
| & { |
| top: 0; |
| right: 0; |
| bottom: 0; |
| left: 0; |
| } |
| |
| .navigate-left, |
| .navigate-right, |
| .navigate-up, |
| .navigate-down { |
| bottom: auto; |
| right: auto; |
| } |
| |
| .navigate-left { |
| top: 50%; |
| left: var(--r-controls-spacing); |
| margin-top: -$controlArrowSize*0.5; |
| } |
| |
| .navigate-right { |
| top: 50%; |
| right: var(--r-controls-spacing); |
| margin-top: -$controlArrowSize*0.5; |
| } |
| |
| .navigate-up { |
| top: var(--r-controls-spacing); |
| left: 50%; |
| margin-left: -$controlArrowSize*0.5; |
| } |
| |
| .navigate-down { |
| bottom: calc(var(--r-controls-spacing) - #{$controlArrowSpacing} + 0.3em); |
| left: 50%; |
| margin-left: -$controlArrowSize*0.5; |
| } |
| } |
| |
| } |
| |
| |
| /********************************************* |
| * PROGRESS BAR |
| *********************************************/ |
| |
| .reveal .progress { |
| position: absolute; |
| display: none; |
| height: 3px; |
| width: 100%; |
| bottom: 0; |
| left: 0; |
| z-index: 10; |
| |
| background-color: rgba( 0, 0, 0, 0.2 ); |
| color: #fff; |
| } |
| .reveal .progress:after { |
| content: ''; |
| display: block; |
| position: absolute; |
| height: 10px; |
| width: 100%; |
| top: -10px; |
| } |
| .reveal .progress span { |
| display: block; |
| height: 100%; |
| width: 100%; |
| |
| background-color: currentColor; |
| transition: transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); |
| transform-origin: 0 0; |
| transform: scaleX(0); |
| } |
| |
| /********************************************* |
| * SLIDE NUMBER |
| *********************************************/ |
| |
| .reveal .slide-number { |
| position: absolute; |
| display: block; |
| right: 8px; |
| bottom: 8px; |
| z-index: 31; |
| font-family: Helvetica, sans-serif; |
| font-size: 12px; |
| line-height: 1; |
| color: #fff; |
| background-color: rgba( 0, 0, 0, 0.4 ); |
| padding: 5px; |
| } |
| |
| .reveal .slide-number a { |
| color: currentColor; |
| } |
| |
| .reveal .slide-number-delimiter { |
| margin: 0 3px; |
| } |
| |
| /********************************************* |
| * SLIDES |
| *********************************************/ |
| |
| .reveal { |
| position: relative; |
| width: 100%; |
| height: 100%; |
| overflow: hidden; |
| touch-action: pinch-zoom; |
| } |
| |
| // Swiping on an embedded deck should not block page scrolling... |
| .reveal.embedded { |
| touch-action: pan-y; |
| } |
| |
| // ... unless we're on a vertical slide |
| .reveal.embedded.is-vertical-slide { |
| touch-action: none; |
| } |
| |
| .reveal .slides { |
| position: absolute; |
| width: 100%; |
| height: 100%; |
| top: 0; |
| right: 0; |
| bottom: 0; |
| left: 0; |
| margin: auto; |
| pointer-events: none; |
| |
| overflow: visible; |
| z-index: 1; |
| text-align: center; |
| perspective: 600px; |
| perspective-origin: 50% 40%; |
| } |
| |
| .reveal .slides>section { |
| perspective: 600px; |
| } |
| |
| .reveal .slides>section, |
| .reveal .slides>section>section { |
| display: none; |
| position: absolute; |
| width: 100%; |
| pointer-events: auto; |
| |
| z-index: 10; |
| transform-style: flat; |
| transition: transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), |
| transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), |
| visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985), |
| opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); |
| } |
| |
| /* Global transition speed settings */ |
| .reveal[data-transition-speed="fast"] .slides section { |
| transition-duration: 400ms; |
| } |
| .reveal[data-transition-speed="slow"] .slides section { |
| transition-duration: 1200ms; |
| } |
| |
| /* Slide-specific transition speed overrides */ |
| .reveal .slides section[data-transition-speed="fast"] { |
| transition-duration: 400ms; |
| } |
| .reveal .slides section[data-transition-speed="slow"] { |
| transition-duration: 1200ms; |
| } |
| |
| .reveal .slides>section.stack { |
| padding-top: 0; |
| padding-bottom: 0; |
| pointer-events: none; |
| height: 100%; |
| } |
| |
| .reveal .slides>section.present, |
| .reveal .slides>section>section.present { |
| display: block; |
| z-index: 11; |
| opacity: 1; |
| } |
| |
| .reveal .slides>section:empty, |
| .reveal .slides>section>section:empty, |
| .reveal .slides>section[data-background-interactive], |
| .reveal .slides>section>section[data-background-interactive] { |
| pointer-events: none; |
| } |
| |
| .reveal.center, |
| .reveal.center .slides, |
| .reveal.center .slides section { |
| min-height: 0 !important; |
| } |
| |
| /* Don't allow interaction with invisible slides */ |
| .reveal .slides>section:not(.present), |
| .reveal .slides>section>section:not(.present) { |
| pointer-events: none; |
| } |
| |
| .reveal.overview .slides>section, |
| .reveal.overview .slides>section>section { |
| pointer-events: auto; |
| } |
| |
| .reveal .slides>section.past, |
| .reveal .slides>section.future, |
| .reveal .slides>section.past>section, |
| .reveal .slides>section.future>section, |
| .reveal .slides>section>section.past, |
| .reveal .slides>section>section.future { |
| opacity: 0; |
| } |
| |
| |
| /********************************************* |
| * Mixins for readability of transitions |
| *********************************************/ |
| |
| @mixin transition-global($style) { |
| .reveal .slides section[data-transition=#{$style}], |
| .reveal.#{$style} .slides section:not([data-transition]) { |
| @content; |
| } |
| } |
| @mixin transition-stack($style) { |
| .reveal .slides section[data-transition=#{$style}].stack, |
| .reveal.#{$style} .slides section.stack { |
| @content; |
| } |
| } |
| @mixin transition-horizontal-past($style) { |
| .reveal .slides>section[data-transition=#{$style}].past, |
| .reveal .slides>section[data-transition~=#{$style}-out].past, |
| .reveal.#{$style} .slides>section:not([data-transition]).past { |
| @content; |
| } |
| } |
| @mixin transition-horizontal-future($style) { |
| .reveal .slides>section[data-transition=#{$style}].future, |
| .reveal .slides>section[data-transition~=#{$style}-in].future, |
| .reveal.#{$style} .slides>section:not([data-transition]).future { |
| @content; |
| } |
| } |
| |
| @mixin transition-vertical-past($style) { |
| .reveal .slides>section>section[data-transition=#{$style}].past, |
| .reveal .slides>section>section[data-transition~=#{$style}-out].past, |
| .reveal.#{$style} .slides>section>section:not([data-transition]).past { |
| @content; |
| } |
| } |
| @mixin transition-vertical-future($style) { |
| .reveal .slides>section>section[data-transition=#{$style}].future, |
| .reveal .slides>section>section[data-transition~=#{$style}-in].future, |
| .reveal.#{$style} .slides>section>section:not([data-transition]).future { |
| @content; |
| } |
| } |
| |
| /********************************************* |
| * SLIDE TRANSITION |
| * Aliased 'linear' for backwards compatibility |
| *********************************************/ |
| |
| @each $stylename in slide, linear { |
| @include transition-horizontal-past(#{$stylename}) { |
| transform: translate(-150%, 0); |
| } |
| @include transition-horizontal-future(#{$stylename}) { |
| transform: translate(150%, 0); |
| } |
| @include transition-vertical-past(#{$stylename}) { |
| transform: translate(0, -150%); |
| } |
| @include transition-vertical-future(#{$stylename}) { |
| transform: translate(0, 150%); |
| } |
| } |
| |
| /********************************************* |
| * CONVEX TRANSITION |
| * Aliased 'default' for backwards compatibility |
| *********************************************/ |
| |
| @each $stylename in default, convex { |
| @include transition-stack(#{$stylename}) { |
| transform-style: preserve-3d; |
| } |
| |
| @include transition-horizontal-past(#{$stylename}) { |
| transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); |
| } |
| @include transition-horizontal-future(#{$stylename}) { |
| transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); |
| } |
| @include transition-vertical-past(#{$stylename}) { |
| transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); |
| } |
| @include transition-vertical-future(#{$stylename}) { |
| transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); |
| } |
| } |
| |
| /********************************************* |
| * CONCAVE TRANSITION |
| *********************************************/ |
| |
| @include transition-stack(concave) { |
| transform-style: preserve-3d; |
| } |
| |
| @include transition-horizontal-past(concave) { |
| transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); |
| } |
| @include transition-horizontal-future(concave) { |
| transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); |
| } |
| @include transition-vertical-past(concave) { |
| transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); |
| } |
| @include transition-vertical-future(concave) { |
| transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); |
| } |
| |
| |
| /********************************************* |
| * ZOOM TRANSITION |
| *********************************************/ |
| |
| @include transition-global(zoom) { |
| transition-timing-function: ease; |
| } |
| @include transition-horizontal-past(zoom) { |
| visibility: hidden; |
| transform: scale(16); |
| } |
| @include transition-horizontal-future(zoom) { |
| visibility: hidden; |
| transform: scale(0.2); |
| } |
| @include transition-vertical-past(zoom) { |
| transform: scale(16); |
| } |
| @include transition-vertical-future(zoom) { |
| transform: scale(0.2); |
| } |
| |
| |
| /********************************************* |
| * CUBE TRANSITION |
| * |
| * WARNING: |
| * this is deprecated and will be removed in a |
| * future version. |
| *********************************************/ |
| |
| .reveal.cube .slides { |
| perspective: 1300px; |
| } |
| |
| .reveal.cube .slides section { |
| padding: 30px; |
| min-height: 700px; |
| backface-visibility: hidden; |
| box-sizing: border-box; |
| transform-style: preserve-3d; |
| } |
| .reveal.center.cube .slides section { |
| min-height: 0; |
| } |
| .reveal.cube .slides section:not(.stack):before { |
| content: ''; |
| position: absolute; |
| display: block; |
| width: 100%; |
| height: 100%; |
| left: 0; |
| top: 0; |
| background: rgba(0,0,0,0.1); |
| border-radius: 4px; |
| transform: translateZ( -20px ); |
| } |
| .reveal.cube .slides section:not(.stack):after { |
| content: ''; |
| position: absolute; |
| display: block; |
| width: 90%; |
| height: 30px; |
| left: 5%; |
| bottom: 0; |
| background: none; |
| z-index: 1; |
| |
| border-radius: 4px; |
| box-shadow: 0px 95px 25px rgba(0,0,0,0.2); |
| transform: translateZ(-90px) rotateX( 65deg ); |
| } |
| |
| .reveal.cube .slides>section.stack { |
| padding: 0; |
| background: none; |
| } |
| |
| .reveal.cube .slides>section.past { |
| transform-origin: 100% 0%; |
| transform: translate3d(-100%, 0, 0) rotateY(-90deg); |
| } |
| |
| .reveal.cube .slides>section.future { |
| transform-origin: 0% 0%; |
| transform: translate3d(100%, 0, 0) rotateY(90deg); |
| } |
| |
| .reveal.cube .slides>section>section.past { |
| transform-origin: 0% 100%; |
| transform: translate3d(0, -100%, 0) rotateX(90deg); |
| } |
| |
| .reveal.cube .slides>section>section.future { |
| transform-origin: 0% 0%; |
| transform: translate3d(0, 100%, 0) rotateX(-90deg); |
| } |
| |
| |
| /********************************************* |
| * PAGE TRANSITION |
| * |
| * WARNING: |
| * this is deprecated and will be removed in a |
| * future version. |
| *********************************************/ |
| |
| .reveal.page .slides { |
| perspective-origin: 0% 50%; |
| perspective: 3000px; |
| } |
| |
| .reveal.page .slides section { |
| padding: 30px; |
| min-height: 700px; |
| box-sizing: border-box; |
| transform-style: preserve-3d; |
| } |
| .reveal.page .slides section.past { |
| z-index: 12; |
| } |
| .reveal.page .slides section:not(.stack):before { |
| content: ''; |
| position: absolute; |
| display: block; |
| width: 100%; |
| height: 100%; |
| left: 0; |
| top: 0; |
| background: rgba(0,0,0,0.1); |
| transform: translateZ( -20px ); |
| } |
| .reveal.page .slides section:not(.stack):after { |
| content: ''; |
| position: absolute; |
| display: block; |
| width: 90%; |
| height: 30px; |
| left: 5%; |
| bottom: 0; |
| background: none; |
| z-index: 1; |
| |
| border-radius: 4px; |
| box-shadow: 0px 95px 25px rgba(0,0,0,0.2); |
| |
| -webkit-transform: translateZ(-90px) rotateX( 65deg ); |
| } |
| |
| .reveal.page .slides>section.stack { |
| padding: 0; |
| background: none; |
| } |
| |
| .reveal.page .slides>section.past { |
| transform-origin: 0% 0%; |
| transform: translate3d(-40%, 0, 0) rotateY(-80deg); |
| } |
| |
| .reveal.page .slides>section.future { |
| transform-origin: 100% 0%; |
| transform: translate3d(0, 0, 0); |
| } |
| |
| .reveal.page .slides>section>section.past { |
| transform-origin: 0% 0%; |
| transform: translate3d(0, -40%, 0) rotateX(80deg); |
| } |
| |
| .reveal.page .slides>section>section.future { |
| transform-origin: 0% 100%; |
| transform: translate3d(0, 0, 0); |
| } |
| |
| |
| /********************************************* |
| * FADE TRANSITION |
| *********************************************/ |
| |
| .reveal .slides section[data-transition=fade], |
| .reveal.fade .slides section:not([data-transition]), |
| .reveal.fade .slides>section>section:not([data-transition]) { |
| transform: none; |
| transition: opacity 0.5s; |
| } |
| |
| |
| .reveal.fade.overview .slides section, |
| .reveal.fade.overview .slides>section>section { |
| transition: none; |
| } |
| |
| |
| /********************************************* |
| * NO TRANSITION |
| *********************************************/ |
| |
| @include transition-global(none) { |
| transform: none; |
| transition: none; |
| } |
| |
| |
| /********************************************* |
| * PAUSED MODE |
| *********************************************/ |
| |
| .reveal .pause-overlay { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background: black; |
| visibility: hidden; |
| opacity: 0; |
| z-index: 100; |
| transition: all 1s ease; |
| } |
| |
| .reveal .pause-overlay .resume-button { |
| position: absolute; |
| bottom: 20px; |
| right: 20px; |
| color: #ccc; |
| border-radius: 2px; |
| padding: 6px 14px; |
| border: 2px solid #ccc; |
| font-size: 16px; |
| background: transparent; |
| cursor: pointer; |
| |
| &:hover { |
| color: #fff; |
| border-color: #fff; |
| } |
| } |
| |
| .reveal.paused .pause-overlay { |
| visibility: visible; |
| opacity: 1; |
| } |
| |
| |
| /********************************************* |
| * FALLBACK |
| *********************************************/ |
| |
| .reveal .no-transition, |
| .reveal .no-transition *, |
| .reveal .slides.disable-slide-transitions section { |
| transition: none !important; |
| } |
| |
| .reveal .slides.disable-slide-transitions section { |
| transform: none !important; |
| } |
| |
| |
| /********************************************* |
| * PER-SLIDE BACKGROUNDS |
| *********************************************/ |
| |
| .reveal .backgrounds { |
| position: absolute; |
| width: 100%; |
| height: 100%; |
| top: 0; |
| left: 0; |
| perspective: 600px; |
| } |
| .reveal .slide-background { |
| display: none; |
| position: absolute; |
| width: 100%; |
| height: 100%; |
| opacity: 0; |
| visibility: hidden; |
| overflow: hidden; |
| |
| background-color: rgba( 0, 0, 0, 0 ); |
| |
| transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985); |
| } |
| |
| .reveal .slide-background-content { |
| position: absolute; |
| width: 100%; |
| height: 100%; |
| |
| background-position: 50% 50%; |
| background-repeat: no-repeat; |
| background-size: cover; |
| } |
| |
| .reveal .slide-background.stack { |
| display: block; |
| } |
| |
| .reveal .slide-background.present { |
| opacity: 1; |
| visibility: visible; |
| z-index: 2; |
| } |
| |
| .print-pdf .reveal .slide-background { |
| opacity: 1 !important; |
| visibility: visible !important; |
| } |
| |
| /* Video backgrounds */ |
| .reveal .slide-background video { |
| position: absolute; |
| width: 100%; |
| height: 100%; |
| max-width: none; |
| max-height: none; |
| top: 0; |
| left: 0; |
| object-fit: cover; |
| } |
| .reveal .slide-background[data-background-size="contain"] video { |
| object-fit: contain; |
| } |
| |
| /* Immediate transition style */ |
| .reveal[data-background-transition=none]>.backgrounds .slide-background:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background[data-background-transition=none] { |
| transition: none; |
| } |
| |
| /* Slide */ |
| .reveal[data-background-transition=slide]>.backgrounds .slide-background:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background[data-background-transition=slide] { |
| opacity: 1; |
| } |
| .reveal[data-background-transition=slide]>.backgrounds .slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.past[data-background-transition=slide] { |
| transform: translate(-100%, 0); |
| } |
| .reveal[data-background-transition=slide]>.backgrounds .slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.future[data-background-transition=slide] { |
| transform: translate(100%, 0); |
| } |
| |
| .reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] { |
| transform: translate(0, -100%); |
| } |
| .reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] { |
| transform: translate(0, 100%); |
| } |
| |
| |
| /* Convex */ |
| .reveal[data-background-transition=convex]>.backgrounds .slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.past[data-background-transition=convex] { |
| opacity: 0; |
| transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); |
| } |
| .reveal[data-background-transition=convex]>.backgrounds .slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.future[data-background-transition=convex] { |
| opacity: 0; |
| transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); |
| } |
| |
| .reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex] { |
| opacity: 0; |
| transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0); |
| } |
| .reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex] { |
| opacity: 0; |
| transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0); |
| } |
| |
| |
| /* Concave */ |
| .reveal[data-background-transition=concave]>.backgrounds .slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.past[data-background-transition=concave] { |
| opacity: 0; |
| transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); |
| } |
| .reveal[data-background-transition=concave]>.backgrounds .slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.future[data-background-transition=concave] { |
| opacity: 0; |
| transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); |
| } |
| |
| .reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave] { |
| opacity: 0; |
| transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0); |
| } |
| .reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave] { |
| opacity: 0; |
| transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0); |
| } |
| |
| /* Zoom */ |
| .reveal[data-background-transition=zoom]>.backgrounds .slide-background:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background[data-background-transition=zoom] { |
| transition-timing-function: ease; |
| } |
| |
| .reveal[data-background-transition=zoom]>.backgrounds .slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.past[data-background-transition=zoom] { |
| opacity: 0; |
| visibility: hidden; |
| transform: scale(16); |
| } |
| .reveal[data-background-transition=zoom]>.backgrounds .slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background.future[data-background-transition=zoom] { |
| opacity: 0; |
| visibility: hidden; |
| transform: scale(0.2); |
| } |
| |
| .reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom] { |
| opacity: 0; |
| visibility: hidden; |
| transform: scale(16); |
| } |
| .reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]), |
| .reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom] { |
| opacity: 0; |
| visibility: hidden; |
| transform: scale(0.2); |
| } |
| |
| |
| /* Global transition speed settings */ |
| .reveal[data-transition-speed="fast"]>.backgrounds .slide-background { |
| transition-duration: 400ms; |
| } |
| .reveal[data-transition-speed="slow"]>.backgrounds .slide-background { |
| transition-duration: 1200ms; |
| } |
| |
| |
| /********************************************* |
| * AUTO ANIMATE |
| *********************************************/ |
| |
| .reveal [data-auto-animate-target^="unmatched"] { |
| will-change: opacity; |
| } |
| |
| .reveal section[data-auto-animate]:not(.stack):not([data-auto-animate="running"]) [data-auto-animate-target^="unmatched"] { |
| opacity: 0; |
| } |
| |
| |
| /********************************************* |
| * OVERVIEW |
| *********************************************/ |
| |
| .reveal.overview { |
| perspective-origin: 50% 50%; |
| perspective: 700px; |
| |
| .slides { |
| // Fixes overview rendering errors in FF48+, not applied to |
| // other browsers since it degrades performance |
| -moz-transform-style: preserve-3d; |
| } |
| |
| .slides section { |
| height: 100%; |
| top: 0 !important; |
| opacity: 1 !important; |
| overflow: hidden; |
| visibility: visible !important; |
| cursor: pointer; |
| box-sizing: border-box; |
| } |
| .slides section:hover, |
| .slides section.present { |
| outline: 10px solid rgba(150,150,150,0.4); |
| outline-offset: 10px; |
| } |
| .slides section .fragment { |
| opacity: 1; |
| transition: none; |
| } |
| .slides section:after, |
| .slides section:before { |
| display: none !important; |
| } |
| .slides>section.stack { |
| padding: 0; |
| top: 0 !important; |
| background: none; |
| outline: none; |
| overflow: visible; |
| } |
| |
| .backgrounds { |
| perspective: inherit; |
| |
| // Fixes overview rendering errors in FF48+, not applied to |
| // other browsers since it degrades performance |
| -moz-transform-style: preserve-3d; |
| } |
| |
| .backgrounds .slide-background { |
| opacity: 1; |
| visibility: visible; |
| |
| // This can't be applied to the slide itself in Safari |
| outline: 10px solid rgba(150,150,150,0.1); |
| outline-offset: 10px; |
| } |
| |
| .backgrounds .slide-background.stack { |
| overflow: visible; |
| } |
| } |
| |
| // Disable transitions transitions while we're activating |
| // or deactivating the overview mode. |
| .reveal.overview .slides section, |
| .reveal.overview-deactivating .slides section { |
| transition: none; |
| } |
| |
| .reveal.overview .backgrounds .slide-background, |
| .reveal.overview-deactivating .backgrounds .slide-background { |
| transition: none; |
| } |
| |
| |
| /********************************************* |
| * RTL SUPPORT |
| *********************************************/ |
| |
| .reveal.rtl .slides, |
| .reveal.rtl .slides h1, |
| .reveal.rtl .slides h2, |
| .reveal.rtl .slides h3, |
| .reveal.rtl .slides h4, |
| .reveal.rtl .slides h5, |
| .reveal.rtl .slides h6 { |
| direction: rtl; |
| font-family: sans-serif; |
| } |
| |
| .reveal.rtl pre, |
| .reveal.rtl code { |
| direction: ltr; |
| } |
| |
| .reveal.rtl ol, |
| .reveal.rtl ul { |
| text-align: right; |
| } |
| |
| .reveal.rtl .progress span { |
| transform-origin: 100% 0; |
| } |
| |
| /********************************************* |
| * PARALLAX BACKGROUND |
| *********************************************/ |
| |
| .reveal.has-parallax-background .backgrounds { |
| transition: all 0.8s ease; |
| } |
| |
| /* Global transition speed settings */ |
| .reveal.has-parallax-background[data-transition-speed="fast"] .backgrounds { |
| transition-duration: 400ms; |
| } |
| .reveal.has-parallax-background[data-transition-speed="slow"] .backgrounds { |
| transition-duration: 1200ms; |
| } |
| |
| |
| /********************************************* |
| * OVERLAY FOR LINK PREVIEWS AND HELP |
| *********************************************/ |
| |
| $overlayHeaderHeight: 40px; |
| $overlayHeaderPadding: 5px; |
| |
| .reveal > .overlay { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| z-index: 1000; |
| background: rgba( 0, 0, 0, 0.95 ); |
| backdrop-filter: blur( 6px ); |
| transition: all 0.3s ease; |
| } |
| |
| .reveal > .overlay .spinner { |
| position: absolute; |
| display: block; |
| top: 50%; |
| left: 50%; |
| width: 32px; |
| height: 32px; |
| margin: -16px 0 0 -16px; |
| z-index: 10; |
| 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); |
| |
| visibility: visible; |
| opacity: 0.6; |
| transition: all 0.3s ease; |
| } |
| |
| .reveal > .overlay header { |
| position: absolute; |
| left: 0; |
| top: 0; |
| width: 100%; |
| padding: $overlayHeaderPadding; |
| z-index: 2; |
| box-sizing: border-box; |
| } |
| .reveal > .overlay header a { |
| display: inline-block; |
| width: $overlayHeaderHeight; |
| height: $overlayHeaderHeight; |
| line-height: 36px; |
| padding: 0 10px; |
| float: right; |
| opacity: 0.6; |
| |
| box-sizing: border-box; |
| } |
| .reveal > .overlay header a:hover { |
| opacity: 1; |
| } |
| .reveal > .overlay header a .icon { |
| display: inline-block; |
| width: 20px; |
| height: 20px; |
| |
| background-position: 50% 50%; |
| background-size: 100%; |
| background-repeat: no-repeat; |
| } |
| .reveal > .overlay header a.close .icon { |
| background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC); |
| } |
| .reveal > .overlay header a.external .icon { |
| background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==); |
| } |
| |
| .reveal > .overlay .viewport { |
| position: absolute; |
| display: flex; |
| top: $overlayHeaderHeight + $overlayHeaderPadding*2; |
| right: 0; |
| bottom: 0; |
| left: 0; |
| } |
| |
| .reveal > .overlay.overlay-preview .viewport iframe { |
| width: 100%; |
| height: 100%; |
| max-width: 100%; |
| max-height: 100%; |
| border: 0; |
| |
| opacity: 0; |
| visibility: hidden; |
| transition: all 0.3s ease; |
| } |
| |
| .reveal > .overlay.overlay-preview.loaded .viewport iframe { |
| opacity: 1; |
| visibility: visible; |
| } |
| |
| .reveal > .overlay.overlay-preview.loaded .viewport-inner { |
| position: absolute; |
| z-index: -1; |
| left: 0; |
| top: 45%; |
| width: 100%; |
| text-align: center; |
| letter-spacing: normal; |
| } |
| .reveal > .overlay.overlay-preview .x-frame-error { |
| opacity: 0; |
| transition: opacity 0.3s ease 0.3s; |
| } |
| .reveal > .overlay.overlay-preview.loaded .x-frame-error { |
| opacity: 1; |
| } |
| |
| .reveal > .overlay.overlay-preview.loaded .spinner { |
| opacity: 0; |
| visibility: hidden; |
| transform: scale(0.2); |
| } |
| |
| .reveal > .overlay.overlay-help .viewport { |
| overflow: auto; |
| color: #fff; |
| } |
| |
| .reveal > .overlay.overlay-help .viewport .viewport-inner { |
| width: 600px; |
| margin: auto; |
| padding: 20px 20px 80px 20px; |
| text-align: center; |
| letter-spacing: normal; |
| } |
| |
| .reveal > .overlay.overlay-help .viewport .viewport-inner .title { |
| font-size: 20px; |
| } |
| |
| .reveal > .overlay.overlay-help .viewport .viewport-inner table { |
| border: 1px solid #fff; |
| border-collapse: collapse; |
| font-size: 16px; |
| } |
| |
| .reveal > .overlay.overlay-help .viewport .viewport-inner table th, |
| .reveal > .overlay.overlay-help .viewport .viewport-inner table td { |
| width: 200px; |
| padding: 14px; |
| border: 1px solid #fff; |
| vertical-align: middle; |
| } |
| |
| .reveal > .overlay.overlay-help .viewport .viewport-inner table th { |
| padding-top: 20px; |
| padding-bottom: 20px; |
| } |
| |
| /********************************************* |
| * PLAYBACK COMPONENT |
| *********************************************/ |
| |
| .reveal .playback { |
| position: absolute; |
| left: 15px; |
| bottom: 20px; |
| z-index: 30; |
| cursor: pointer; |
| transition: all 400ms ease; |
| -webkit-tap-highlight-color: rgba( 0, 0, 0, 0 ); |
| } |
| |
| .reveal.overview .playback { |
| opacity: 0; |
| visibility: hidden; |
| } |
| |
| |
| /********************************************* |
| * CODE HIGHLGIHTING |
| *********************************************/ |
| |
| .reveal .hljs { |
| min-height: 100%; |
| } |
| |
| .reveal .hljs table { |
| margin: initial; |
| } |
| |
| .reveal .hljs-ln-code, |
| .reveal .hljs-ln-numbers { |
| padding: 0; |
| border: 0; |
| } |
| |
| .reveal .hljs-ln-numbers { |
| opacity: 0.6; |
| padding-right: 0.75em; |
| text-align: right; |
| vertical-align: top; |
| } |
| |
| .reveal .hljs.has-highlights tr:not(.highlight-line) { |
| opacity: 0.4; |
| } |
| |
| .reveal .hljs.has-highlights.fragment { |
| transition: all .2s ease; |
| } |
| |
| .reveal .hljs:not(:first-child).fragment { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| box-sizing: border-box; |
| } |
| |
| .reveal pre[data-auto-animate-target] { |
| overflow: hidden; |
| } |
| .reveal pre[data-auto-animate-target] code { |
| height: 100%; |
| } |
| |
| |
| /********************************************* |
| * ROLLING LINKS |
| *********************************************/ |
| |
| .reveal .roll { |
| display: inline-block; |
| line-height: 1.2; |
| overflow: hidden; |
| |
| vertical-align: top; |
| perspective: 400px; |
| perspective-origin: 50% 50%; |
| } |
| .reveal .roll:hover { |
| background: none; |
| text-shadow: none; |
| } |
| .reveal .roll span { |
| display: block; |
| position: relative; |
| padding: 0 2px; |
| |
| pointer-events: none; |
| transition: all 400ms ease; |
| transform-origin: 50% 0%; |
| transform-style: preserve-3d; |
| backface-visibility: hidden; |
| } |
| .reveal .roll:hover span { |
| background: rgba(0,0,0,0.5); |
| transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg ); |
| } |
| .reveal .roll span:after { |
| content: attr(data-title); |
| |
| display: block; |
| position: absolute; |
| left: 0; |
| top: 0; |
| padding: 0 2px; |
| backface-visibility: hidden; |
| transform-origin: 50% 0%; |
| transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg ); |
| } |
| |
| |
| /********************************************* |
| * SPEAKER NOTES |
| *********************************************/ |
| |
| $notesWidthPercent: 25%; |
| |
| // Hide on-page notes |
| .reveal aside.notes { |
| display: none; |
| } |
| |
| // An interface element that can optionally be used to show the |
| // speaker notes to all viewers, on top of the presentation |
| .reveal .speaker-notes { |
| display: none; |
| position: absolute; |
| width: math.div($notesWidthPercent, (1 - math.div($notesWidthPercent,100))) * 1%; |
| height: 100%; |
| top: 0; |
| left: 100%; |
| padding: 14px 18px 14px 18px; |
| z-index: 1; |
| font-size: 18px; |
| line-height: 1.4; |
| border: 1px solid rgba( 0, 0, 0, 0.05 ); |
| color: #222; |
| background-color: #f5f5f5; |
| overflow: auto; |
| box-sizing: border-box; |
| text-align: left; |
| font-family: Helvetica, sans-serif; |
| -webkit-overflow-scrolling: touch; |
| |
| .notes-placeholder { |
| color: #ccc; |
| font-style: italic; |
| } |
| |
| &:focus { |
| outline: none; |
| } |
| |
| &:before { |
| content: 'Speaker notes'; |
| display: block; |
| margin-bottom: 10px; |
| opacity: 0.5; |
| } |
| } |
| |
| |
| .reveal.show-notes { |
| max-width: 100% - $notesWidthPercent; |
| overflow: visible; |
| } |
| |
| .reveal.show-notes .speaker-notes { |
| display: block; |
| } |
| |
| @media screen and (min-width: 1600px) { |
| .reveal .speaker-notes { |
| font-size: 20px; |
| } |
| } |
| |
| @media screen and (max-width: 1024px) { |
| .reveal.show-notes { |
| border-left: 0; |
| max-width: none; |
| max-height: 70%; |
| max-height: 70vh; |
| overflow: visible; |
| } |
| |
| .reveal.show-notes .speaker-notes { |
| top: 100%; |
| left: 0; |
| width: 100%; |
| height: 30vh; |
| border: 0; |
| } |
| } |
| |
| @media screen and (max-width: 600px) { |
| .reveal.show-notes { |
| max-height: 60%; |
| max-height: 60vh; |
| } |
| |
| .reveal.show-notes .speaker-notes { |
| top: 100%; |
| height: 40vh; |
| } |
| |
| .reveal .speaker-notes { |
| font-size: 14px; |
| } |
| } |
| |
| |
| /********************************************* |
| * JUMP-TO-SLIDE COMPONENT |
| *********************************************/ |
| |
| .reveal .jump-to-slide { |
| position: absolute; |
| top: 15px; |
| left: 15px; |
| z-index: 30; |
| font-size: 32px; |
| -webkit-tap-highlight-color: rgba( 0, 0, 0, 0 ); |
| } |
| |
| .reveal .jump-to-slide-input { |
| background: transparent; |
| padding: 8px; |
| font-size: inherit; |
| color: currentColor; |
| border: 0; |
| } |
| .reveal .jump-to-slide-input::placeholder { |
| color: currentColor; |
| opacity: 0.5; |
| } |
| |
| .reveal.has-dark-background .jump-to-slide-input { |
| color: #fff; |
| } |
| .reveal.has-light-background .jump-to-slide-input { |
| color: #222; |
| } |
| |
| .reveal .jump-to-slide-input:focus { |
| outline: none; |
| } |
| |
| |
| /********************************************* |
| * ZOOM PLUGIN |
| *********************************************/ |
| |
| .zoomed .reveal *, |
| .zoomed .reveal *:before, |
| .zoomed .reveal *:after { |
| backface-visibility: visible !important; |
| } |
| |
| .zoomed .reveal .progress, |
| .zoomed .reveal .controls { |
| opacity: 0; |
| } |
| |
| .zoomed .reveal .roll span { |
| background: none; |
| } |
| |
| .zoomed .reveal .roll span:after { |
| visibility: hidden; |
| } |
| |
| |
| /********************************************* |
| * SCROLL VIEW |
| *********************************************/ |
| .reveal-viewport.loading-scroll-mode { |
| visibility: hidden; |
| } |
| |
| .reveal-viewport.reveal-scroll { |
| & { |
| margin: 0 auto; |
| overflow: auto; |
| overflow-x: hidden; |
| overflow-y: auto; |
| z-index: 1; |
| |
| --r-scrollbar-width: 7px; |
| --r-scrollbar-trigger-size: 5px; |
| --r-controls-spacing: 8px; |
| } |
| |
| @media screen and (max-width: 500px) { |
| --r-scrollbar-width: 3px; |
| --r-scrollbar-trigger-size: 3px; |
| } |
| |
| .controls, |
| .progress, |
| .playback, |
| .backgrounds, |
| .slide-number, |
| .speaker-notes { |
| display: none !important; |
| } |
| |
| .overlay, |
| .pause-overlay { |
| position: fixed; |
| } |
| |
| .reveal { |
| overflow: visible; |
| touch-action: manipulation; |
| } |
| |
| .slides { |
| position: static; |
| pointer-events: initial; |
| |
| left: auto; |
| top: auto; |
| width: 100% !important; |
| margin: 0; |
| padding: 0; |
| |
| overflow: visible; |
| display: block; |
| |
| perspective: none; |
| perspective-origin: 50% 50%; |
| } |
| |
| .scroll-page { |
| position: relative; |
| width: 100%; |
| height: calc(var(--page-height) + var(--page-scroll-padding)); |
| z-index: 1; |
| overflow: visible; |
| } |
| |
| .scroll-page-sticky { |
| position: sticky; |
| height: var(--page-height); |
| top: 0px; |
| } |
| |
| .scroll-page-content { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| overflow: hidden; |
| } |
| |
| .scroll-page section { |
| visibility: visible !important; |
| display: block !important; |
| position: absolute !important; |
| width: var(--slide-width) !important; |
| height: var(--slide-height) !important; |
| top: 50% !important; |
| left: 50% !important; |
| opacity: 1 !important; |
| transform: scale(var(--slide-scale)) translate(-50%, -50%) !important; |
| transform-style: flat !important; |
| transform-origin: 0 0 !important; |
| } |
| |
| .slide-background { |
| display: block !important; |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| z-index: auto !important; |
| visibility: visible; |
| opacity: 1; |
| touch-action: manipulation; |
| } |
| } |
| |
| // Chromium |
| .reveal-viewport.reveal-scroll[data-scrollbar="true"]::-webkit-scrollbar, |
| .reveal-viewport.reveal-scroll[data-scrollbar="auto"]::-webkit-scrollbar { |
| display: none; |
| } |
| |
| // Firefox |
| .reveal-viewport.reveal-scroll[data-scrollbar="true"], |
| .reveal-viewport.reveal-scroll[data-scrollbar="auto"] { |
| scrollbar-width: none; |
| } |
| |
| .reveal.has-dark-background, |
| .reveal-viewport.has-dark-background { |
| --r-overlay-element-bg-color: 240, 240, 240; |
| --r-overlay-element-fg-color: 0, 0, 0; |
| } |
| .reveal.has-light-background, |
| .reveal-viewport.has-light-background { |
| --r-overlay-element-bg-color: 0, 0, 0; |
| --r-overlay-element-fg-color: 240, 240, 240; |
| } |
| |
| .reveal-viewport.reveal-scroll .scrollbar { |
| position: sticky; |
| top: 50%; |
| z-index: 20; |
| opacity: 0; |
| transition: all 0.3s ease; |
| |
| &.visible, |
| &:hover { |
| opacity: 1; |
| } |
| |
| .scrollbar-inner { |
| position: absolute; |
| width: var(--r-scrollbar-width); |
| height: calc(var(--viewport-height) - var(--r-controls-spacing) * 2); |
| right: var(--r-controls-spacing); |
| top: 0; |
| transform: translateY(-50%); |
| border-radius: var(--r-scrollbar-width); |
| z-index: 10; |
| } |
| |
| .scrollbar-playhead { |
| position: absolute; |
| width: var(--r-scrollbar-width); |
| height: var(--r-scrollbar-width); |
| top: 0; |
| left: 0; |
| border-radius: var(--r-scrollbar-width); |
| background-color: rgba(var(--r-overlay-element-bg-color), 1); |
| z-index: 11; |
| transition: background-color 0.2s ease; |
| } |
| |
| .scrollbar-slide { |
| position: absolute; |
| width: 100%; |
| background-color: rgba(var(--r-overlay-element-bg-color), 0.2); |
| box-shadow: 0 0 0px 1px rgba(var(--r-overlay-element-fg-color), 0.1); |
| border-radius: var(--r-scrollbar-width); |
| transition: background-color 0.2s ease; |
| } |
| |
| // Hit area |
| .scrollbar-slide:after { |
| content: ''; |
| position: absolute; |
| width: 200%; |
| height: 100%; |
| top: 0; |
| left: -50%; |
| background: rgba( 0, 0, 0, 0 ); |
| z-index: -1; |
| } |
| |
| .scrollbar-slide:hover, |
| .scrollbar-slide.active { |
| background-color: rgba(var(--r-overlay-element-bg-color), 0.4); |
| } |
| |
| .scrollbar-trigger { |
| position: absolute; |
| width: 100%; |
| transition: background-color 0.2s ease; |
| } |
| |
| .scrollbar-slide.active.has-triggers { |
| background-color: rgba(var(--r-overlay-element-bg-color), 0.4); |
| z-index: 10; |
| } |
| |
| .scrollbar-slide.active .scrollbar-trigger:after { |
| content: ''; |
| position: absolute; |
| width: var(--r-scrollbar-trigger-size); |
| height: var(--r-scrollbar-trigger-size); |
| border-radius: 20px; |
| top: 50%; |
| left: 50%; |
| transform: translate(-50%, -50%); |
| background-color: rgba(var(--r-overlay-element-bg-color), 1); |
| transition: transform 0.2s ease, opacity 0.2s ease; |
| opacity: 0.4; |
| } |
| |
| .scrollbar-slide.active .scrollbar-trigger.active:after, |
| .scrollbar-slide.active .scrollbar-trigger.active ~ .scrollbar-trigger:after { |
| opacity: 1; |
| } |
| |
| .scrollbar-slide.active .scrollbar-trigger ~ .scrollbar-trigger.active:after { |
| transform: translate(calc( var(--r-scrollbar-width) * -2), 0); |
| background-color: rgba(var(--r-overlay-element-bg-color), 1); |
| } |
| } |
| |
| |
| /********************************************* |
| * PRINT STYLES |
| *********************************************/ |
| |
| @import 'print/pdf.scss'; |
| @import 'print/paper.scss'; |
| |