tl/*
   Reset by Eric Meyer http://meyerweb.com/eric/tools/css/reset/

    You can probably argue if it is needed here, or not, but for sure it
    doesn't do any harm and gives us a fresh start.
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
h2{font-size:2em;}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/*
    Now here is when interesting things start to appear.

    We set up <body> styles with default font and nice gradient in the background.
    And yes, there is a lot of repetition there because of -prefixes but we don't
    want to leave anybody behind.
*/
body {
font-family: 'PT Sans narrow', sans-serif;
min-height: 740px;
background-color:#A5281B;
background-image: radial-gradient(#E74C3C 15%, transparent 16%),
radial-gradient(#D94839 15%, transparent 16%);
background-size:7px 7px;
background-position: 0 0, 60px 60px;
}

/*
    Now let's bring some text styles back ...
*/
b, strong { font-weight: bold }
i, em { font-style: italic }

/*
    ... and give links a nice look.
*/
a {
    color: inherit;
    text-decoration: none;
    padding:1.5em;
    text-shadow: -1px -1px 2px rgba(100,100,100,0.9);
    border-radius: 50%;

    -webkit-transition: 0.5s;
    -moz-transition:    0.5s;
    -ms-transition:     0.5s;
    -o-transition:      0.5s;
    transition:         0.5s;
}

a:hover,
a:focus {
    background: rgba(250,250,250,0.1);
    text-shadow: -1px -1px 2px rgba(100,100,100,0.9);
}

/*
    Because the main point behind the impress.js demo is to demo impress.js
    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 I want
    them to know that they are missing something - that's what the demo is
    about, isn't it?

    And then we hide the message, when support is detected in the browser.
*/

.fallback-message {
    font-family: sans-serif;
    line-height: 1.3;

    width: 50%;
    padding: 1em;
    margin: 20px auto;

    border: 1px solid #fff;
    border-radius: 50%;
    background:rgba(250,250,250,0.2);
}

.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: 950px;
    padding: 0px;
    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 sans narrow', georgia, serif;
    font-size: 44px;
    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: 0.3;

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

/*
    These 'slide' step styles were heavily inspired by HTML5 Slides:
    http://html5slides.googlecode.com/svn/trunk/styles.css

    ;)

    They cover everything what you see on first three steps of the demo.
*/
.slide {
    display: block;
    top:30%;
    left:50%;
    transform:translate(-50%,-50%);
    width: 70vw;
    height: 80vh;
    padding: 2vh 1vw;

    background-color:#D94839;
    border: 1px solid rgba(0, 0, 0, .3);
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .1);

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

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

.slide q {
    display: block;
    font-size: 50px;
    line-height: 72px;

    margin-top: 100px;
}

.slide q strong {
    white-space: nowrap;
}

/*
    And now we start to style each step separately.

    I agree that this may be not the most efficient, object-oriented and
    scalable way of styling, but most of steps have quite a custom look
    and typography tricks here and there, so they had to be styled separately.

    First is the title step with a big <h1> (no room for padding) and some
    3D positioning along Z axis.
*/

#title {
    padding: 0;
}

#title .try {
    font-size: 64px;
    position: absolute;
    left: 1.5em;

    -webkit-transform: translateZ(20px);
    -moz-transform:    translateZ(20px);
    -ms-transform:     translateZ(20px);
    -o-transform:      translateZ(20px);
    transform:         translateZ(20px);
}

#title h1 {
    font-size: 190px;

    -webkit-transform: translateZ(50px);
    -moz-transform:    translateZ(50px);
    -ms-transform:     translateZ(50px);
    -o-transform:      translateZ(50px);
    transform:         translateZ(50px);
}

#title .footnote {
    font-size: 32px;
}

/*
    Second step is nothing special, just a text with a link, so it doesn't need
    any special styling.

    Let's move to 'big thoughts' with centered text and custom font sizes.
*/
#big {
    width: 600px;
    text-align: center;
    font-size: 60px;
    line-height: 1;
}

#big b {
    display: block;
    font-size: 250px;
    line-height: 250px;
}

#big .thoughts {
    font-size: 90px;
    line-height: 150px;
}


/*
    'Tiny ideas' just need some tiny styling.
*/
#tiny {
    width: 800px;
    text-align: center;
}

/*
    This step has some animated text ...
*/
#porteurs,#realite { width:700px }

