/* ==================================================== */
/* PRESENTATION CSS - Reliability & Resilience Talk   */
/* ==================================================== */

/*
  Font imports - using local fonts.css for offline usage
  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.
*/
@import url(fonts.css);

/* ==================================================== */
/* FALLBACK MESSAGE FOR UNSUPPORTED BROWSERS           */
/* ==================================================== */

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

/* ==================================================== */
/* BASE STYLING & TYPOGRAPHY                           */
/* ==================================================== */

/*
  The body background is the background 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(173, 232, 255);
    color: #000000;
}

/* Main heading styling */
h1 {
    font-family: "Courier New", "Comic Neue", sans-serif;
    font-weight: 600;
    font-size: 1.5em !important;
    text-align: center;
}

/* Paragraph styling */
p {
    text-align: center;
    margin: 0.7em;
    position: absolute;
    font-family: "Comic Sans MS", "Comic Sans", cursive;
}

/* List styling */
li {
    margin: 0.2em;
}

/* Link styling */
a {
    all: unset;
    text-shadow: none;
    background-color: transparent;
    text-align: center;
    font-family: Comic Neue;
    color: royalblue;
    text-decoration: underline;
    transition: 0.5s;
}

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

/* Typography elements */
blockquote {
    font-family: "PT Serif";
    font-style: italic;
    font-weight: 400;
}

em {
    text-shadow: 0 2px 2px rgba(0, 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, 0.3);
}

strike {
    opacity: 0.7;
}

small {
    font-size: 0.4em;
}

/* ==================================================== */
/* CODE STYLING                                         */
/* ==================================================== */

/* Highlight.js used for coloring pre > code blocks */
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;
}

/* ==================================================== */
/* SLIDE & STEP STYLING                                */
/* ==================================================== */

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

.step {
    width: 1500px !important;
    height: 1000px !important;
}

/*
    Make inactive steps a little bit transparent.
*/
.impress-enabled .step {
    margin: 0;
    opacity: 0.3;
    transition: opacity 1s;
}

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

/* ==================================================== */
/* BACKGROUND COLORS FOR DIFFERENT SLIDES              */
/* ==================================================== */

.red-bg {
    background-color: rgb(255, 68, 68);
}

.blue-bg {
    background-color: rgb(51, 181, 229);
}

/* Main presentation slides background */
.impress-on-step0,
.impress-on-step1,
.impress-on-step2,
.impress-on-step3,
.impress-on-step5,
.impress-on-step6,
.impress-on-step7,
.impress-on-step8,
.impress-on-step9,
.impress-on-step10,
.impress-on-step11,
.impress-on-step12,
.impress-on-step13,
.impress-on-step14,
.impress-on-step15,
.impress-on-step16 {
    background-color: rgb(255, 243, 224);
}

/* ==================================================== */
/* IMAGE & MEDIA STYLING                               */
/* ==================================================== */

/* Default image sizing */
img {
    width: 300px;
}

/* Book cover animations for reading slide */
.book-cover {
    position: absolute;
    width: 240px;
    opacity: 0;
    transition: opacity 2.5s ease-in;
    z-index: 1;
}

/* Social media icons */
.social-icons {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
}

.social-icon {
    width: 92px;
    height: 92px;
}

/* Map and location elements */
.map-pin {
    width: 30px;
    position: absolute;
}

.map-pin-large {
    width: 36px;
    position: absolute;
}

.country-map {
    position: absolute;
}

/* About me slide elements */
.team-member {
    width: 108px;
    position: absolute;
}

.profile-image {
    width: 172.8px;
    position: absolute;
}

.company-logo {
    position: absolute;
}

/* ==================================================== */
/* UTILITY CLASSES                                     */
/* ==================================================== */

.text-bottom-left {
    position: absolute;
    left: 350px;
    bottom: 50px;
    text-align: left;
    font-size: 0.9em;
}

.years-label {
    position: absolute;
    font-weight: bold;
    font-size: 1.2em;
}

/* ==================================================== */
/* BACKGROUND IMAGES (LEGACY - UNUSED)                */
/* ==================================================== */

img.bg {
    position: fixed;
    z-index: -100;
    opacity: 0;
    height: 50%;
    width: auto;
    transition: opacity 2s;
}

#applepie-image {
    left: 0px;
    bottom: 0px;
}

body.impress-on-applepie #applepie-image,
body.impress-on-applepie-pro #applepie-image,
body.impress-on-applepie-con #applepie-image,
body.impress-on-conclusion #applepie-image,
body.impress-on-overview #applepie-image {
    opacity: 0.7;
    transition: opacity 2s;
}

#icecream-image {
    right: 0px;
    top: 0px;
}

body.impress-on-icecream #icecream-image,
body.impress-on-icecream-pro #icecream-image,
body.impress-on-icecream-con #icecream-image,
body.impress-on-conclusion #icecream-image,
body.impress-on-overview #icecream-image {
    opacity: 0.7;
    transition: opacity 2s;
}

#crisps-image {
    right: 0px;
    bottom: 0px;
}

body.impress-on-crisps #crisps-image,
body.impress-on-crisps-pro #crisps-image,
body.impress-on-crisps-con #crisps-image,
body.impress-on-conclusion #crisps-image,
body.impress-on-overview #crisps-image {
    opacity: 0.7;
    transition: opacity 2s;
}

/* ==================================================== */
/* SPEAKER NOTES                                        */
/* ==================================================== */

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

/* ==================================================== */
/* SLIDE SPECIFIC STYLING                              */
/* ==================================================== */

#image-credits {
    color: #779988;
}

/* ==================================================== */
/* IMPRESS.JS PLUGINS STYLING                          */
/* ==================================================== */

/*
  This version of impress.js supports plugins, and in particular, a UI toolbar
  plugin that allows easy navigation between steps and autoplay.
*/

/* Toolbar styling */
.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 styling */
.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 styling */
.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 styling */
#impress .step .substep {
    opacity: 0;
}

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

/* Pointer events management */
.impress-enabled {
    pointer-events: none;
}

.impress-enabled #impress {
    pointer-events: auto;
}

.impress-enabled #impress-toolbar {
    pointer-events: auto;
}

.impress-enabled #impress-console-button {
    pointer-events: auto;
}