/*
  A common approach is to use googleapis.com to generate css for the webfonts you want to use.
  The downside of this approach is that you have to be online. So below I have simply saved
  the output of the googleapis url into a file. Then you of course also have to make sure
  the webfonts are locally installed to make offline usage work. For Ubuntu (or Debian) I
  successfully used the script from here to do that: 
  http://www.webupd8.org/2011/01/automatically-install-all-google-web.html
*/

/* @import url(http://fonts.googleapis.com/css?family=Open+Sans:regular,semibold,italic,italicsemibold|PT+Sans:400,700,400italic,700italic|PT+Serif:400,700,400italic,700italic|Cutive+Mono); */
@import url(fonts.css);



/*
    We display a fallback message for users with browsers that don't support
    all the features required by it. All of the content will be still fully 
    accessible for them, but some more advanced effects would be missing.
    When impress.js detects that browser supports all necessary CSS3 features, 
    the fallback-message style is hidden.
*/

.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;
}


/*
  The body background is the bacgkround of "everything". Many
  impress.js tools call it the "surface". It could also be a
  picture or pattern, but we leave it as light gray.
*/

body {
    font-family: 'PT Sans', sans-serif;
    min-height: 740px;

    background: rgb(215, 215, 215);
    color: rgb(102, 102, 102);
}

/*
    Now let's style the presentation steps.
*/

.step {
    position: relative;
    width: 900px;
    padding: 40px;
    margin: 20px auto;

    box-sizing:         border-box;

    font-family: 'PT Serif', georgia, serif;
    font-size: 48px;
    line-height: 1.5;
}
/*
    Make inactive steps a little bit transparent.
*/
.impress-enabled .step {
    margin: 0;
    opacity: 0.3;
    transition:         opacity 1s;
}

.impress-enabled .step.active { opacity: 1 }

/*
    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 integrated.
*/

.notes {
    display: none;
}

/*
    These 'slide' step styles were heavily inspired by HTML5 Slides:
    http://html5slides.googlecode.com/svn/trunk/styles.css
    
    Note that we also use a background image, again just to facilitate a common
    feature from PowerPoint and LibreOffice worlds. In this case the background
    image is just the impress.js favicon - as if it were a company logo or something.
    
*/
.slide {
    display: block;

    width: 900px;
    height: 700px;
    padding: 40px 60px;

    background-image: url(../images/background.png);
    background-color: white;
    border: 1px solid rgba(0, 0, 0, .3);
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .1);

    text-shadow: 0 2px 2px rgba(0, 0, 0, .1);

    font-family: 'Open Sans', Arial, sans-serif;
    font-size: 30px;
    letter-spacing: -1px;
}


.slide h1, 
.slide h2, 
.slide h3 {
    margin-bottom: 0.5em;
    margin-top: 0.5em;
    text-align: center;
}

.slide p {
    text-align: center;
    margin: 0.7em;
}

.slide li {
    margin: 0.2em;    
}

/* Highlight.js used for coloring pre > code blocks. */
.slide pre > code {
    font-size: 14px;
    text-shadow: 0 0 0 rgba(0, 0, 0, 0);
}

/* Inline code, no Highlight.js */
code {
    font-family: "Cutive mono","Courier New", monospace;
}


a {
    color: inherit;
    text-decoration: none;
    padding: 0 0.1em;
    background: rgba(200,200,200,0.2);
    text-shadow: -1px 1px 2px rgba(100,100,100,0.9);
    border-radius: 0.2em;
    border-bottom: 1px solid rgba(100,100,100,0.2);
    border-left:   1px solid rgba(100,100,100,0.2);

    transition:         0.5s;
}
a:hover,
a:focus {
    background: rgba(200,200,200,1);
    text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
}

blockquote {
    font-family: 'PT Serif';
    font-style: italic;
    font-weight: 400;    
}

em {
    text-shadow: 0 2px 2px rgba(0, 0, 0, .3);    
}

strong {
    text-shadow: -1px 1px 2px rgba(100,100,100,0.5);
}

q {
    font-family: 'PT Serif';
    font-style: italic;
    font-weight: 400;    
    text-shadow: 0 2px 2px rgba(0, 0, 0, .3);
}

strike {
    opacity: 0.7;
}