/*
    ... so we define display to `inline-block` to enable transforms and
    transition duration to 0.5s ...
*/
#porteurs b, #non-porteurs b, #realite b {
    display: inline-block;
    -webkit-transition: 0.5s;
    -moz-transition:    0.5s;
    -ms-transition:     0.5s;
    -o-transition:      0.5s;
    transition:         0.5s;
}


#realite p {
    
    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 10s, -webkit-transform 0s 10s;
    -moz-transition:    opacity 1s 10s,    -moz-transform 0s 10s;
    -ms-transition:     opacity 1s 10s,     -ms-transform 0s 10s;
    -o-transition:      opacity 1s 10s,      -o-transform 0s 10s;
    transition:         opacity 1s 10s,         transform 0s 10s;
}

#rig {
    -webkit-transform: translateX(300px);
    -moz-transform:    translateX(300px);
    -ms-transform:     translateX(300px);
    -o-transform:      translateX(300px);
    transform:         translateX(300px);
    
    
    -webkit-transition-delay: 0.25s;
    -moz-transition-delay:    0.25s;
    -ms-transition-delay:     0.25s;
    -o-transition-delay:      0.25s;
    transition-delay:         0.25s;
    
}
    

/*
    ... and we want 'positioning` word to move up a bit when the step gets
    `present` class ...
*/
#porteurs.present .positioning {
    -webkit-transform: translateY(-10px);
    -moz-transform:    translateY(-10px);
    -ms-transform:     translateY(-10px);
    -o-transform:      translateY(-10px);
    transform:         translateY(-10px);
}

#non-porteurs.present .positioning {
    -webkit-transform: translateY(-300px);
    -moz-transform:    translateY(-300px);
    -ms-transform:     translateY(-300px);
    -o-transform:      translateY(-300px);
    transform:         translateY(-300px);
    
    -webkit-animation-duration: 5s;
    animation-duration: 5s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both; 
   
}


#realite.present .positioning {
    -webkit-transform: translateY(-80px);
    -moz-transform:    translateY(-80px);
    -ms-transform:     translateY(-80px);
    -o-transform:      translateY(-80px);
    transform:         translateY(-80px);
}

#realite.present .positi {
    -webkit-transform: translateY(20px);
    -moz-transform:    translateY(20px);
    -ms-transform:     translateY(20px);
    -o-transform:      translateY(20px);
    transform:         translateY(20px);
}

#realite.present .positio {
    -webkit-transform: translateY(40px);
    -moz-transform:    translateY(40px);
    -ms-transform:     translateY(40px);
    -o-transform:      translateY(40px);
    transform:         translateY(40px);
}

/*
    ... 'rotating' to rotate a quarter of a second later ...
*/
#porteurs.present .rotating {
    -webkit-transform: rotate(-10deg);
    -moz-transform:    rotate(-10deg);
    -ms-transform:     rotate(-10deg);
    -o-transform:      rotate(-10deg);
    transform:         rotate(-10deg);

    -webkit-transition-delay: 0.25s;
    -moz-transition-delay:    0.25s;
    -ms-transition-delay:     0.25s;
    -o-transition-delay:      0.25s;
    transition-delay:         0.25s;
}

#non-porteurs.present .rotating {
    -webkit-transform: rotate(-4700deg);
    -moz-transform:    rotate(-4700deg);
    -ms-transform:     rotate(-4700deg);
    -o-transform:      rotate(-4700deg);
    transform:         rotate(-4700deg);

    -webkit-transition-delay: 0.5s;
    -moz-transition-delay:    0.5s;
    -ms-transition-delay:     0.5s;
    -o-transition-delay:      0.5s;
    transition-delay:         0.5s;
    
    -webkit-animation-duration: 6s;
    animation-duration: 6s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;  
 
} 

#non-porteurs.present .rotat{
    -webkit-transform: rotate(400deg);
    -moz-transform:    rotate(400deg);
    -ms-transform:     rotate(400deg);
    -o-transform:      rotate(400deg);
    transform:         rotate(400deg);

    -webkit-transition-delay: 0.5s;
    -moz-transition-delay:    0.5s;
    -ms-transition-delay:     0.5s;
    -o-transition-delay:      0.5s;
    transition-delay:         0.5s;
    
    -webkit-animation-duration: 6s;
    animation-duration: 6s;  
}


