/**
 * Custom styles for Reveal.js.
 */

/* Fonts */
@import url(https://fonts.googleapis.com/css?family=Roboto+Slab:300,700;Roboto:700;Fira+Code:400);

/* Override some defaults from the base theme. */
:root {
    --r-heading-font: Roboto, 'Source Sans Pro', sans-serif;
    --r-body-font: 'Roboto Slab', 'Source Sans Pro', sans-serif;
    --r-heading1-size: 2em;
    --r-heading1-text-shadow: none;
    --r-heading4-size: var(--r-heading3-size);
    --r-code-font: 'Fira Code', monospace;
    --r-heading-text-transform: none;
    --subdued-text-color: #555;
}

.reveal {
    font-family: var(--r-body-font);
    background: url('./background.webp') center center repeat;
}

.reveal h5 {
    font-size: var(--r-heading4-size);
}

/* Special styling for the title slide. */
.title-slide h1 {
    margin-bottom: 1em;
}

.title-slide .byline {
    font-weight: bold;
}

.title-slide .byline a {
    display: block;
    font-size: .75em;
    font-weight: 300;
}

.slides-link {
    display: block;
    margin-top: 2em;
    font-size: .86em;
}

/* Persistent footer */
.presentation-footer {
    --presentation-footer-color: var(--subdued-text-color);

    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    padding: 0 5em .5em 1em;
    font-size: .5em;
    color: var(--presentation-footer-color);
    transition: .2s;
}

.presentation-footer[hidden] {
    display: none;
}

.presentation-footer a {
    display: inline-block;
}

@media (min-width: 600px) {
    .presentation-footer {
        font-size: .65em;
    }
}

/* Blockquotes */
.reveal blockquote {
    width: 90%;
    box-shadow: none;
}

.reveal blockquote::before {
    content: '\201C';
    position: absolute;
    top: .5em;
    left: -.3em;
    font-family: Georgia, serif;
    font-size: 2.25em;
    line-height: 0;
    color: var(--r-link-color-dark);
}

.reveal blockquote p:last-child {
    margin-bottom: 0;
}

.reveal blockquote cite {
    display: block;
    margin-top: 1em;
    font-size: .86em;
}

.reveal blockquote cite:before {
    content: '—';
}

/* Inline <code> elements are a tad bigger than regular text. */
.reveal code {
    font-size: .86em;
}

/* Inline fragment replacements */
.fragment-replacement .fragment.fade-out.visible,
.fragment-replacement .fragment.fade-in:not(.visible) {
    display: none;
}

.reveal .fragment-replacement .fragment {
    transition: none;
}

.reveal .fragment-replacement .hljs:not(:first-child).fragment {
    position: inherit;
}

/* Add a bit of extra space between top-level list items. */
.slides section > ol > li + li,
.slides section > ul > li + li {
    margin-top: .5em;
}

/* Add .hide-line-numbers to code blocks in order to hide line numbering. */
.hide-line-numbers .hljs-ln-numbers {
    display: none;
}

/* Allow definition lists to be centered */
.reveal dl {
    margin-left: 0;
    text-align: center;
}

.reveal dl dd {
    margin-left: 0;
}

/* Extra space between elements in a definition list */
dd + dt {
    margin-top: 1em;
}

/* Allow code blocks to get just a *bit* of extra height. */
.reveal pre.growth-spurt code
{
    max-height: 440px;
    overflow: hidden;
}

/* A simple, cascading overflow: hidden */
.overflow-hidden,
.overflow-hidden > * {
    overflow: hidden !important;
}

/* Hide text that's hidden for the sake of presentation. */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal;
}

/* Print styles */
@media print {
    /* When code highlighting, don't dim anything. */
    .reveal .hljs.has-highlights tr {
        opacity: 1!important;
    }
}