small {
    font-size: 0.4em;
}

img {
    width: 300px
}

.slide .right {
    float: right;
    margin-left:   40px;
    margin-right:   0px;
    margin-top:    20px;
    margin-bottom: 20px;
}
.slide .left {
    float: left;
    margin-right:  40px;
    margin-left:    0px;
    margin-top:    20px;
    margin-bottom: 20px;
}
.slide .top {
    position: absolute;
    top: 20px;
    margin-bottom:  20px;
    margin-top:      0px;    
}
.slide .bottom {
    position: absolute;
    bottom: 20px;
    margin-bottom:   0px;
    margin-top:     20px;    
}

/* 
    Specific styles for: .title slides 
*/

.title {
    background-image: url(../images/background-title.png);    
}

.title h1,
.title h2,
.title h3 {
    position: absolute;
    left: 45px; /* slide width is 900px, so this is like a 5% margin on both sides */
    width: 90%;
    text-align: center;    
}
.title h1 { top: 50px; }
.title h2 { top: 400px; }
.title h3 { top: 500px; }



/* Styles for animating the contents of a slide, such as a img, p, li or span element. ********/

/*
 fly-in class starts from a position outside the slide, then flies into it's correct position.
*/
.future .fly-in {
    transform: translateY(-700px);
    opacity: 0.0; /* Make it invisible, just so it doesn't clutter some other slide that might be in the position where we moved it */
}
.present .fly-in {
    transform:         translateY(0px);
    opacity: 1.0;
    transition:         2s;
}
.past .fly-out {
    transform:         translateY(700px);
    opacity: 0.0;
    transition:         2s;
}

/*
   Fade-in/out is a straightforward fade. Give it enough seconds that all browsers render it clearly.
*/
.future .fade-in {
    opacity: 0.0;
}
.present .fade-in {
    opacity: 1.0;
    transition: 3s;
}
.past .fade-out {
    opacity: 0.0;
    transition: 3s;
}
/*
    Zoom-in.
*/
.future  .zoom-in {
    transform:        scale(10);
    opacity: 0.0;    
}
.present .zoom-in {
    transform:         scale(1);
    opacity: 1.0;
    transition: 3s;
}
.past  .zoom-out {
    transform:        scale(10);
    opacity: 0.0;    
}

/*
  This version of impress.js supports plugins, and in particular, a UI toolbar
  plugin that allows easy navigation between steps and autoplay.
*/
.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;
}

/*
    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;
}



/* Progress bar */
.impress-progressbar {
  position: absolute;
  right: 118px;
  bottom: 1px;
  left: 118px;
  border-radius: 7px;
  border: 2px solid rgba(100, 100, 100, 0.2);
}
.impress-progressbar DIV {
  width: 0;
  height: 2px;
  border-radius: 5px;
  background: rgba(75, 75, 75, 0.4);
  transition: width 1s linear;
}
.impress-progress {
  position: absolute;
  left: 59px;
  bottom: 1px;
  text-align: left;
  font-size: 10pt;
  opacity: 0.6;
}

/* Help popup plugin */
.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;
}

/* Substep plugin */

#impress .step .substep {
    opacity: 0;
}

#impress .step .substep.substep-visible {
    opacity: 1;
    transition: opacity 1s;
}

/*
    Styles for specific slides.
*/

/* The bar graph for Acme Inc profits */

#acme-graph-bottom {
    position: absolute;
    bottom: 100px;
    left: 440px;
    background-color: black;
    width: 410px;
    height: 2px;
}

/* height: is set from javascript */
#acme-graph-q1,
#acme-graph-q2,
#acme-graph-q3,
#acme-graph-q4 {
    border: solid 1px black;
    width: 70px;
    margin-left: 10px;
    position: absolute;
    bottom: 100px;
}

#acme-graph-q1 {
    background-color: red;
    left: 450px;
}

#acme-graph-q2 {
    background-color: blue;
    left: 550px;
}

#acme-graph-q3 {
    background-color: green;
    left: 650px;
}

#acme-graph-q4 {
    background-color: purple;
    left: 750px;
}

/*
    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 <body>
    element.

    To prevent this, I decided to make <body> 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 }
.impress-enabled #impress-toolbar         { pointer-events: auto }