#realite.present .rotating {
    -webkit-transform: rotate(405deg);
    -moz-transform:    rotate(405deg);
    -ms-transform:     rotate(405deg);
    -o-transform:      rotate(405deg);
    transform:         rotate(405deg);

    -webkit-transition-delay: 2s;
    -moz-transition-delay:    2s;
    -ms-transition-delay:     2s;
    -o-transition-delay:      2s;
    transition-delay:         2s;
}


#porteursae.present .rotat {
    -webkit-transform: rotate(65deg);
    -moz-transform:    rotate(65deg);
    -ms-transform:     rotate(65deg);
    -o-transform:      rotate(65deg);
    transform:         rotate(65deg);

    -webkit-transition-delay: .05s;
    -moz-transition-delay:    .05s;
    -ms-transition-delay:     .05s;
    -o-transition-delay:      .05s;
    transition-delay:         .05s;
}

/*
    ... and 'scaling' to scale down after another quarter of a second.
*/
#porteurs.present .scaling {
    -webkit-transform: scale(2.7);
    -moz-transform:    scale(2.7);
    -ms-transform:     scale(2.7);
    -o-transform:      scale(2.7);
    transform:         scale(2.7);

    -webkit-transition-delay: 1s;
    -moz-transition-delay:    1s;
    -ms-transition-delay:     1s;
    -o-transition-delay:      1s;
    transition-delay:         1s;
    
 }


#non-porteurs.present .scaling {
    -webkit-transform: scale(10);
    -moz-transform:    scale(10);
    -ms-transform:     scale(10);
    -o-transform:      scale(10);
    transform:         scale(10);

    -webkit-transition-delay: 1s;
    -moz-transition-delay:    1s;
    -ms-transition-delay:     1s;
    -o-transition-delay:      1s;
    transition-delay:         1s;
     
}
 
 
 #non-porteurs.present p{
    -webkit-transform: translateY(200px);
    -moz-transform:    translateY(200px);
    -ms-transform:     translateY(200px);
    -o-transform:      translateY(500px);
    transform:         translateY(200px);
    
    
    -webkit-transition-delay: 0.5s;
    -moz-transition-delay:    0.5s;
    -ms-transition-delay:     0.5s;
    -o-transition-delay:      0.5s;
    transition-delay:         0.5s;
    
}  

#realite.present .scaling {
    -webkit-transform: scale(10);
    -moz-transform:    scale(10);
    -ms-transform:     scale(10);
    -o-transform:      scale(10);
    transform:         scale(10);

    -webkit-transition-delay: 1.05s;
    -moz-transition-delay:    1.05s;
    -ms-transition-delay:     1.05s;
    -o-transition-delay:      1.05s;
    transition-delay:         1.05s;
}




/*
    The 'imagination' step is again some boring font-sizing.
*/

#imagination {
    width: 600px;
}

#imagination .imagination {
    font-size: 78px;
}

/*
    There is nothing really special about 'use the source, Luke' step, too,
    except maybe of the Yoda background.

    As you can see below I've 'hard-coded' it in data URL.
    That's not the best way to serve images, but because that's just this one
    I decided it will be OK to have it this way.

    Just make sure you don't blindly copy this approach.
*/
#source {
    width: 700px;
    padding-bottom: 300px;

 
    background-position: bottom right;
    background-repeat: no-repeat;
}

#source q {
    font-size: 60px;
}


/*
    And the "it's in 3D" step again brings some 3D typography - just for fun.

    Because we want to position <span> elements in 3D we set transform-style to
    `preserve-3d` on the paragraph.
    It is not needed by webkit browsers, but it is in Firefox. It's hard to say
    which behaviour is correct as 3D transforms spec is not very clear about it.
*/
#its-in-3d p {
    -webkit-transform-style: preserve-3d;
    -moz-transform-style:    preserve-3d; /* Y U need this Firefox?! */
    -ms-transform-style:     preserve-3d;
    -o-transform-style:      preserve-3d;
    transform-style:         preserve-3d;
}

