body * { font-family: "Gentium Plus", serif; } .apple { font-family: "Homemade Apple", cursive; } .verse { white-space: pre-wrap; } /* Default Impress stuff */ #impress { } /* Using the substep plugin, hide bullet points at first, then show them one by one. */ #impress .step .substep { opacity: 0; } #impress .step .substep.substep-visible { opacity: 1; transition: opacity 1s; } /* Speaker notes allow you to write comments within the steps, that will not be displayed as part of the presentation. However, they will be picked up and displayed by impressConsole.js when you press P. */ .notes { display: none; } /* Toolbar plugin */ .impress-enabled div#impress-toolbar { position: fixed; right: 1px; bottom: 1px; opacity: 0.6; z-index: 10; } .impress-enabled div#impress-toolbar > span { margin-right: 10px; } .impress-enabled div#impress-toolbar.impress-toolbar-show { display: block; } .impress-enabled div#impress-toolbar.impress-toolbar-hide { display: none; } /* Progress bar */ .impress-progress { position: absolute; left: 59px; bottom: 1px; text-align: left; font-size: 10pt; opacity: 0.6; } .impress-enabled .impress-progressbar { position: absolute; right: 318px; bottom: 1px; left: 118px; border-radius: 7px; border: 2px solid rgba(100, 100, 100, 0.2); } .impress-progressbar { right: 118px; } .impress-progressbar DIV { width: 0; height: 2px; border-radius: 5px; background: rgba(75, 75, 75, 0.4); transition: width 1s linear; } .impress-enabled .impress-progress { position: absolute; left: 59px; bottom: 1px; text-align: left; opacity: 0.6; } .impress-enabled #impress-help { background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5); color: #EEEEEE; font-size: 80%; position: fixed; left: 2em; bottom: 2em; width: 24em; border-radius: 1em; padding: 1em; text-align: center; z-index: 100; font-family: Verdana, Arial, Sans; } .impress-enabled #impress-help td { padding-left: 1em; padding-right: 1em; } /* We might want to hide the help, toolbar, progress and progress bar in the preView window of the impressConsole that is displayed when you press P. */ .impress-console.preView .impress-progress, .impress-console.preView .impress-progressbar, .impress-console.preView #impress-toolbar, .impress-console.preView #impress-help { display: none; } /* Hide the help in the slideView as well. */ .impress-console.slideView #impress-help { display: none; } /* With help from the mouse-timeout plugin, we can hide the toolbar and have it show only when you move/click/touch the mouse. */ body.impress-mouse-timeout div#impress-toolbar { display: none; } /* In fact, we can hide the mouse cursor itself too, when mouse isn't used. */ body.impress-mouse-timeout { cursor: none; } /* And as the last thing there is a workaround for quite strange bug. It happens a lot in Chrome. I don't remember if I've seen it in Firefox. Sometimes the element positioned in 3D (especially when it's moved back along Z axis) is not clickable, because it falls 'behind' the element. To prevent this, I decided to make non clickable by setting pointer-events property to `none` value. Value if this property is inherited, so to make everything else clickable I bring it back on the #impress element. If you want to know more about `pointer-events` here are some docs: https://developer.mozilla.org/en/CSS/pointer-events There is one very important thing to notice about this workaround - it makes everything 'unclickable' except what's in #impress element. So use it wisely ... or don't use at all. */ .impress-enabled { pointer-events: none } .impress-enabled #impress { pointer-events: auto } /*If you disable pointer-events, you need to re-enable them for the toolbar. And the speaker console while at it.*/ .impress-enabled #impress-toolbar { pointer-events: auto } .impress-enabled #impress-console-button { pointer-events: auto } /* There is one funny thing I just realized. Thanks to this workaround above everything except #impress element is invisible for click events. That means that the hint element is also not clickable. So basically all of this transforms and delayed transitions trickery was probably not needed at all... But it was fun to learn about it, wasn't it? */ .fallback-message { font-family: sans-serif; line-height: 1.3; width: 780px; padding: 10px 10px 0; margin: 20px auto; border: 1px solid #E4C652; border-radius: 10px; background: #EEDC94; } .fallback-message p { margin-bottom: 10px; } .impress-supported .fallback-message { display: none; } /* Now let's style the presentation steps. We start with basics to make sure it displays correctly in everywhere ... */ .step { position: relative; width: 1024px; max-height: 100vh; padding: 40px; margin: 20px auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; -o-box-sizing: border-box; box-sizing: border-box; font-family: 'PT Serif', georgia, serif; font-size: 40px; line-height: 1.5; } /* ... and we enhance the styles for impress.js. Basically we remove the margin and make inactive steps a little bit transparent. */ .impress-enabled .step { margin: 0; opacity: 1; -webkit-transition: opacity 1s; -moz-transition: opacity 1s; -ms-transition: opacity 1s; -o-transition: opacity 1s; transition: opacity 1s; } .impress-enabled .step.active { opacity: 1 } .prose { font-size: 16pt; } #Overview { width: 100vw; height: 100vh; margin: 0; padding: 0; background-image: url(cover-web.png); background-repeat: no-repeat; background-size: contain; background-position: center; } #Overview p { opacity: 0; } .impress-on-Overview #Overview p { opacity: 1; text-align: center; } #Introduction, #Michael, #I, #II { color: #eeeeee; } #Giles, #Ampy, #Corvus, #III { color: #dddddd; } #Kyzak, #Nisa, #Renga { color: #ffffff; } .hint { /* We hide the hint until presentation is started and from browsers not supporting impress.js, as they will have a linear scrollable view ... */ display: none; /* ... and give it some fixed position and nice styles. */ position: fixed; left: 0; right: 0; bottom: 200px; background: rgba(0,0,0,0.5); color: #EEE; text-align: center; font-size: 50px; padding: 20px; z-index: 100; /* By default we don't want the hint to be visible, so we make it transparent ... */ opacity: 0; /* ... and position it below the bottom of the screen (relative to it's fixed position) */ -webkit-transform: translateY(400px); -moz-transform: translateY(400px); -ms-transform: translateY(400px); -o-transform: translateY(400px); transform: translateY(400px); /* Now let's imagine that the hint is visible and we want to fade it out and move out of the screen. So we define the transition on the opacity property with 1s duration and another transition on transform property delayed by 1s so it will happen after the fade out on opacity finished. This way user will not see the hint moving down. */ -webkit-transition: opacity 1s, -webkit-transform 0.5s 1s; -moz-transition: opacity 1s, -moz-transform 0.5s 1s; -ms-transition: opacity 1s, -ms-transform 0.5s 1s; -o-transition: opacity 1s, -o-transform 0.5s 1s; transition: opacity 1s, transform 0.5s 1s; } /* Now we 'enable' the hint when presentation is initialized ... */ .impress-enabled .hint { display: block } /* ... and we will show it when the first step (with id 'bored') is active. */ .impress-on-Title .hint { /* We remove the transparency and position the hint in its default fixed position. */ opacity: 1; -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -ms-transform: translateY(0px); -o-transform: translateY(0px); transform: translateY(0px); /* Now for fade in transition we have the oposite situation from the one above. First after 4.5s delay we animate the transform property to move the hint into its correct position and after that we fade it in with opacity transition. */ -webkit-transition: opacity 1s 5s, -webkit-transform 0.5s 4.5s; -moz-transition: opacity 1s 5s, -moz-transform 0.5s 4.5s; -ms-transition: opacity 1s 5s, -ms-transform 0.5s 4.5s; -o-transition: opacity 1s 5s, -o-transform 0.5s 4.5s; transition: opacity 1s 5s, transform 0.5s 4.5s; }