/*
    Below we position each word separately along Z axis and we want it to transition
    to default position in 0.5s when the step gets `present` class.

    Quite a simple idea, but lot's of styles and prefixes.
*/
#its-in-3d span,
#its-in-3d b {
    display: inline-block;
    -webkit-transform: translateZ(40px);
    -moz-transform:    translateZ(40px);
    -ms-transform:     translateZ(40px);
    -o-transform:      translateZ(40px);
     transform:        translateZ(40px);

    -webkit-transition: 0.5s;
    -moz-transition:    0.5s;
    -ms-transition:     0.5s;
    -o-transition:      0.5s;
    transition:         0.5s;
}

#its-in-3d .have {
    -webkit-transform: translateZ(-40px);
    -moz-transform:    translateZ(-40px);
    -ms-transform:     translateZ(-40px);
    -o-transform:      translateZ(-40px);
    transform:         translateZ(-40px);
}

#its-in-3d .you {
    -webkit-transform: translateZ(20px);
    -moz-transform:    translateZ(20px);
    -ms-transform:     translateZ(20px);
    -o-transform:      translateZ(20px);
    transform:         translateZ(20px);
}

#its-in-3d .noticed {
    -webkit-transform: translateZ(-40px);
    -moz-transform:    translateZ(-40px);
    -ms-transform:     translateZ(-40px);
    -o-transform:      translateZ(-40px);
    transform:         translateZ(-40px);
}

#its-in-3d .its {
    -webkit-transform: translateZ(60px);
    -moz-transform:    translateZ(60px);
    -ms-transform:     translateZ(60px);
    -o-transform:      translateZ(60px);
    transform:         translateZ(60px);
}


#ae-in-3d .porteursae{
     display: inline-block;
    -webkit-transform: translateZ(1000px);
    -moz-transform:    translateZ(1000px);
    -ms-transform:     translateZ(1000px);
    -o-transform:      translateZ(1000px);
     transform:        translateZ(1000px);

    -webkit-transition: 2s;
    -moz-transition:    2s;
    -ms-transition:     2s;
    -o-transition:      2s;
    transition:         2s;
}

#its-in-3d .in {
    -webkit-transform: translateZ(-300px);
    -moz-transform:    translateZ(-300px);
    -ms-transform:     translateZ(-300px);
    -o-transform:      translateZ(-300px);
    transform:         translateZ(-300px);
}

#its-in-3d .footnote
 {
    font-size: 20px;

    -webkit-transform: translateZ(-10000px);
    -moz-transform:    translateZ(-10000px);
    -ms-transform:     translateZ(-10000px);
    -o-transform:      translateZ(-10000px);
    transform:         translateZ(-10000px);
}
#its-in-3d > sup
 {
    font-size: 18px;

    -webkit-transform: translateX(-2000px);
    -moz-transform:    translateX(-2000px);
    -ms-transform:     translateX(-2000px);
    -o-transform:      translateX(-2000px);
    transform:         translateX(-2000px);
}

#its-in-3d.present span,
#its-in-3d.present b {
    -webkit-transform: translateZ(0px);
    -moz-transform:    translateZ(0px);
    -ms-transform:     translateZ(0px);
    -o-transform:      translateZ(0px);
    transform:         translateZ(0px);
}

/*
    The last step is an overview.
    There is no content in it, so we make sure it's not visible because we want
    to be able to click on other steps.

*/
#overview { display: none }

/*
    We also make other steps visible and give them a pointer cursor using the
    `impress-on-` class.
*/
.impress-on-overview .step {
    opacity: 1;
    cursor: pointer;
}


/*
MESSAGE DE NAVIGATION    
*/

.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: 32px;
background-color:rgba(250,250,250,0.1);
color:rgba(250,250,250,1) ! important;
text-shadow:1px 1px 1px #726D62;
text-align: center;
font-size: 20px;
width:50%;
margin-left:15%;
border-radius:100%;
padding: 2em;
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 }


.impress-on-overview .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 3s, -webkit-transform 0.5s 2.5s;
    -moz-transition:    opacity 1s 3s,    -moz-transform 0.5s 2.5s;
    -ms-transition:     opacity 1s 3s,     -ms-transform 0.5s 2.5s;
    -o-transition:      opacity 1s 3s,      -o-transform 0.5s 2.5s;
    transition:         opacity 1s 3s,         transform 0.5s 2.5s;
}

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

/*
    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?
*/

/*
    That's all I have for you in this file.
    Thanks for reading. I hope you enjoyed it at least as much as I enjoyed writing it
    for you.
*/




