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,
main,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    border: 0;
    margin: 0;
    padding: 0
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section {
    display: block
}

.reveal .stretch,
.reveal .r-stretch {
    max-width: none;
    max-height: none
}

.reveal pre.stretch code,
.reveal pre.r-stretch code {
    box-sizing: border-box;
    height: 100%;
    max-height: 100%
}

.reveal .r-fit-text {
    white-space: nowrap;
    display: inline-block
}

.reveal .r-stack {
    grid-template-rows: 100%;
    display: grid
}

.reveal .r-stack>* {
    grid-area: 1/1;
    margin: auto
}

.reveal .r-vstack,
.reveal .r-hstack {
    display: flex
}

.reveal .r-vstack img,
.reveal .r-vstack video,
.reveal .r-hstack img,
.reveal .r-hstack video {
    object-fit: contain;
    min-width: 0;
    min-height: 0
}

.reveal .r-vstack {
    flex-direction: column;
    justify-content: center;
    align-items: center
}

.reveal .r-hstack {
    flex-direction: row;
    justify-content: center;
    align-items: center
}

.reveal .items-stretch {
    align-items: stretch
}

.reveal .items-start {
    align-items: flex-start
}

.reveal .items-center {
    align-items: center
}

.reveal .items-end {
    align-items: flex-end
}

.reveal .justify-between {
    justify-content: space-between
}

.reveal .justify-around {
    justify-content: space-around
}

.reveal .justify-start {
    justify-content: flex-start
}

.reveal .justify-center {
    justify-content: center
}

.reveal .justify-end {
    justify-content: flex-end
}

html.reveal-full-page {
    width: 100%;
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
    height: 100dvh;
    overflow: hidden
}

.reveal-viewport {
    color: #000;
    --r-controls-spacing: 12px;
    --r-overlay-header-height: 40px;
    --r-overlay-margin: 0px;
    --r-overlay-padding: 6px;
    --r-overlay-gap: 5px;
    background-color: #fff;
    height: 100%;
    margin: 0;
    line-height: 1;
    position: relative;
    overflow: hidden
}

@media screen and (width<=1024px),
(height<=768px) {
    .reveal-viewport {
        --r-overlay-header-height: 26px
    }
}

.reveal-viewport:fullscreen {
    width: 100% !important;
    height: 100% !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important
}

.reveal .fragment {
    transition: all .2s
}

.reveal .fragment:not(.custom) {
    opacity: 0;
    visibility: hidden;
    will-change: opacity
}

.reveal .fragment.visible {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.disabled {
    transition: none
}

.reveal .fragment.grow {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.grow.visible {
    transform: scale(1.3)
}

.reveal .fragment.shrink {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.shrink.visible {
    transform: scale(.7)
}

.reveal .fragment.zoom-in {
    transform: scale(.1)
}

.reveal .fragment.zoom-in.visible {
    transform: none
}

.reveal .fragment.fade-out {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.fade-out.visible {
    opacity: 0;
    visibility: hidden
}

.reveal .fragment.semi-fade-out {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.semi-fade-out.visible {
    opacity: .5;
    visibility: inherit
}

.reveal .fragment.strike {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.strike.visible {
    text-decoration: line-through
}

.reveal .fragment.fade-up {
    transform: translateY(40px)
}

.reveal .fragment.fade-up.visible {
    transform: translate(0)
}

.reveal .fragment.fade-down {
    transform: translateY(-40px)
}

.reveal .fragment.fade-down.visible {
    transform: translate(0)
}

.reveal .fragment.fade-right {
    transform: translate(-40px)
}

.reveal .fragment.fade-right.visible {
    transform: translate(0)
}

.reveal .fragment.fade-left {
    transform: translate(40px)
}

.reveal .fragment.fade-left.visible {
    transform: translate(0)
}

.reveal .fragment.fade-in-then-out,
.reveal .fragment.current-visible {
    opacity: 0;
    visibility: hidden
}

.reveal .fragment.fade-in-then-out.current-fragment,
.reveal .fragment.current-visible.current-fragment {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.fade-in-then-semi-out {
    opacity: 0;
    visibility: hidden
}

.reveal .fragment.fade-in-then-semi-out.visible {
    opacity: .5;
    visibility: inherit
}

.reveal .fragment.fade-in-then-semi-out.current-fragment,
.reveal .fragment.highlight-red,
.reveal .fragment.highlight-current-red,
.reveal .fragment.highlight-green,
.reveal .fragment.highlight-current-green,
.reveal .fragment.highlight-blue,
.reveal .fragment.highlight-current-blue {
    opacity: 1;
    visibility: inherit
}

.reveal .fragment.highlight-red.visible {
    color: #ff2c2d
}

.reveal .fragment.highlight-green.visible {
    color: #17ff2e
}

.reveal .fragment.highlight-blue.visible {
    color: #1b91ff
}

.reveal .fragment.highlight-current-red.current-fragment {
    color: #ff2c2d
}

.reveal .fragment.highlight-current-green.current-fragment {
    color: #17ff2e
}

.reveal .fragment.highlight-current-blue.current-fragment {
    color: #1b91ff
}

.reveal:after {
    content: "";
    font-style: italic
}

.reveal iframe {
    z-index: 1
}

.reveal a {
    position: relative
}

@keyframes bounce-right {
    0%,
    10%,
    25%,
    40%,
    50% {
        transform: translate(0)
    }
    20% {
        transform: translate(10px)
    }
    30% {
        transform: translate(-5px)
    }
}

@keyframes bounce-left {
    0%,
    10%,
    25%,
    40%,
    50% {
        transform: translate(0)
    }
    20% {
        transform: translate(-10px)
    }
    30% {
        transform: translate(5px)
    }
}

@keyframes bounce-down {
    0%,
    10%,
    25%,
    40%,
    50% {
        transform: translateY(0)
    }
    20% {
        transform: translateY(10px)
    }
    30% {
        transform: translateY(-5px)
    }
}

.reveal .controls {
    top: auto;
    bottom: var(--r-controls-spacing);
    right: var(--r-controls-spacing);
    z-index: 11;
    color: #000;
    pointer-events: none;
    font-size: 10px;
    display: none;
    position: absolute;
    left: auto
}

.reveal .controls button {
    cursor: pointer;
    color: currentColor;
    z-index: 2;
    pointer-events: auto;
    font-size: inherit;
    visibility: hidden;
    opacity: 0;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: #0000;
    background-color: #0000;
    border: 0;
    outline: 0;
    padding: 0;
    transition: color .2s, opacity .2s, transform .2s;
    position: absolute;
    transform: scale(.9999)
}

.reveal .controls .controls-arrow:before,
.reveal .controls .controls-arrow:after {
    content: "";
    transform-origin: .2em;
    will-change: transform;
    background-color: currentColor;
    border-radius: .25em;
    width: 2.6em;
    height: .5em;
    transition: all .15s, background-color .8s;
    position: absolute;
    top: 0;
    left: 0
}

.reveal .controls .controls-arrow {
    width: 3.6em;
    height: 3.6em;
    position: relative
}

.reveal .controls .controls-arrow:before {
    transform: translate(.5em)translateY(1.55em)rotate(45deg)
}

.reveal .controls .controls-arrow:after {
    transform: translate(.5em)translateY(1.55em)rotate(-45deg)
}

.reveal .controls .controls-arrow:hover:before {
    transform: translate(.5em)translateY(1.55em)rotate(40deg)
}

.reveal .controls .controls-arrow:hover:after {
    transform: translate(.5em)translateY(1.55em)rotate(-40deg)
}

.reveal .controls .controls-arrow:active:before {
    transform: translate(.5em)translateY(1.55em)rotate(36deg)
}

.reveal .controls .controls-arrow:active:after {
    transform: translate(.5em)translateY(1.55em)rotate(-36deg)
}

.reveal .controls .navigate-left {
    bottom: 3.2em;
    right: 6.4em;
    transform: translate(-10px)
}

.reveal .controls .navigate-left.highlight {
    animation: 2s ease-out 50 both bounce-left
}

.reveal .controls .navigate-right {
    bottom: 3.2em;
    right: 0;
    transform: translate(10px)
}

.reveal .controls .navigate-right .controls-arrow {
    transform: rotate(180deg)
}

.reveal .controls .navigate-right.highlight {
    animation: 2s ease-out 50 both bounce-right
}

.reveal .controls .navigate-up {
    bottom: 6.4em;
    right: 3.2em;
    transform: translateY(-10px)
}

.reveal .controls .navigate-up .controls-arrow {
    transform: rotate(90deg)
}

.reveal .controls .navigate-down {
    padding-bottom: 1.4em;
    bottom: -1.4em;
    right: 3.2em;
    transform: translateY(10px)
}

.reveal .controls .navigate-down .controls-arrow {
    transform: rotate(-90deg)
}

.reveal .controls .navigate-down.highlight {
    animation: 2s ease-out 50 both bounce-down
}

.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled {
    opacity: .3
}

.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover {
    opacity: 1
}

.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled {
    opacity: 0;
    visibility: hidden
}

.reveal .controls .enabled {
    visibility: visible;
    opacity: .9;
    cursor: pointer;
    transform: none
}

.reveal .controls .enabled.fragmented {
    opacity: .5
}

.reveal .controls .enabled:hover,
.reveal .controls .enabled.fragmented:hover {
    opacity: 1
}

.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled {
    opacity: .3
}

.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover {
    opacity: 1
}

.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled {
    opacity: 0;
    visibility: hidden
}

.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled {
    opacity: .3
}

.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover {
    opacity: 1
}

.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled {
    opacity: 0;
    visibility: hidden
}

.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up,
.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down {
    display: none
}

.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left,
.reveal:not(.has-vertical-slides) .controls .navigate-left {
    bottom: 1.4em;
    right: 5.5em
}

.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right,
.reveal:not(.has-vertical-slides) .controls .navigate-right {
    bottom: 1.4em;
    right: .5em
}

.reveal:not(.has-horizontal-slides) .controls .navigate-up {
    bottom: 5em;
    right: 1.4em
}

.reveal:not(.has-horizontal-slides) .controls .navigate-down {
    bottom: .5em;
    right: 1.4em
}

.reveal.has-dark-background .controls {
    color: #fff
}

.reveal.has-light-background .controls {
    color: #000
}

.reveal.no-hover .controls .controls-arrow:hover:before,
.reveal.no-hover .controls .controls-arrow:active:before {
    transform: translate(.5em)translateY(1.55em)rotate(45deg)
}

.reveal.no-hover .controls .controls-arrow:hover:after,
.reveal.no-hover .controls .controls-arrow:active:after {
    transform: translate(.5em)translateY(1.55em)rotate(-45deg)
}

@media screen and (width>=500px) {
    .reveal-viewport {
        --r-controls-spacing: .8em
    }
    .reveal .controls[data-controls-layout=edges] {
        inset: 0
    }
    .reveal .controls[data-controls-layout=edges] .navigate-left,
    .reveal .controls[data-controls-layout=edges] .navigate-right,
    .reveal .controls[data-controls-layout=edges] .navigate-up,
    .reveal .controls[data-controls-layout=edges] .navigate-down {
        bottom: auto;
        right: auto
    }
    .reveal .controls[data-controls-layout=edges] .navigate-left {
        top: 50%;
        left: var(--r-controls-spacing);
        margin-top: -1.8em
    }
    .reveal .controls[data-controls-layout=edges] .navigate-right {
        top: 50%;
        right: var(--r-controls-spacing);
        margin-top: -1.8em
    }
    .reveal .controls[data-controls-layout=edges] .navigate-up {
        top: var(--r-controls-spacing);
        margin-left: -1.8em;
        left: 50%
    }
    .reveal .controls[data-controls-layout=edges] .navigate-down {
        bottom: calc(var(--r-controls-spacing) - 1.4em + .3em);
        margin-left: -1.8em;
        left: 50%
    }
}

.reveal .progress {
    z-index: 10;
    color: #fff;
    background-color: #0003;
    width: 100%;
    height: 3px;
    display: none;
    position: absolute;
    bottom: 0;
    left: 0
}

.reveal .progress:after {
    content: "";
    width: 100%;
    height: 10px;
    display: block;
    position: absolute;
    top: -10px
}

.reveal .progress span {
    transform-origin: 0 0;
    background-color: currentColor;
    width: 100%;
    height: 100%;
    transition: transform .8s cubic-bezier(.26, .86, .44, .985);
    display: block;
    transform: scaleX(0)
}

.reveal .slide-number {
    z-index: 31;
    color: #fff;
    background-color: #0006;
    padding: 5px;
    font-family: Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1;
    display: block;
    position: absolute;
    bottom: 8px;
    right: 8px
}

.reveal .slide-number a {
    color: currentColor
}

.reveal .slide-number-delimiter {
    margin: 0 3px
}

.reveal {
    touch-action: pinch-zoom;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden
}

.reveal.embedded {
    touch-action: pan-y
}

.reveal.embedded.is-vertical-slide {
    touch-action: none
}

.reveal .slides {
    pointer-events: none;
    z-index: 1;
    text-align: center;
    perspective: 600px;
    perspective-origin: 50% 40%;
    width: 100%;
    height: 100%;
    margin: auto;
    position: absolute;
    inset: 0;
    overflow: visible
}

.reveal .slides>section {
    perspective: 600px
}

.reveal .slides>section,
.reveal .slides>section>section {
    pointer-events: auto;
    z-index: 10;
    transform-style: flat;
    width: 100%;
    transition: transform-origin .8s cubic-bezier(.26, .86, .44, .985), transform .8s cubic-bezier(.26, .86, .44, .985), visibility .8s cubic-bezier(.26, .86, .44, .985), opacity .8s cubic-bezier(.26, .86, .44, .985);
    display: none;
    position: absolute
}

.reveal[data-transition-speed=fast] .slides section {
    transition-duration: .4s
}

.reveal[data-transition-speed=slow] .slides section {
    transition-duration: 1.2s
}

.reveal .slides section[data-transition-speed=fast] {
    transition-duration: .4s
}

.reveal .slides section[data-transition-speed=slow] {
    transition-duration: 1.2s
}

.reveal .slides>section.stack {
    pointer-events: none;
    height: 100%;
    padding-top: 0;
    padding-bottom: 0
}

.reveal .slides>section.present,
.reveal .slides>section>section.present {
    z-index: 11;
    opacity: 1;
    display: block
}

.reveal .slides>section:empty,
.reveal .slides>section>section:empty,
.reveal .slides>section[data-background-interactive],
.reveal .slides>section>section[data-background-interactive] {
    pointer-events: none
}

.reveal.center,
.reveal.center .slides,
.reveal.center .slides section {
    min-height: 0 !important
}

.reveal .slides>section:not(.present),
.reveal .slides>section>section:not(.present) {
    pointer-events: none
}

.reveal.overview .slides>section,
.reveal.overview .slides>section>section {
    pointer-events: auto
}

.reveal .slides>section.past,
.reveal .slides>section.future,
.reveal .slides>section.past>section,
.reveal .slides>section.future>section,
.reveal .slides>section>section.past,
.reveal .slides>section>section.future {
    opacity: 0
}

.reveal .slides>section[data-transition=slide].past,
.reveal .slides>section[data-transition~=slide-out].past,
.reveal.slide .slides>section:not([data-transition]).past {
    transform: translate(-150%)
}

.reveal .slides>section[data-transition=slide].future,
.reveal .slides>section[data-transition~=slide-in].future,
.reveal.slide .slides>section:not([data-transition]).future {
    transform: translate(150%)
}

.reveal .slides>section>section[data-transition=slide].past,
.reveal .slides>section>section[data-transition~=slide-out].past,
.reveal.slide .slides>section>section:not([data-transition]).past {
    transform: translateY(-150%)
}

.reveal .slides>section>section[data-transition=slide].future,
.reveal .slides>section>section[data-transition~=slide-in].future,
.reveal.slide .slides>section>section:not([data-transition]).future {
    transform: translateY(150%)
}

.reveal .slides>section[data-transition=linear].past,
.reveal .slides>section[data-transition~=linear-out].past,
.reveal.linear .slides>section:not([data-transition]).past {
    transform: translate(-150%)
}

.reveal .slides>section[data-transition=linear].future,
.reveal .slides>section[data-transition~=linear-in].future,
.reveal.linear .slides>section:not([data-transition]).future {
    transform: translate(150%)
}

.reveal .slides>section>section[data-transition=linear].past,
.reveal .slides>section>section[data-transition~=linear-out].past,
.reveal.linear .slides>section>section:not([data-transition]).past {
    transform: translateY(-150%)
}

.reveal .slides>section>section[data-transition=linear].future,
.reveal .slides>section>section[data-transition~=linear-in].future,
.reveal.linear .slides>section>section:not([data-transition]).future {
    transform: translateY(150%)
}

.reveal .slides section[data-transition=default].stack,
.reveal.default .slides section.stack {
    transform-style: preserve-3d
}

.reveal .slides>section[data-transition=default].past,
.reveal .slides>section[data-transition~=default-out].past,
.reveal.default .slides>section:not([data-transition]).past {
    transform: translate(-100%)rotateY(-90deg)translate(-100%)
}

.reveal .slides>section[data-transition=default].future,
.reveal .slides>section[data-transition~=default-in].future,
.reveal.default .slides>section:not([data-transition]).future {
    transform: translate(100%)rotateY(90deg)translate(100%)
}

.reveal .slides>section>section[data-transition=default].past,
.reveal .slides>section>section[data-transition~=default-out].past,
.reveal.default .slides>section>section:not([data-transition]).past {
    transform: translateY(-300px)rotateX(70deg)translateY(-300px)
}

.reveal .slides>section>section[data-transition=default].future,
.reveal .slides>section>section[data-transition~=default-in].future,
.reveal.default .slides>section>section:not([data-transition]).future {
    transform: translateY(300px)rotateX(-70deg)translateY(300px)
}

.reveal .slides section[data-transition=convex].stack,
.reveal.convex .slides section.stack {
    transform-style: preserve-3d
}

.reveal .slides>section[data-transition=convex].past,
.reveal .slides>section[data-transition~=convex-out].past,
.reveal.convex .slides>section:not([data-transition]).past {
    transform: translate(-100%)rotateY(-90deg)translate(-100%)
}

.reveal .slides>section[data-transition=convex].future,
.reveal .slides>section[data-transition~=convex-in].future,
.reveal.convex .slides>section:not([data-transition]).future {
    transform: translate(100%)rotateY(90deg)translate(100%)
}

.reveal .slides>section>section[data-transition=convex].past,
.reveal .slides>section>section[data-transition~=convex-out].past,
.reveal.convex .slides>section>section:not([data-transition]).past {
    transform: translateY(-300px)rotateX(70deg)translateY(-300px)
}

.reveal .slides>section>section[data-transition=convex].future,
.reveal .slides>section>section[data-transition~=convex-in].future,
.reveal.convex .slides>section>section:not([data-transition]).future {
    transform: translateY(300px)rotateX(-70deg)translateY(300px)
}

.reveal .slides section[data-transition=concave].stack,
.reveal.concave .slides section.stack {
    transform-style: preserve-3d
}

.reveal .slides>section[data-transition=concave].past,
.reveal .slides>section[data-transition~=concave-out].past,
.reveal.concave .slides>section:not([data-transition]).past {
    transform: translate(-100%)rotateY(90deg)translate(-100%)
}

.reveal .slides>section[data-transition=concave].future,
.reveal .slides>section[data-transition~=concave-in].future,
.reveal.concave .slides>section:not([data-transition]).future {
    transform: translate(100%)rotateY(-90deg)translate(100%)
}

.reveal .slides>section>section[data-transition=concave].past,
.reveal .slides>section>section[data-transition~=concave-out].past,
.reveal.concave .slides>section>section:not([data-transition]).past {
    transform: translateY(-80%)rotateX(-70deg)translateY(-80%)
}

.reveal .slides>section>section[data-transition=concave].future,
.reveal .slides>section>section[data-transition~=concave-in].future,
.reveal.concave .slides>section>section:not([data-transition]).future {
    transform: translateY(80%)rotateX(70deg)translateY(80%)
}

.reveal .slides section[data-transition=zoom],
.reveal.zoom .slides section:not([data-transition]) {
    transition-timing-function: ease
}

.reveal .slides>section[data-transition=zoom].past,
.reveal .slides>section[data-transition~=zoom-out].past,
.reveal.zoom .slides>section:not([data-transition]).past {
    visibility: hidden;
    transform: scale(16)
}

.reveal .slides>section[data-transition=zoom].future,
.reveal .slides>section[data-transition~=zoom-in].future,
.reveal.zoom .slides>section:not([data-transition]).future {
    visibility: hidden;
    transform: scale(.2)
}

.reveal .slides>section>section[data-transition=zoom].past,
.reveal .slides>section>section[data-transition~=zoom-out].past,
.reveal.zoom .slides>section>section:not([data-transition]).past {
    transform: scale(16)
}

.reveal .slides>section>section[data-transition=zoom].future,
.reveal .slides>section>section[data-transition~=zoom-in].future,
.reveal.zoom .slides>section>section:not([data-transition]).future {
    transform: scale(.2)
}

.reveal.cube .slides {
    perspective: 1300px
}

.reveal.cube .slides section {
    backface-visibility: hidden;
    box-sizing: border-box;
    min-height: 700px;
    transform-style: preserve-3d;
    padding: 30px
}

.reveal.center.cube .slides section {
    min-height: 0
}

.reveal.cube .slides section:not(.stack):before {
    content: "";
    background: #0000001a;
    border-radius: 4px;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateZ(-20px)
}

.reveal.cube .slides section:not(.stack):after {
    content: "";
    z-index: 1;
    background: 0 0;
    border-radius: 4px;
    width: 90%;
    height: 30px;
    display: block;
    position: absolute;
    bottom: 0;
    left: 5%;
    transform: translateZ(-90px)rotateX(65deg);
    box-shadow: 0 95px 25px #0003
}

.reveal.cube .slides>section.stack {
    background: 0 0;
    padding: 0
}

.reveal.cube .slides>section.past {
    transform-origin: 100% 0;
    transform: translate(-100%)rotateY(-90deg)
}

.reveal.cube .slides>section.future {
    transform-origin: 0 0;
    transform: translate(100%)rotateY(90deg)
}

.reveal.cube .slides>section>section.past {
    transform-origin: 0 100%;
    transform: translateY(-100%)rotateX(90deg)
}

.reveal.cube .slides>section>section.future {
    transform-origin: 0 0;
    transform: translateY(100%)rotateX(-90deg)
}

.reveal.page .slides {
    perspective-origin: 0%;
    perspective: 3000px
}

.reveal.page .slides section {
    box-sizing: border-box;
    min-height: 700px;
    transform-style: preserve-3d;
    padding: 30px
}

.reveal.page .slides section.past {
    z-index: 12
}

.reveal.page .slides section:not(.stack):before {
    content: "";
    background: #0000001a;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateZ(-20px)
}

.reveal.page .slides section:not(.stack):after {
    content: "";
    z-index: 1;
    background: 0 0;
    border-radius: 4px;
    width: 90%;
    height: 30px;
    display: block;
    position: absolute;
    bottom: 0;
    left: 5%;
    transform: translateZ(-90px)rotateX(65deg);
    box-shadow: 0 95px 25px #0003
}

.reveal.page .slides>section.stack {
    background: 0 0;
    padding: 0
}

.reveal.page .slides>section.past {
    transform-origin: 0 0;
    transform: translate(-40%)rotateY(-80deg)
}

.reveal.page .slides>section.future {
    transform-origin: 100% 0;
    transform: translate(0)
}

.reveal.page .slides>section>section.past {
    transform-origin: 0 0;
    transform: translateY(-40%)rotateX(80deg)
}

.reveal.page .slides>section>section.future {
    transform-origin: 0 100%;
    transform: translate(0)
}

.reveal .slides section[data-transition=fade],
.reveal.fade .slides section:not([data-transition]),
.reveal.fade .slides>section>section:not([data-transition]) {
    transition: opacity .5s;
    transform: none
}

.reveal.fade.overview .slides section,
.reveal.fade.overview .slides>section>section {
    transition: none
}

.reveal .slides section[data-transition=none],
.reveal.none .slides section:not([data-transition]) {
    transition: none;
    transform: none
}

.reveal .pause-overlay {
    visibility: hidden;
    opacity: 0;
    z-index: 100;
    background: #000;
    width: 100%;
    height: 100%;
    transition: all 1s;
    position: absolute;
    top: 0;
    left: 0
}

.reveal .pause-overlay .resume-button {
    color: #ccc;
    cursor: pointer;
    background: 0 0;
    border: 2px solid #ccc;
    border-radius: 2px;
    padding: 6px 14px;
    font-size: 16px;
    position: absolute;
    bottom: 20px;
    right: 20px
}

.reveal .pause-overlay .resume-button:hover {
    color: #fff;
    border-color: #fff
}

.reveal.paused .pause-overlay {
    visibility: visible;
    opacity: 1
}

.reveal .no-transition,
.reveal .no-transition *,
.reveal .slides.disable-slide-transitions section {
    transition: none !important
}

.reveal .slides.disable-slide-transitions section {
    transform: none !important
}

.reveal .backgrounds {
    perspective: 600px;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.reveal .slide-background {
    opacity: 0;
    visibility: hidden;
    background-color: #0000;
    width: 100%;
    height: 100%;
    transition: all .8s cubic-bezier(.26, .86, .44, .985);
    display: none;
    position: absolute;
    overflow: hidden
}

.reveal .slide-background-content {
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    width: 100%;
    height: 100%;
    position: absolute
}

.reveal .slide-background.stack {
    display: block
}

.reveal .slide-background.present {
    opacity: 1;
    visibility: visible;
    z-index: 2
}

.print-pdf .reveal .slide-background {
    opacity: 1 !important;
    visibility: visible !important
}

.reveal .slide-background video {
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    position: absolute;
    top: 0;
    left: 0
}

.reveal .slide-background[data-background-size=contain] video {
    object-fit: contain
}

.reveal[data-background-transition=none]>.backgrounds .slide-background:not([data-background-transition]),
.reveal>.backgrounds .slide-background[data-background-transition=none] {
    transition: none
}

.reveal[data-background-transition=slide]>.backgrounds .slide-background:not([data-background-transition]),
.reveal>.backgrounds .slide-background[data-background-transition=slide] {
    opacity: 1
}

.reveal[data-background-transition=slide]>.backgrounds .slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background.past[data-background-transition=slide] {
    transform: translate(-100%)
}

.reveal[data-background-transition=slide]>.backgrounds .slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background.future[data-background-transition=slide] {
    transform: translate(100%)
}

.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] {
    transform: translateY(-100%)
}

.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] {
    transform: translateY(100%)
}

.reveal[data-background-transition=convex]>.backgrounds .slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background.past[data-background-transition=convex] {
    opacity: 0;
    transform: translate(-100%)rotateY(-90deg)translate(-100%)
}

.reveal[data-background-transition=convex]>.backgrounds .slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background.future[data-background-transition=convex] {
    opacity: 0;
    transform: translate(100%)rotateY(90deg)translate(100%)
}

.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex] {
    opacity: 0;
    transform: translateY(-100%)rotateX(90deg)translateY(-100%)
}

.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex] {
    opacity: 0;
    transform: translateY(100%)rotateX(-90deg)translateY(100%)
}

.reveal[data-background-transition=concave]>.backgrounds .slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background.past[data-background-transition=concave] {
    opacity: 0;
    transform: translate(-100%)rotateY(90deg)translate(-100%)
}

.reveal[data-background-transition=concave]>.backgrounds .slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background.future[data-background-transition=concave] {
    opacity: 0;
    transform: translate(100%)rotateY(-90deg)translate(100%)
}

.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave] {
    opacity: 0;
    transform: translateY(-100%)rotateX(-90deg)translateY(-100%)
}

.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave] {
    opacity: 0;
    transform: translateY(100%)rotateX(90deg)translateY(100%)
}

.reveal[data-background-transition=zoom]>.backgrounds .slide-background:not([data-background-transition]),
.reveal>.backgrounds .slide-background[data-background-transition=zoom] {
    transition-timing-function: ease
}

.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background.past[data-background-transition=zoom] {
    opacity: 0;
    visibility: hidden;
    transform: scale(16)
}

.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background.future[data-background-transition=zoom] {
    opacity: 0;
    visibility: hidden;
    transform: scale(.2)
}

.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom] {
    opacity: 0;
    visibility: hidden;
    transform: scale(16)
}

.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),
.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom] {
    opacity: 0;
    visibility: hidden;
    transform: scale(.2)
}

.reveal[data-transition-speed=fast]>.backgrounds .slide-background {
    transition-duration: .4s
}

.reveal[data-transition-speed=slow]>.backgrounds .slide-background {
    transition-duration: 1.2s
}

.reveal [data-auto-animate-target^=unmatched] {
    will-change: opacity
}

.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched] {
    opacity: 0
}

.reveal.overview {
    perspective-origin: 50%;
    perspective: 700px
}

.reveal.overview .slides section {
    cursor: pointer;
    box-sizing: border-box;
    height: 100%;
    overflow: hidden;
    opacity: 1 !important;
    visibility: visible !important;
    top: 0 !important
}

.reveal.overview .slides section:hover,
.reveal.overview .slides section.present {
    outline-offset: 10px;
    outline: 10px solid #96969699
}

.reveal.overview .slides section.present {
    outline: 10px solid var(--r-link-color)
}

.reveal.overview .slides section .fragment {
    opacity: 1;
    transition: none
}

.reveal.overview .slides section:after,
.reveal.overview .slides section:before {
    display: none !important
}

.reveal.overview .slides>section.stack {
    background: 0 0;
    outline: none;
    padding: 0;
    overflow: visible;
    top: 0 !important
}

.reveal.overview .backgrounds {
    perspective: inherit
}

.reveal.overview .backgrounds .slide-background {
    opacity: 1;
    visibility: visible;
    outline-offset: 10px;
    outline: 10px solid #9696961a
}

.reveal.overview .backgrounds .slide-background.stack {
    overflow: visible
}

.reveal.overview .slides section,
.reveal.overview-deactivating .slides section,
.reveal.overview .backgrounds .slide-background,
.reveal.overview-deactivating .backgrounds .slide-background {
    transition: none
}

.reveal.rtl .slides,
.reveal.rtl .slides h1,
.reveal.rtl .slides h2,
.reveal.rtl .slides h3,
.reveal.rtl .slides h4,
.reveal.rtl .slides h5,
.reveal.rtl .slides h6 {
    direction: rtl;
    font-family: sans-serif
}

.reveal.rtl pre,
.reveal.rtl code {
    direction: ltr
}

.reveal.rtl ol,
.reveal.rtl ul {
    text-align: right
}

.reveal.rtl .progress span {
    transform-origin: 100% 0
}

.reveal.has-parallax-background .backgrounds {
    transition: all .8s
}

.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds {
    transition-duration: .4s
}

.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds {
    transition-duration: 1.2s
}

@keyframes fade-in {
    0% {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

@keyframes scale-up {
    0% {
        transform: scale(.95)
    }
    to {
        transform: scale(1)
    }
}

.reveal [data-preview-image],
.reveal [data-preview-video],
.reveal [data-preview-link]:not(a):not([data-preview-link=false]) {
    cursor: zoom-in
}

.r-overlay {
    top: var(--r-overlay-margin);
    right: var(--r-overlay-margin);
    bottom: var(--r-overlay-margin);
    left: var(--r-overlay-margin);
    border-radius: min(var(--r-overlay-margin), 6px);
    z-index: 99;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    color: #fff;
    background: #000000f2;
    font-family: ui-sans-serif, system-ui, -apple-system, Helvetica, sans-serif;
    transition: all .3s;
    animation: .3s fade-in;
    position: absolute
}

.r-overlay-viewport {
    top: var(--r-overlay-padding);
    right: var(--r-overlay-padding);
    bottom: var(--r-overlay-padding);
    left: var(--r-overlay-padding);
    gap: var(--r-overlay-gap);
    flex-direction: column;
    display: flex;
    position: absolute
}

.r-overlay-header {
    z-index: 2;
    box-sizing: border-box;
    height: var(--r-overlay-header-height);
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
    display: flex
}

.r-overlay-header .r-overlay-header-button {
    all: unset;
    min-width: var(--r-overlay-header-height);
    min-height: var(--r-overlay-header-height);
    padding: 0 calc(var(--r-overlay-header-height) / 4);
    opacity: 1;
    cursor: pointer;
    box-sizing: border-box;
    border-radius: 6px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    display: flex
}

.r-overlay-header .r-overlay-header-button:hover {
    opacity: 1;
    background-color: #ffffff26
}

.r-overlay-header .icon {
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: 100%;
    width: 20px;
    height: 20px;
    display: inline-block
}

.r-overlay-close .icon {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTIuODU0IDIuODU0YS41LjUgMCAwIDAtLjcwOC0uNzA4TDcuNSA2Ljc5MyAyLjg1NCAyLjE0NmEuNS41IDAgMSAwLS43MDguNzA4TDYuNzkzIDcuNWwtNC42NDcgNC42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOEw3LjUgOC4yMDdsNC42NDYgNC42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMOC4yMDcgNy41bDQuNjQ3LTQuNjQ2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)
}

.r-overlay-external .icon {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMyAyYTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDlhMSAxIDAgMCAwIDEtMVY4LjVhLjUuNSAwIDAgMC0xIDBWMTJIM1YzaDMuNWEuNS41IDAgMCAwIDAtMUgzWm05Ljg1NC4xNDZhLjUuNSAwIDAgMSAuMTQ2LjM1MVY1LjVhLjUuNSAwIDAgMS0xIDBWMy43MDdMNi44NTQgOC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhMMTEuMjkzIDNIOS41YS41LjUgMCAwIDEgMC0xaDNhLjQ5OS40OTkgMCAwIDEgLjM1NC4xNDZaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)
}

.r-overlay-content {
    background-color: #141414cc;
    border-radius: 6px;
    flex-grow: 1;
    place-items: center;
    animation: .5s cubic-bezier(.26, .86, .44, .985) scale-up;
    display: grid;
    position: relative;
    overflow: hidden
}

.r-overlay-spinner {
    z-index: 10;
    visibility: hidden;
    opacity: 0;
    background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);
    width: 32px;
    height: 32px;
    margin: -16px 0 0 -16px;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%
}

.r-overlay-preview .r-overlay-content iframe {
    opacity: 0;
    visibility: hidden;
    border: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    transition: all .3s
}

.r-overlay-preview[data-state=loaded] iframe {
    opacity: 1;
    visibility: visible
}

.r-overlay-preview .r-overlay-content img,
.r-overlay-preview .r-overlay-content video {
    object-fit: scale-down;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    margin: 0;
    position: absolute
}

.r-overlay-preview[data-preview-fit=none] img,
.r-overlay-preview[data-preview-fit=none] video {
    object-fit: none
}

.r-overlay-preview[data-preview-fit=scale-down] img,
.r-overlay-preview[data-preview-fit=scale-down] video {
    object-fit: scale-down
}

.r-overlay-preview[data-preview-fit=contain] img,
.r-overlay-preview[data-preview-fit=contain] video {
    object-fit: contain
}

.r-overlay-preview[data-preview-fit=cover] img,
.r-overlay-preview[data-preview-fit=cover] video {
    object-fit: cover
}

.r-overlay-preview[data-state=loaded] .r-overlay-content-inner {
    z-index: -1;
    text-align: center;
    letter-spacing: normal;
    width: 100%;
    position: absolute;
    top: 45%;
    left: 0
}

.r-overlay-preview .r-overlay-error {
    color: orange;
    font-size: 18px
}

.r-overlay-preview .x-frame-error {
    opacity: 0;
    transition: opacity .3s .3s
}

.r-overlay-preview[data-state=loaded] .x-frame-error {
    opacity: 1
}

.r-overlay-preview[data-state=loading] .r-overlay-spinner {
    opacity: .6;
    visibility: visible
}

.r-overlay-help .r-overlay-content {
    overflow: auto
}

.r-overlay-help-content {
    text-align: center;
    letter-spacing: normal;
    max-width: 560px;
    margin: auto;
    padding: 20px 0
}

.r-overlay-help-content .title {
    margin-top: 0;
    font-size: 20px
}

.r-overlay-help .r-overlay-help-content table {
    border-collapse: collapse;
    text-align: left;
    border: 1px solid #fff;
    font-size: 16px
}

.r-overlay-help .r-overlay-help-content table th,
.r-overlay-help .r-overlay-help-content table td {
    vertical-align: middle;
    border: 1px solid #fff;
    width: 240px;
    padding: 14px
}

.r-overlay-help .r-overlay-help-content table th {
    padding-top: 20px;
    padding-bottom: 20px
}

.reveal .playback {
    z-index: 30;
    cursor: pointer;
    -webkit-tap-highlight-color: #0000;
    transition: all .4s;
    position: absolute;
    bottom: 20px;
    left: 15px
}

.reveal.overview .playback {
    opacity: 0;
    visibility: hidden
}

.reveal .hljs {
    min-height: 100%
}

.reveal .hljs table {
    margin: initial
}

.reveal .hljs-ln-code,
.reveal .hljs-ln-numbers {
    border: 0;
    padding: 0
}

.reveal .hljs-ln-numbers {
    opacity: .6;
    text-align: right;
    vertical-align: top;
    padding-right: .75em
}

.reveal .hljs.has-highlights tr:not(.highlight-line) {
    opacity: .4
}

.reveal .hljs.has-highlights.fragment {
    transition: all .2s
}

.reveal .hljs:not(:first-child).fragment {
    box-sizing: border-box;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0
}

.reveal pre[data-auto-animate-target] {
    overflow: hidden
}

.reveal pre[data-auto-animate-target] code {
    height: 100%
}

.reveal .roll {
    vertical-align: top;
    perspective: 400px;
    perspective-origin: 50%;
    line-height: 1.2;
    display: inline-block;
    overflow: hidden
}

.reveal .roll:hover {
    text-shadow: none;
    background: 0 0
}

.reveal .roll span {
    pointer-events: none;
    transform-origin: 50% 0;
    transform-style: preserve-3d;
    backface-visibility: hidden;
    padding: 0 2px;
    transition: all .4s;
    display: block;
    position: relative
}

.reveal .roll:hover span {
    background: #00000080;
    transform: translateZ(-45px)rotateX(90deg)
}

.reveal .roll span:after {
    content: attr(data-title);
    backface-visibility: hidden;
    transform-origin: 50% 0;
    padding: 0 2px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(110%)rotateX(-90deg)
}

.reveal aside.notes {
    display: none
}

.reveal .speaker-notes {
    z-index: 1;
    color: #222;
    box-sizing: border-box;
    text-align: left;
    -webkit-overflow-scrolling: touch;
    background-color: #f5f5f5;
    border: 1px solid #0000000d;
    width: 33.3333%;
    height: 100%;
    padding: 14px 18px;
    font-family: Helvetica, sans-serif;
    font-size: 18px;
    line-height: 1.4;
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    overflow: auto
}

.reveal .speaker-notes .notes-placeholder {
    color: #ccc;
    font-style: italic
}

.reveal .speaker-notes:focus {
    outline: none
}

.reveal .speaker-notes:before {
    content: "Speaker notes";
    opacity: .5;
    margin-bottom: 10px;
    display: block
}

.reveal.show-notes {
    max-width: 75%;
    overflow: visible
}

.reveal.show-notes .speaker-notes {
    display: block
}

@media screen and (width>=1600px) {
    .reveal .speaker-notes {
        font-size: 20px
    }
}

@media screen and (width<=1024px) {
    .reveal.show-notes {
        border-left: 0;
        max-width: none;
        max-height: 70vh;
        overflow: visible
    }
    .reveal.show-notes .speaker-notes {
        border: 0;
        width: 100%;
        height: 30vh;
        top: 100%;
        left: 0
    }
}

@media screen and (width<=600px) {
    .reveal.show-notes {
        max-height: 60vh
    }
    .reveal.show-notes .speaker-notes {
        height: 40vh;
        top: 100%
    }
    .reveal .speaker-notes {
        font-size: 14px
    }
}

.reveal .jump-to-slide {
    z-index: 30;
    -webkit-tap-highlight-color: #0000;
    font-size: 32px;
    position: absolute;
    top: 15px;
    left: 15px
}

.reveal .jump-to-slide-input {
    font-size: inherit;
    color: currentColor;
    background: 0 0;
    border: 0;
    padding: 8px
}

.reveal .jump-to-slide-input::placeholder {
    color: currentColor;
    opacity: .5
}

.reveal.has-dark-background .jump-to-slide-input {
    color: #fff
}

.reveal.has-light-background .jump-to-slide-input {
    color: #222
}

.reveal .jump-to-slide-input:focus {
    outline: none
}

.reveal .r-overlay-button {
    all: unset;
    z-index: 30;
    cursor: pointer;
    -webkit-tap-highlight-color: #0000;
    appearance: none;
    color: #fff;
    background: #000000b3;
    border-radius: 5px;
    justify-content: center;
    align-items: center;
    padding: 10px;
    font-size: .4em;
    display: flex;
    position: absolute
}

.reveal .r-overlay-button:hover {
    background: #000000e6
}

.reveal.has-light-background .r-overlay-button {
    color: #222;
    background: #ffffffb3
}

.reveal.has-light-background .r-overlay-button:hover {
    background: #ffffffe6
}

.reveal .r-media-play-button {
    bottom: 20px;
    left: 15px
}

.zoomed .reveal *,
.zoomed .reveal :before,
.zoomed .reveal :after {
    backface-visibility: visible !important
}

.zoomed .reveal .progress,
.zoomed .reveal .controls {
    opacity: 0
}

.zoomed .reveal .roll span {
    background: 0 0
}

.zoomed .reveal .roll span:after,
.reveal-viewport.loading-scroll-mode {
    visibility: hidden
}

.reveal-viewport.reveal-scroll {
    z-index: 1;
    --r-scrollbar-width: 7px;
    --r-scrollbar-trigger-size: 5px;
    --r-controls-spacing: 8px;
    margin: 0 auto;
    overflow: hidden auto
}

@media screen and (width<=500px) {
    .reveal-viewport.reveal-scroll {
        --r-scrollbar-width: 3px;
        --r-scrollbar-trigger-size: 3px
    }
}

.reveal-viewport.reveal-scroll .controls,
.reveal-viewport.reveal-scroll .progress,
.reveal-viewport.reveal-scroll .playback,
.reveal-viewport.reveal-scroll .backgrounds,
.reveal-viewport.reveal-scroll .slide-number,
.reveal-viewport.reveal-scroll .speaker-notes {
    display: none !important
}

.reveal-viewport.reveal-scroll .r-overlay,
.reveal-viewport.reveal-scroll .pause-overlay,
.reveal-viewport.reveal-scroll .r-media-play-button {
    position: fixed
}

.reveal-viewport.reveal-scroll .reveal {
    touch-action: manipulation;
    overflow: visible
}

.reveal-viewport.reveal-scroll .slides {
    pointer-events: initial;
    perspective: none;
    perspective-origin: 50%;
    margin: 0;
    padding: 0;
    display: block;
    position: static;
    top: auto;
    left: auto;
    overflow: visible;
    width: 100% !important
}

.reveal-viewport.reveal-scroll .scroll-page {
    width: 100%;
    height: calc(var(--page-height) + var(--page-scroll-padding));
    z-index: 1;
    position: relative;
    overflow: visible
}

.reveal-viewport.reveal-scroll .scroll-page-sticky {
    height: var(--page-height);
    position: sticky;
    top: 0
}

.reveal-viewport.reveal-scroll .scroll-page-content {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden
}

.reveal-viewport.reveal-scroll .scroll-page section {
    visibility: visible !important;
    width: var(--slide-width) !important;
    height: var(--slide-height) !important;
    opacity: 1 !important;
    transform: scale(var(--slide-scale)) translate(-50%, -50%) !important;
    transform-style: flat !important;
    transform-origin: 0 0 !important;
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important
}

.reveal-viewport.reveal-scroll .slide-background {
    visibility: visible;
    opacity: 1;
    touch-action: manipulation;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: auto !important;
    display: block !important
}

.reveal-viewport.reveal-scroll[data-scrollbar=true]::-webkit-scrollbar {
    display: none
}

.reveal-viewport.reveal-scroll[data-scrollbar=auto]::-webkit-scrollbar {
    display: none
}

.reveal-viewport.reveal-scroll[data-scrollbar=true],
.reveal-viewport.reveal-scroll[data-scrollbar=auto] {
    scrollbar-width: none
}

.reveal.has-dark-background,
.reveal-viewport.has-dark-background {
    --r-overlay-element-bg-color: 240, 240, 240;
    --r-overlay-element-fg-color: 0, 0, 0
}

.reveal.has-light-background,
.reveal-viewport.has-light-background {
    --r-overlay-element-bg-color: 0, 0, 0;
    --r-overlay-element-fg-color: 240, 240, 240
}

.reveal-viewport.reveal-scroll .scrollbar {
    z-index: 20;
    opacity: 0;
    transition: all .3s;
    position: sticky;
    top: 50%
}

.reveal-viewport.reveal-scroll .scrollbar.visible,
.reveal-viewport.reveal-scroll .scrollbar:hover {
    opacity: 1
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-inner {
    width: var(--r-scrollbar-width);
    height: calc(var(--viewport-height) - var(--r-controls-spacing) * 2);
    right: var(--r-controls-spacing);
    border-radius: var(--r-scrollbar-width);
    z-index: 10;
    position: absolute;
    top: 0;
    transform: translateY(-50%)
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-playhead {
    width: var(--r-scrollbar-width);
    height: var(--r-scrollbar-width);
    border-radius: var(--r-scrollbar-width);
    background-color: rgba(var(--r-overlay-element-bg-color), 1);
    z-index: 11;
    transition: background-color .2s;
    position: absolute;
    top: 0;
    left: 0
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide {
    background-color: rgba(var(--r-overlay-element-bg-color), .2);
    width: 100%;
    box-shadow: 0 0 0 1px rgba(var(--r-overlay-element-fg-color), .1);
    border-radius: var(--r-scrollbar-width);
    transition: background-color .2s;
    position: absolute
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:after {
    content: "";
    z-index: -1;
    background: 0 0;
    width: 200%;
    height: 100%;
    position: absolute;
    top: 0;
    left: -50%
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:hover,
.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active {
    background-color: rgba(var(--r-overlay-element-bg-color), .4)
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-trigger {
    width: 100%;
    transition: background-color .2s;
    position: absolute
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active.has-triggers {
    background-color: rgba(var(--r-overlay-element-bg-color), .4);
    z-index: 10
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger:after {
    content: "";
    width: var(--r-scrollbar-trigger-size);
    height: var(--r-scrollbar-trigger-size);
    background-color: rgba(var(--r-overlay-element-bg-color), 1);
    opacity: .4;
    border-radius: 20px;
    transition: transform .2s, opacity .2s;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active:after,
.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active~.scrollbar-trigger:after {
    opacity: 1
}

.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger~.scrollbar-trigger.active:after {
    transform: translate(calc(var(--r-scrollbar-width) * -2));
    background-color: rgba(var(--r-overlay-element-bg-color), 1)
}

html.reveal-print * {
    -webkit-print-color-adjust: exact
}

html.reveal-print {
    width: 100%;
    height: 100%;
    overflow: visible
}

html.reveal-print body {
    border: 0;
    padding: 0;
    overflow: visible;
    float: none !important;
    margin: 0 auto !important
}

html.reveal-print .nestedarrow,
html.reveal-print .reveal .controls,
html.reveal-print .reveal .progress,
html.reveal-print .reveal .playback,
html.reveal-print .reveal.overview,
html.reveal-print .state-background {
    display: none !important
}

html.reveal-print .reveal pre code {
    overflow: hidden !important
}

html.reveal-print .reveal {
    width: auto !important;
    height: auto !important;
    overflow: hidden !important
}

html.reveal-print .reveal .slides {
    pointer-events: initial;
    perspective: none;
    perspective-origin: 50%;
    display: block;
    position: static;
    top: auto;
    left: auto;
    overflow: visible;
    zoom: 1 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important
}

html.reveal-print .reveal .slides .pdf-page {
    z-index: 1;
    page-break-after: always;
    position: relative;
    overflow: hidden
}

html.reveal-print .reveal .slides .pdf-page:last-of-type {
    page-break-after: avoid
}

html.reveal-print .reveal .slides section {
    min-height: 1px;
    visibility: visible !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    transform-style: flat !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    position: absolute !important;
    transform: none !important
}

html.reveal-print .reveal section.stack {
    page-break-after: avoid !important;
    height: auto !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important
}

html.reveal-print .reveal img {
    box-shadow: none
}

html.reveal-print .reveal .backgrounds {
    display: none
}

html.reveal-print .reveal .slide-background {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: auto !important;
    display: block !important
}

html.reveal-print .reveal.show-notes {
    max-width: none;
    max-height: none
}

html.reveal-print .reveal .speaker-notes-pdf {
    z-index: 100;
    width: 100%;
    height: auto;
    max-height: none;
    display: block;
    inset: auto
}

html.reveal-print .reveal .speaker-notes-pdf[data-layout=separate-page] {
    color: inherit;
    page-break-after: always;
    background-color: #0000;
    border: 0;
    padding: 20px;
    position: relative
}

html.reveal-print .reveal .slide-number-pdf {
    visibility: visible;
    font-size: 14px;
    display: block;
    position: absolute
}

html.reveal-print .aria-status {
    display: none
}

@media print {
    html:not(.print-pdf) {
        width: auto;
        height: auto;
        overflow: visible
    }
    html:not(.print-pdf) body {
        margin: 0;
        padding: 0;
        overflow: visible
    }
    html:not(.print-pdf) .reveal {
        background: #fff;
        font-size: 20pt
    }
    html:not(.print-pdf) .reveal .controls,
    html:not(.print-pdf) .reveal .state-background,
    html:not(.print-pdf) .reveal .progress,
    html:not(.print-pdf) .reveal .backgrounds,
    html:not(.print-pdf) .reveal .slide-number {
        display: none !important
    }
    html:not(.print-pdf) .reveal p,
    html:not(.print-pdf) .reveal td,
    html:not(.print-pdf) .reveal li {
        color: #000;
        font-size: 20pt !important
    }
    html:not(.print-pdf) .reveal h1,
    html:not(.print-pdf) .reveal h2,
    html:not(.print-pdf) .reveal h3,
    html:not(.print-pdf) .reveal h4,
    html:not(.print-pdf) .reveal h5,
    html:not(.print-pdf) .reveal h6 {
        text-align: left;
        letter-spacing: normal;
        height: auto;
        line-height: normal;
        color: #000 !important
    }
    html:not(.print-pdf) .reveal h1 {
        font-size: 28pt !important
    }
    html:not(.print-pdf) .reveal h2 {
        font-size: 24pt !important
    }
    html:not(.print-pdf) .reveal h3 {
        font-size: 22pt !important
    }
    html:not(.print-pdf) .reveal h4 {
        font-variant: small-caps;
        font-size: 22pt !important
    }
    html:not(.print-pdf) .reveal h5 {
        font-size: 21pt !important
    }
    html:not(.print-pdf) .reveal h6 {
        font-style: italic;
        font-size: 20pt !important
    }
    html:not(.print-pdf) .reveal a:link,
    html:not(.print-pdf) .reveal a:visited {
        font-weight: 700;
        text-decoration: underline;
        color: #000 !important
    }
    html:not(.print-pdf) .reveal ul,
    html:not(.print-pdf) .reveal ol,
    html:not(.print-pdf) .reveal div,
    html:not(.print-pdf) .reveal p {
        visibility: visible;
        width: auto;
        height: auto;
        margin: 0;
        display: block;
        position: static;
        overflow: visible;
        text-align: left !important
    }
    html:not(.print-pdf) .reveal pre,
    html:not(.print-pdf) .reveal table {
        margin-left: 0;
        margin-right: 0
    }
    html:not(.print-pdf) .reveal pre code {
        padding: 20px
    }
    html:not(.print-pdf) .reveal blockquote {
        margin: 20px 0
    }
    html:not(.print-pdf) .reveal .slides {
        perspective: none;
        perspective-origin: 50%;
        zoom: 1 !important;
        text-align: left !important;
        width: auto !important;
        height: auto !important;
        margin-top: 0 !important;
        margin-left: 0 !important;
        padding: 0 !important;
        display: block !important;
        position: static !important;
        top: 0 !important;
        left: 0 !important;
        overflow: visible !important;
        transform: none !important
    }
    html:not(.print-pdf) .reveal .slides section {
        visibility: visible !important;
        z-index: auto !important;
        opacity: 1 !important;
        page-break-after: always !important;
        transform-style: flat !important;
        width: auto !important;
        height: auto !important;
        margin-top: 0 !important;
        margin-left: 0 !important;
        padding: 60px 20px !important;
        transition: none !important;
        display: block !important;
        position: static !important;
        top: 0 !important;
        left: 0 !important;
        overflow: visible !important;
        transform: none !important
    }
    html:not(.print-pdf) .reveal .slides section.stack {
        padding: 0 !important
    }
    html:not(.print-pdf) .reveal .slides section:last-of-type {
        page-break-after: avoid !important
    }
    html:not(.print-pdf) .reveal .slides section .fragment {
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important
    }
    html:not(.print-pdf) .reveal .r-fit-text {
        white-space: normal !important
    }
    html:not(.print-pdf) .reveal section img {
        box-shadow: none;
        background: #fff;
        border: 1px solid #666;
        margin: 15px 0;
        display: block
    }
    html:not(.print-pdf) .reveal section small {
        font-size: .8em
    }
    html:not(.print-pdf) .reveal .hljs {
        white-space: pre-wrap;
        word-wrap: break-word;
        word-break: break-word;
        max-height: 100%;
        font-size: 15pt
    }
    html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers {
        white-space: nowrap
    }
    html:not(.print-pdf) .reveal .hljs td {
        font-size: inherit !important;
        color: inherit !important
    }
}

@font-face {
    font-family: Overused Grotesk;
    font-style: normal;
    font-weight: 400;
    font-display: optional;
    src: url(OverusedGrotesk-Roman.CjlVX8Oq.woff2) format("woff2")
}

@font-face {
    font-family: Overused Grotesk;
    font-style: normal;
    font-weight: 500;
    font-display: optional;
    src: url(OverusedGrotesk-Medium.Dd_veWuy.woff2) format("woff2")
}

@font-face {
    font-family: Overused Grotesk;
    font-style: normal;
    font-weight: 600;
    font-display: optional;
    src: url(OverusedGrotesk-SemiBold.4t51KWdX.woff2) format("woff2")
}

@font-face {
    font-family: JetBrains Mono;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2")
}

@font-face {
    font-family: JetBrains Mono;
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(jetbrains-mono-latin-700-normal.BYuf6tUa.woff2) format("woff2")
}

:root {
    color-scheme: dark;
    font-family: Overused Grotesk, Inter, Helvetica Neue, Arial, sans-serif;
    --bg: #000;
    --panel: rgb(5 5 10 / 94%);
    --line: rgb(134 143 162 / 22%);
    --muted: #8b8f9e;
    --text: #d8dce8;
    --accent: #eef2ff;
    --mono-font: "JetBrains Mono", "Courier New", monospace;
    --header-height-desktop: 4.25rem;
    --footer-height-desktop: 4.25rem;
    --header-height-mobile: 3.625rem;
    --footer-height-mobile: 3.75rem;
    --transition-wheel: .68s;
    --transition-horizontal: 1.15s;
    --transition-vertical: 1.3s;
    --transition-vertical-move: 1.18s;
    --transition-vertical-enter-delay: .12s;
    --transition-partners-products-fade-delay: .68s;
    --transition-partners-products-fade: .54s;
    --transition-stars-fade-in: .12s;
    --transition-stars-fade-out: .52s
}

#preloader {
    position: fixed;
    inset: 0;
    z-index: 50;
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center
}

#preloader-logo-glow {
    position: absolute;
    width: 32rem;
    height: 32rem;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgb(210 220 255 / 5%) 0%, transparent 68%);
    pointer-events: none;
    opacity: 0;
    will-change: opacity, transform
}

#preloader-logo-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    will-change: transform, opacity
}

#preloader-logo-wrap img {
    display: block;
    width: clamp(17.5rem, 36vw, 32rem);
    height: auto
}

html[data-loading],
html[data-loading] body {
    overflow: hidden
}

html[data-loading] .site-header .logo-link,
html[data-loading] .sound-toggle,
html[data-loading] .site-footer,
html[data-loading] .reveal {
    opacity: 0;
    pointer-events: none
}

* {
    box-sizing: border-box;
    -ms-overflow-style: none;
    scrollbar-width: none
}

*::-webkit-scrollbar {
    display: none;
    width: 0
}

html {
    background: #000;
    font-size: calc(-.0022rem + 1.1136vw)
}

@media screen and (width<=1440px) {
    html {
        font-size: calc(-.0022rem + 1.1136vw)
    }
}

@media screen and (width<=991px) {
    html {
        font-size: 1rem
    }
}

@media screen and (width<=767px) {
    html {
        font-size: 1rem
    }
}

@media screen and (width<=479px) {
    html {
        font-size: 1rem
    }
}

body {
    margin: 0;
    overflow: hidden;
    background: #000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility
}

body:before {
    display: none
}

[data-typewriter] .typewriter-word {
    display: inline-block;
    white-space: nowrap
}

[data-typewriter] .typewriter-letter {
    opacity: 0;
    animation: typewriter-letter-fade-in .22s ease-out both
}

[data-typewriter].is-typed .typewriter-letter {
    opacity: 1;
    animation: none
}

.site-header,
.site-footer {
    position: fixed;
    right: 0;
    left: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    padding: 1.25rem
}

.site-header {
    top: 0;
    justify-content: center;
    height: var(--header-height-desktop)
}

.site-footer {
    bottom: 0;
    height: var(--footer-height-desktop)
}

.logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center
}

.logo-link img,
.logo-link svg {
    display: block;
    width: 13.75rem;
    height: auto
}

.sound-toggle {
    position: absolute !important;
    left: 1.25rem;
    width: 8.125rem
}

.sound-toggle-icon {
    display: none
}

.footer-nav {
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
    gap: .625rem;
    align-items: center;
    user-select: none
}

.footer-nav a {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 0;
    color: #dde1ecad;
    font-weight: 400;
    font-family: var(--mono-font);
    font-size: .875rem;
    letter-spacing: .1em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap
}

.footer-nav a span {
    display: inline-block;
    transform-origin: center
}

.footer-nav.is-ready a {
    transition: color .3s ease-out, font-size .3s ease-out
}

.footer-nav.is-ready a span {
    transition: transform .3s ease-out
}

.footer-nav a:after {
    flex: 1;
    height: .0625rem;
    min-width: 1.5rem;
    margin-left: .875rem;
    background: var(--line);
    content: ""
}

.footer-nav a:last-child:after {
    display: none
}

.footer-nav a:last-child {
    justify-content: flex-end
}

.button {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 999rem;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    border: 0;
    cursor: pointer;
    overflow: hidden;
    transition: box-shadow .28s ease-out, background-color .16s ease-out, color .2s ease-out, scale .22s cubic-bezier(.34, 1.56, .64, 1), filter .28s ease-out, outline-color .2s ease-out
}

.primary-button {
    background: #fff;
    box-shadow: 0 .321rem .321rem #4d576a14;
    color: #040404;
    font-weight: 500;
    line-height: 100%;
    gap: .5625rem
}

.primary-button:before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(105deg, #fff0 20%, #ffffff73, #fff0 80%);
    transform: translate(-140%) skew(-8deg);
    pointer-events: none
}

.primary-button.default {
    font-size: 1.25rem;
    height: 3rem;
    padding: .875rem 1.5rem
}

.primary-button.big {
    font-size: 1.875rem;
    height: 4.375rem;
    padding: 1.25rem 2.25rem
}

.secondary-button {
    height: 2.75rem;
    padding: .875rem 1.25rem;
    color: #dee3efb8;
    font-family: var(--mono-font);
    font-size: 1rem;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: -.03rem;
    text-transform: uppercase;
    background: #ffffff1a;
    backdrop-filter: blur(.625rem)
}

.primary-button:focus-visible {
    box-shadow: 0 0 0 .0625rem #ffffff7f, 0 .125rem .875rem #fff6, 0 1.25rem 3.75rem #0009
}

@media(hover:hover)and (pointer:fine) {
    .footer-nav a:hover {
        color: var(--accent)
    }
    .primary-button:hover {
        box-shadow: 0 0 0 .0625rem #ffffff4d, 0 .125rem .625rem #ffffff47, 0 .5rem 2rem #ffffff1a, 0 2rem 5rem -.5rem #0000008c;
        scale: 1.04;
        filter: brightness(1.03)
    }
    .primary-button:hover:before {
        transform: translate(140%) skew(-8deg);
        transition: transform 1.1s cubic-bezier(.37, .13, .27, .95)
    }
    .primary-button:active {
        background: #d6d6d6;
        box-shadow: 0 0 0 .0625rem #ffffff1a, inset 0 .0625rem .25rem #00000024;
        scale: .96;
        filter: brightness(.98);
        transition: box-shadow 80ms ease-out, background-color 80ms ease-out, scale 80ms ease-out, filter 80ms ease-out
    }
    .secondary-button:hover {
        background: #ffffff2b;
        box-shadow: 0 0 0 .0625rem #ffffff47, 0 .25rem 1.5rem #ffffff0f;
        backdrop-filter: blur(1rem);
        color: #dee3efeb;
        scale: 1.03
    }
    .secondary-button:active {
        background: #ffffff14;
        box-shadow: 0 0 0 .0625rem #ffffff1f;
        backdrop-filter: blur(.5rem);
        color: #dee3ef8c;
        scale: .96;
        transition: box-shadow 80ms ease-out, background-color 80ms ease-out, scale 80ms ease-out, color 80ms ease-out, filter 80ms ease-out
    }
}

@keyframes typewriter-letter-fade-in {
    0% {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

.footer-nav a.is-active {
    color: #fff;
    font-size: clamp(1.25rem, 2vw, 1.75rem)
}

.footer-nav a.is-active span {
    transform: translateY(-.42em)
}

@media(width<=760px) {
    .site-footer {
        height: var(--footer-height-mobile);
        padding: .875rem 1.25rem
    }
    .site-header {
        height: var(--header-height-mobile)
    }
    .sound-toggle {
        left: 1.25rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 3.75rem;
        height: 2.4375rem;
        padding: 0;
        border-radius: 99px
    }
    .sound-toggle-label {
        display: none
    }
    .sound-toggle-icon {
        width: 1.375rem;
        height: 1.375rem
    }
    .sound-toggle[aria-pressed=true] .sound-toggle-icon-on,
    .sound-toggle[aria-pressed=false] .sound-toggle-icon-off {
        display: block
    }
    #preloader-logo-wrap img {
        width: clamp(13rem, 68vw, 18rem)
    }
    .logo-link img {
        width: 8.25rem
    }
    .footer-nav {
        display: flex;
        gap: 1.125rem;
        overflow-x: auto;
        padding-bottom: .125rem
    }
    .footer-nav a {
        flex: 0 0 auto;
        font-size: 1.25rem
    }
    .footer-nav a span {
        transform: scale(.62)
    }
    .footer-nav a.is-active span {
        transform: scale(1)
    }
    .footer-nav a:after {
        width: 2.125rem;
        flex: 0 0 2.125rem
    }
    .primary-button.default {
        height: 2.5rem;
        font-size: 1rem;
        padding: .75rem 1.125rem
    }
    .primary-button.big {
        height: 3.5rem;
        font-size: 1.5rem;
        padding: 1rem 1.875rem
    }
    .secondary-button {
        height: 2.125rem;
        padding: 0 .75rem;
        font-size: .75rem
    }
}

#star-canvas {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 0;
    visibility: visible;
    pointer-events: none;
    background-color: transparent;
    opacity: 1;
    transition: opacity var(--transition-stars-fade-in) ease-out, visibility 0s linear 0s
}

#star-canvas.stars-hidden {
    visibility: hidden;
    opacity: 0;
    transition: opacity var(--transition-stars-fade-out) ease-out, visibility 0s linear var(--transition-stars-fade-out)
}

.slide:before {
    position: absolute;
    inset: 0;
    z-index: 0;
    content: "";
    pointer-events: none
}

.stars-slide:before {
    position: absolute;
    inset: 0;
    z-index: 0;
    content: "";
    pointer-events: none;
    opacity: 1
}

.stars-slide:after {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 0;
    width: 41rem;
    height: 41rem;
    border-radius: 41rem;
    aspect-ratio: 1 / 1;
    background: radial-gradient(50% 50% at 50% 50%, #000c, #0000);
    content: "";
    pointer-events: none;
    transform: translate(-50%, -50%)
}

.reveal .slides section.slide-out-fwd-center.stars-slide:before,
.reveal .slides section.slide-out-fwd-center.stars-slide:after {
    opacity: 0
}

.reveal {
    position: relative;
    z-index: 1;
    height: 100vh;
    color: var(--text);
    background: transparent
}

.reveal-viewport,
.scroll-page,
.scroll-page-sticky,
.scroll-page-content {
    background: transparent !important
}

.slides {
    width: 100vw !important;
    height: 100dvh !important
}

.reveal .slides {
    perspective: 75rem;
    text-align: left
}

.reveal .slides section {
    height: 100%;
    padding: 0
}

.slide {
    overflow: hidden;
    background: transparent
}

.reveal .slides section.slide-in-fwd-center,
.reveal .slides section.slide-out-fwd-center,
.reveal .slides section.slide-in-bottom,
.reveal .slides section.slide-out-top,
.reveal .slides section.slide-in-top,
.reveal .slides section.slide-out-bottom,
.reveal .slides section.slide-in-fade,
.reveal .slides section.slide-out-fade,
.reveal .slides section.slide-in-fade-after {
    display: block !important;
    visibility: visible !important;
    pointer-events: none;
    backface-visibility: hidden;
    will-change: opacity, transform
}

.reveal .slides section.slide-in-fwd-center {
    z-index: 13
}

.reveal .slides section.slide-out-fwd-center {
    z-index: 12
}

.reveal .slides section.slide-in-bottom,
.reveal .slides section.slide-in-top {
    z-index: 13
}

.reveal .slides section.slide-out-top,
.reveal .slides section.slide-out-bottom {
    z-index: 12
}

.reveal .slides section.slide-out-fade {
    z-index: 12;
    animation: slide-out-fade .36s ease-out both
}

.reveal .slides section.slide-in-fade {
    z-index: 13;
    animation: slide-in-fade var(--transition-wheel) cubic-bezier(.16, 1, .3, 1) both
}

.reveal .slides section.slide-in-fade-after {
    z-index: 13;
    animation: slide-in-fade var(--transition-partners-products-fade) cubic-bezier(.16, 1, .3, 1) var(--transition-partners-products-fade-delay) both
}

.reveal .slides section.slide-in-bottom {
    animation: slide-in-bottom var(--transition-vertical-move) cubic-bezier(.19, 1, .22, 1) var(--transition-vertical-enter-delay) both
}

.reveal .slides section.slide-out-top {
    animation: slide-out-top var(--transition-vertical-move) cubic-bezier(.45, 0, .2, 1) both
}

.reveal .slides section.slide-in-top {
    animation: slide-in-top var(--transition-vertical-move) cubic-bezier(.19, 1, .22, 1) var(--transition-vertical-enter-delay) both
}

.reveal .slides section.slide-out-bottom {
    animation: slide-out-bottom var(--transition-vertical-move) cubic-bezier(.45, 0, .2, 1) both
}

.slide-inner {
    position: relative;
    display: flex;
    min-height: 100%;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    padding: 7.5rem 8vw 7.375rem
}

.stars-slide-inner {
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    backface-visibility: hidden
}

.hero-content {
    align-items: center;
    text-align: center;
    gap: 1.25rem
}

.eyebrow,
.hero-content h1 {
    margin: 0;
    font-size: 7.3125rem;
    font-style: normal;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: .94;
    padding-block: .06em .12em;
    text-align: center;
    color: #adb5c2;
    text-shadow: -.0688rem 0 rgb(184 143 151 / 45%), .0688rem 0 rgb(134 163 188 / 45%)
}

h2.eyebrow {
    font-size: 6.25rem
}

h3.eyebrow {
    font-size: 4.375rem
}

.subtitle,
.scroll-hint {
    font-family: var(--mono-font);
    text-transform: uppercase
}

.text-content {
    display: flex;
    flex-direction: column;
    gap: 1.25rem
}

.subtitle {
    color: #e2e7f2e0;
    font-size: clamp(.75rem, 1.25vw, 1.0625rem);
    letter-spacing: .08em
}

.scroll-hint {
    margin: 3.875rem 0 0;
    color: #ffffff7f;
    text-align: center;
    font-weight: 400;
    text-transform: uppercase;
    font-size: .875rem;
    letter-spacing: .72em
}

.worldwide {
    letter-spacing: .615rem
}

@media(width<=760px) {
    .hero-content {
        gap: .5rem
    }
    .reveal {
        height: 100dvh
    }
    .slide-inner {
        padding: 5.75rem 1.875rem
    }
    .hero-slide .slide-inner {
        justify-content: flex-start;
        padding-top: 26dvh
    }
    h1.eyebrow {
        max-width: none;
        font-size: clamp(2.25rem, calc((100vw - 3.75rem) / 6), 3.5625rem);
        letter-spacing: -.04em;
        line-height: .86;
        white-space: nowrap
    }
    h2.eyebrow,
    h3.eyebrow {
        font-size: 2.625rem
    }
    .subtitle {
        max-width: 20.625rem;
        font-size: 1rem;
        line-height: 1.45;
        letter-spacing: -.01rem
    }
    .worldwide {
        letter-spacing: inherit
    }
    .scroll-hint {
        position: absolute;
        font-size: .625rem;
        white-space: nowrap;
        bottom: 9.75rem;
        left: 50%;
        transform: translate(-50%)
    }
}

@keyframes slide-in-bottom {
    0% {
        opacity: 0;
        transform: translate3d(0, 22vh, 0)
    }
    to {
        opacity: 1;
        transform: translateZ(0)
    }
}

@keyframes slide-out-top {
    0% {
        opacity: 1;
        transform: translateZ(0)
    }
    to {
        opacity: 0;
        transform: translate3d(0, -22vh, 0)
    }
}

@keyframes slide-in-top {
    0% {
        opacity: 0;
        transform: translate3d(0, -22vh, 0)
    }
    to {
        opacity: 1;
        transform: translateZ(0)
    }
}

@keyframes slide-out-bottom {
    0% {
        opacity: 1;
        transform: translateZ(0)
    }
    to {
        opacity: 0;
        transform: translate3d(0, 22vh, 0)
    }
}

@keyframes slide-in-fade {
    0% {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

@keyframes slide-out-fade {
    0% {
        opacity: 1
    }
    to {
        opacity: 0
    }
}

.mission-content {
    justify-content: center;
    max-width: 71.25rem;
    min-height: 1lh;
    align-self: center;
    gap: 1.25rem
}

.mission-content p {
    color: #b5c0ca;
    font-size: 2.4375rem;
    font-weight: 600;
    line-height: 110%;
    letter-spacing: -.025rem;
    margin: 0;
    text-align: left
}

.mission-content p:last-child {
    min-height: 2.625rem
}

@media(width<=760px) {
    .mission-content p {
        max-width: 20.625rem;
        font-size: 1.875rem;
        letter-spacing: -.0187rem
    }
}

.partners-content {
    --partners-copy-delay: .48s;
    --partners-copy-duration: .72s;
    --partners-copy-rise: -7.125rem;
    --partners-panel-fade-delay: 1.08s;
    --partners-panel-fade-duration: .2s;
    --partners-panel-delay: 1.18s;
    --partners-panel-duration: .84s;
    --partners-content-delay: 1.42s;
    --partners-content-duration: .48s;
    --partners-settle-duration: .32s;
    --partners-panel-strip-width: 1.125rem;
    --partners-panel-width: min(47.5rem, calc(100vw - 4.5rem));
    --partners-panel-height: 7.875rem;
    --partners-panel-half-height: 3.9375rem;
    position: relative;
    align-items: center
}

.partners-hero-copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.375rem
}

.partners-hero-copy .eyebrow {
    margin-top: -.375rem;
    margin-bottom: .25rem
}

.partners-showcase-frame {
    --partners-frame-offset-y: 5.375rem;
    --partners-frame-center-y: calc( var(--partners-frame-offset-y) + var(--partners-panel-half-height));
    position: absolute;
    top: calc(50% + var(--partners-frame-center-y));
    left: 50%;
    width: var(--partners-panel-strip-width);
    height: var(--partners-panel-height);
    opacity: 0;
    transform: translate(-50%, -50%);
    transform-origin: 50% 50%;
    contain: layout;
    will-change: width, opacity
}

.partners-showcase {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    user-select: none;
    border: .0625rem solid rgb(226 231 242 / 38%);
    padding-top: 1.5rem
}

.partners-showcase:before,
.partners-showcase:after {
    position: absolute;
    top: 0;
    z-index: 1;
    width: 4.375rem;
    height: 100%;
    background: linear-gradient(270deg, #0000, #000);
    content: "";
    opacity: 0;
    pointer-events: none
}

.partners-showcase:before {
    left: 0
}

.partners-showcase:after {
    right: 0;
    transform: rotate(180deg)
}

.partners-node {
    position: absolute;
    z-index: 2;
    width: .5rem;
    height: .5rem;
    border: .0625rem solid #040409;
    background: #c5ccdc;
    opacity: 1
}

.partners-node-top-left {
    top: -.25rem;
    left: -.25rem
}

.partners-node-top-right {
    top: -.25rem;
    right: -.25rem
}

.partners-node-bottom-left {
    bottom: -.25rem;
    left: -.25rem
}

.partners-node-bottom-right {
    right: -.25rem;
    bottom: -.25rem
}

.partners-label {
    position: absolute;
    top: 1.5rem;
    left: 50%;
    margin: 0;
    color: #e2e7f257;
    font-family: var(--mono-font);
    font-weight: 400;
    font-size: .875rem;
    letter-spacing: .0875rem;
    text-transform: uppercase;
    opacity: 0;
    transform: translate(-50%, .5rem);
    white-space: nowrap
}

.partners-logos-viewport {
    --partners-logo-gap: 3rem;
    flex: 0 0 var(--partners-panel-width);
    width: var(--partners-panel-width);
    margin: .5rem 0 0;
    opacity: 0;
    transform: translateY(.625rem)
}

.partners-logos-track {
    display: flex;
    width: max-content;
    align-items: center;
    height: 3.75rem;
    margin: 0;
    padding: 0;
    animation: partners-logos-scroll 24s linear infinite;
    will-change: transform
}

.partners-logos {
    display: flex;
    align-items: center;
    gap: var(--partners-logo-gap);
    margin: 0;
    padding: 0 var(--partners-logo-gap) 0 0;
    list-style: none
}

.partner-logo {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center
}

.partner-logo img {
    display: block;
    width: min(var(--partner-logo-width), 8.5rem);
    max-width: none;
    height: auto;
    object-fit: contain
}

#partners.partners-open .partners-hero-copy,
#partners.partners-leaving .partners-hero-copy {
    transform: translateY(var(--partners-copy-rise));
    transition: transform var(--partners-copy-duration) cubic-bezier(.16, 1, .3, 1) var(--partners-copy-delay)
}

#partners.partners-open .partners-showcase-frame,
#partners.partners-leaving .partners-showcase-frame {
    width: var(--partners-panel-width);
    opacity: 1;
    transition: opacity var(--partners-panel-fade-duration) ease-out var(--partners-panel-fade-delay), width var(--partners-panel-duration) cubic-bezier(.16, 1, .3, 1) var(--partners-panel-delay)
}

#partners.partners-open .partners-showcase:before,
#partners.partners-open .partners-showcase:after,
#partners.partners-leaving .partners-showcase:before,
#partners.partners-leaving .partners-showcase:after {
    opacity: 1;
    transition: opacity var(--partners-content-duration) ease-out var(--partners-content-delay)
}

#partners.partners-open .partners-label,
#partners.partners-leaving .partners-label {
    opacity: 1;
    transform: translate(-50%);
    transition: opacity var(--partners-content-duration) ease-out var(--partners-content-delay), transform var(--partners-content-duration) ease-out var(--partners-content-delay)
}

#partners.partners-open .partners-logos-viewport,
#partners.partners-leaving .partners-logos-viewport {
    opacity: 1;
    transform: translateY(0);
    transition: opacity var(--partners-content-duration) ease-out var(--partners-content-delay), transform var(--partners-content-duration) ease-out var(--partners-content-delay)
}

#partners:is(.partners-leaving, .partners-settle) :is(.partners-hero-copy, .partners-showcase-frame, .partners-label, .partners-logos-viewport),
#partners:is(.partners-leaving, .partners-settle) .partners-showcase:before,
#partners:is(.partners-leaving, .partners-settle) .partners-showcase:after {
    transition-delay: 0ms;
    transition-duration: var(--partners-settle-duration)
}

#partners.partners-open:not(.present, .partners-leaving) {
    visibility: hidden
}

#partners.partners-leaving {
    visibility: visible !important
}

@media(width<=760px) {
    .partners-content {
        --partners-copy-rise: -6rem
    }
    .partners-label {
        font-size: .625rem;
        letter-spacing: .0625rem
    }
    .partners-showcase-frame {
        --partners-frame-offset-y: 2rem;
        --partners-panel-strip-width: 1rem;
        --partners-panel-width: min(47.5rem, calc(100vw - 2.75rem));
        --partners-panel-height: 6.6875rem;
        --partners-panel-half-height: 3.3438rem;
        width: var(--partners-panel-strip-width);
        max-width: calc(100vw - 2.75rem);
        height: var(--partners-panel-height)
    }
    .partners-showcase:before,
    .partners-showcase:after {
        width: 2.75rem;
        height: 8.25rem
    }
    .partners-logos-viewport {
        --partners-logo-gap: 2.125rem
    }
    .partner-logo img {
        width: min(var(--partner-logo-width), 7rem)
    }
}

@keyframes partners-logos-scroll {
    0% {
        transform: translate(0)
    }
    to {
        transform: translate(-33.3333%)
    }
}

.product-content {
    position: relative;
    justify-content: center;
    align-items: center;
    padding-right: 6.4vw;
    padding-left: 6.4vw;
    perspective: 75rem;
    transform-style: preserve-3d;
    margin: auto 3rem
}

.product-card {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    display: flex;
    width: min(84rem, 100%);
    gap: 1.25rem;
    align-items: flex-start;
    background: var(--bg);
    opacity: 0;
    pointer-events: none;
    transform: translate3d(-50%, -50%, 0);
    transform-style: preserve-3d;
    backface-visibility: hidden;
    will-change: opacity, transform
}

.product-card:after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background: #000;
    opacity: var(--card-dim, 0);
    pointer-events: none
}

.product-copy,
.product-visual-image {
    filter: blur(var(--card-blur, 0));
    will-change: filter
}

.product-copy {
    display: flex;
    flex: 1 0 0;
    align-self: stretch;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1.25rem;
    padding: clamp(1.375rem, 2.1vw, 1.875rem) clamp(1.375rem, 2.1vw, 1.875rem) clamp(1.375rem, 2.1vw, 1.875rem) 0;
    border-top: .0625rem solid rgb(255 255 255 / 12%);
    border-bottom: .0625rem solid rgb(255 255 255 / 12%)
}

.product-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    gap: 1.25rem
}

.product-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: #fff;
    font-size: 2.625rem;
    font-style: normal;
    font-weight: 500;
    font-feature-settings: "ss01" on;
    line-height: 100%;
    letter-spacing: -.0788rem
}

.product-heading img {
    display: block;
    width: clamp(2.375rem, 3.35vw, 3rem);
    height: clamp(2.375rem, 3.35vw, 3rem)
}

.product-heading h2,
.product-info h3,
.product-info p {
    margin: 0
}

.product-heading h2 {
    font: inherit;
    letter-spacing: inherit
}

.product-link {
    align-self: center
}

.product-link.primary-button.default {
    height: clamp(2.5rem, 3.35vw, 3rem);
    padding: clamp(.6875rem, 1vw, .875rem) clamp(1.125rem, 1.7vw, 1.5rem);
    font-size: clamp(1rem, 1.4vw, 1.25rem)
}

.product-link.primary-button:hover {
    box-shadow: 0 0 0 .0625rem #fff3, 0 .125rem .5rem #fff3, 0 .321rem .321rem #4d576a14;
    scale: 1.03
}

.product-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(.875rem, 1.4vw, 1.25rem);
    align-self: stretch
}

.product-tags {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(.375rem, .56vw, .5rem);
    margin: 0;
    padding: 0;
    list-style: none
}

.product-tags li {
    display: flex;
    align-items: center;
    gap: 3.125rem;
    padding: clamp(.25rem, .42vw, .375rem) clamp(.4375rem, .7vw, .625rem);
    border-radius: .375rem;
    color: #fff;
    font-family: var(--mono-font);
    font-size: clamp(.6875rem, 1vw, .875rem);
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: -.0262rem;
    text-align: center;
    text-transform: uppercase;
    background: #ffffff24
}

.product-info h3 {
    color: #fff;
    font-size: clamp(2.125rem, 3.45vw, 3.125rem);
    font-style: normal;
    font-weight: 500;
    font-feature-settings: "ss09" on;
    line-height: 90%;
    letter-spacing: -.0313rem
}

.product-info p {
    max-width: 40.625rem;
    color: #fff;
    font-size: clamp(1.0625rem, 1.67vw, 1.5rem);
    font-style: normal;
    font-weight: 400;
    font-feature-settings: "ss09" on;
    line-height: 130%;
    letter-spacing: -.015rem
}

.product-visual {
    width: min(41.5rem, 49.405%);
    aspect-ratio: 664 / 500;
    flex-shrink: 0;
    overflow: hidden
}

.product-visual-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain
}

@media(width<=1180px) {
    .product-card {
        align-items: stretch
    }
}

@media(width<=1000px) {
    .product-content {
        padding-right: 3.2vw;
        padding-left: 3.2vw;
        margin: auto 1.5rem
    }
    .product-card {
        gap: 1rem
    }
    .product-copy {
        gap: 1rem;
        padding: 1.125rem 1.125rem 1.125rem 0
    }
    .product-header {
        gap: .875rem
    }
    .product-heading {
        gap: .5rem;
        font-size: 1.875rem;
        letter-spacing: -.0563rem
    }
    .product-heading img {
        width: 2.125rem;
        height: 2.125rem
    }
    .product-link.primary-button.default {
        height: 2.375rem;
        padding: .625rem 1rem;
        font-size: .9375rem
    }
    .product-info {
        gap: .75rem
    }
    .product-info h3 {
        font-size: 1.5rem;
        line-height: .95;
        letter-spacing: -.0187rem
    }
    .product-info p {
        font-size: 1rem;
        line-height: 135%;
        letter-spacing: -.01rem
    }
    .product-tags li {
        padding: .25rem .5rem;
        font-size: .6875rem
    }
    .product-visual {
        width: min(25rem, 44%)
    }
}

@media(width<=820px) {
    .reveal .slides section.product-slide {
        overflow: hidden auto;
        overscroll-behavior-y: contain;
        height: calc(100dvh - var(--header-height-mobile) - var(--footer-height-mobile));
        top: var(--header-height-mobile);
        mask-image: linear-gradient(to bottom, transparent, #000 3rem, #000 calc(100% - 3rem), transparent)
    }
    .product-content {
        min-height: 100%;
        height: auto;
        gap: 1.875rem;
        align-items: stretch;
        justify-content: flex-start;
        padding: 0 1rem 4rem;
        perspective: none;
        transform-style: flat;
        margin: 0;
        max-width: 31.25rem;
        justify-self: center
    }
    .product-card {
        position: relative;
        top: auto !important;
        left: auto !important;
        z-index: auto !important;
        width: 100%;
        flex-direction: column;
        gap: 1.5rem;
        opacity: 1 !important;
        pointer-events: auto !important;
        filter: none !important;
        transform: none !important;
        transition: none;
        visibility: visible !important;
        will-change: auto
    }
    .product-card:after {
        display: none
    }
    .product-copy,
    .product-visual-image {
        filter: none;
        will-change: auto
    }
    .product-copy {
        gap: 1.375rem;
        padding: 0 0 1.875rem;
        border-top: 0
    }
    .product-header {
        gap: 1.125rem;
        align-items: center
    }
    .product-heading {
        gap: .5rem;
        font-size: 1.75rem
    }
    .product-heading img {
        width: 2rem;
        height: 2rem
    }
    .product-info h3 {
        font-size: 1.75rem;
        line-height: .98
    }
    .product-info p {
        font-size: 1.125rem;
        line-height: 140%;
        letter-spacing: -.0112rem
    }
    .product-link {
        align-self: center
    }
    .product-tags {
        gap: .375rem
    }
    .product-tags li {
        font-size: .75rem
    }
    .product-visual {
        order: -1;
        width: 100%
    }
}

.in-press-content {
    align-items: stretch;
    padding: 0
}

.in-press-orbit {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    isolation: isolate
}

.in-press-title {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 10;
    width: min(34rem, 58vw);
    transform: translate(-50%, -50%);
    pointer-events: none
}

.in-press-orbit .in-press-card {
    position: absolute;
    top: var(--press-top);
    left: var(--press-left);
    z-index: var(--press-z);
    display: block;
    width: min(var(--press-width), 31vw);
    color: #e8ebf3e0;
    text-decoration: none;
    transform: translate3d(calc(-50% + var(--press-parallax-x, 0rem)), calc(-50% + var(--press-parallax-y, 0rem)), 0) rotate(var(--press-rotate));
    transform-origin: center;
    outline: 0;
    will-change: transform
}

.in-press-card-surface {
    display: flex;
    min-height: 10.25rem;
    flex-direction: column;
    padding: 1.25rem;
    text-align: left;
    overflow: hidden;
    border: .0625rem solid transparent;
    border-radius: 1rem;
    background: linear-gradient(180deg, #1b1b1bcc, #1f1f1fcc);
    box-shadow: inset 0 .0625rem #ffffff14, 0 1.5rem 4rem #00000052;
    animation: in-press-float var(--press-duration) ease-in-out var(--press-delay) infinite alternate;
    backdrop-filter: blur(.4375rem);
    transition: border-color .22s ease, box-shadow .22s ease, filter .22s ease
}

.in-press-card-surface:before {
    content: "";
    position: absolute;
    inset: -.0625rem;
    padding: .0625rem;
    border-radius: inherit;
    background: linear-gradient(180deg, #ffffff0a, #ffffff14);
    pointer-events: none;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude
}

.reveal .slides section.in-press-slide:not(.present) .in-press-title,
.reveal .slides section.in-press-slide:not(.present) .in-press-card {
    opacity: 0
}

.reveal .slides section.present.in-press-slide .in-press-title {
    animation: in-press-title-in .62s cubic-bezier(.16, 1, .3, 1) 80ms backwards
}

.reveal .slides section.present.in-press-slide .in-press-card {
    animation: in-press-card-in .76s cubic-bezier(.16, 1, .3, 1) calc(.44s + var(--press-index, 0) * 95ms) backwards
}

.in-press-card strong,
.in-press-handle,
.in-press-read-more {
    display: block
}

.in-press-card strong {
    color: #f6f8ffdb;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.02em
}

.in-press-handle {
    margin-top: .125rem;
    color: #d1d6e27a;
    font-size: .875rem;
    line-height: 1.2;
    letter-spacing: -.01em
}

.in-press-card p {
    display: block;
    max-height: 5.75rem;
    margin: .6875rem 0 0;
    overflow: hidden;
    color: #ebeef6c2;
    white-space: pre-line;
    font-size: .9375rem;
    line-height: 1.18;
    letter-spacing: -.025em
}

.in-press-read-more {
    margin-top: auto;
    padding-top: .8125rem;
    color: #ffffffd6;
    font-family: var(--mono-font);
    font-size: .75rem;
    line-height: 1;
    letter-spacing: -.04em;
    text-decoration: underline;
    text-transform: uppercase;
    text-underline-offset: .125rem
}

.in-press-card:focus-visible .in-press-card-surface {
    border-color: #ffffffb8;
    box-shadow: 0 0 0 .1875rem #ffffff2e, 0 1.75rem 4.5rem #0000006b
}

@media(hover:hover)and (pointer:fine) {
    .in-press-card:hover .in-press-card-surface {
        border-color: #ffffff38;
        box-shadow: inset 0 .0625rem #ffffff24, 0 1.875rem 5.5rem #0000006b, 0 0 2.5rem #d0dcff14;
        filter: brightness(1.08)
    }
}

@media(prefers-reduced-motion:reduce) {
    .in-press-title,
    .in-press-card,
    .in-press-card-surface {
        animation: none;
        transition: none;
        will-change: auto
    }
    .reveal .slides section.in-press-slide .in-press-title,
    .reveal .slides section.in-press-slide .in-press-card {
        opacity: 1
    }
}

@media(width<=1180px) {
    .in-press-card {
        width: calc(var(--press-width) * .9)
    }
    .in-press-card p {
        font-size: .875rem
    }
}

@media(width<=820px) {
    .reveal .slides section.in-press-slide {
        overflow: hidden auto;
        overscroll-behavior-y: contain;
        height: calc(100dvh - var(--header-height-mobile) - var(--footer-height-mobile));
        top: var(--header-height-mobile);
        mask-image: linear-gradient(to bottom, transparent, #000 3rem, #000 calc(100% - 3rem), transparent)
    }
    .in-press-content {
        justify-content: flex-start;
        align-items: center;
        height: auto;
        min-height: 100%;
        padding: 1rem 1rem 4.5rem
    }
    .in-press-orbit {
        display: grid;
        width: min(100%, 31rem);
        height: auto;
        min-height: 0;
        gap: .875rem
    }
    .in-press-title {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        margin: 0 0 .75rem;
        transform: none
    }
    .in-press-orbit .in-press-card {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        transform: none;
        will-change: auto
    }
    .in-press-card-surface {
        min-height: 0;
        animation: none
    }
    .reveal .slides section.present.in-press-slide .in-press-title {
        animation-name: in-press-title-in-mobile
    }
    .reveal .slides section.present.in-press-slide .in-press-card {
        animation-name: in-press-card-in-mobile
    }
    .in-press-card p {
        max-height: none;
        font-size: .9375rem;
        line-height: 1.35
    }
}

@keyframes in-press-float {
    0% {
        transform: translate3d(-.35rem, .28rem, 0) rotate(-.45deg)
    }
    50% {
        transform: translate3d(.2rem, -.42rem, 0) rotate(.3deg)
    }
    to {
        transform: translate3d(.45rem, .22rem, 0) rotate(.55deg)
    }
}

@keyframes in-press-title-in {
    0% {
        opacity: 0;
        transform: translate(-50%, calc(-50% + .85rem));
        filter: blur(.25rem)
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%);
        filter: blur(0)
    }
}

@keyframes in-press-card-in {
    0% {
        opacity: 0;
        transform: translate3d(-50%, calc(-50% + 2.4rem), 0) scale(.84) rotate(var(--press-rotate));
        filter: blur(.35rem)
    }
    to {
        opacity: 1;
        transform: translate3d(-50%, -50%, 0) scale(1) rotate(var(--press-rotate));
        filter: blur(0)
    }
}

@keyframes in-press-title-in-mobile {
    0% {
        opacity: 0;
        transform: translateY(.7rem);
        filter: blur(.2rem)
    }
    to {
        opacity: 1;
        transform: none;
        filter: blur(0)
    }
}

@keyframes in-press-card-in-mobile {
    0% {
        opacity: 0;
        transform: translateY(1.5rem) scale(.97);
        filter: blur(.3rem)
    }
    to {
        opacity: 1;
        transform: none;
        filter: blur(0)
    }
}

#contacts:not(.present) {
    visibility: hidden
}

#contacts {
    background: transparent;
    isolation: isolate
}

.contacts-moon-wrap {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    z-index: 2;
    display: flex;
    justify-content: center;
    transform: translate3d(0, -50%, 0);
    transform-origin: 50% 50%;
    will-change: top, transform
}

.contacts-moon {
    display: block;
    width: min(68vw, 64rem);
    max-width: none;
    height: auto;
    filter: brightness(.78) contrast(1.08);
    animation: moon-rotate 1000s linear infinite;
    user-select: none;
    pointer-events: none;
    will-change: transform
}

.moon-gradient {
    position: absolute;
    inset: 0;
    z-index: 3;
    opacity: 0;
    background: radial-gradient(ellipse at 50% 78%, #dce4f524, #dce4f500 38%), linear-gradient(0deg, #000, #000000c7 18%, #0000 64%);
    pointer-events: none;
    will-change: opacity
}

.contacts-content {
    z-index: auto;
    align-items: center;
    justify-content: flex-start;
    padding-top: clamp(5rem, 8vh, 8.75rem);
    pointer-events: none;
    text-align: center
}

.contacts-title {
    position: relative;
    z-index: 1;
    max-width: 47.5rem;
    transform: translateY(34vh);
    will-change: opacity, transform
}

#contacts .contacts-title {
    text-shadow: none
}

.contacts-button {
    position: relative;
    z-index: 4;
    height: 3rem;
    margin-top: 3rem;
    padding: .875rem 1.375rem;
    gap: .375rem;
    opacity: 0;
    font-size: 1.0625rem;
    pointer-events: none;
    transform: translateY(1.75rem) scale(.96);
    will-change: opacity, transform
}

.contacts-details {
    position: relative;
    z-index: 4;
    max-width: 34rem;
    margin-top: clamp(3.75rem, 8vh, 6rem);
    opacity: 0;
    pointer-events: none;
    transform: translateY(1.75rem);
    will-change: opacity, transform
}

.contacts-details .subtitle {
    min-height: 1.12em;
    margin: 0;
    color: #e2e7f2ad;
    font-size: clamp(.625rem, .74vw, .875rem);
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: .045em
}

.contacts-details .subtitle:nth-child(2) {
    margin-top: .625rem
}

.contacts-details .subtitle:nth-child(5) {
    margin-top: 1.875rem
}

.contacts-details .subtitle.is-typing-machine:after {
    content: "";
    display: inline-block;
    width: .125rem;
    height: 1em;
    margin-left: .0625rem;
    vertical-align: text-bottom;
    background: currentColor;
    animation: typewriter-cursor-blink .53s step-end infinite alternate
}

@keyframes typewriter-cursor-blink {
    50% {
        opacity: 0
    }
}

@keyframes moon-rotate {
    0% {
        transform: rotate(0)
    }
    to {
        transform: rotate(360deg)
    }
}

.contacts-arriving .contacts-moon-wrap {
    animation: moon-arrive-rise var(--moon-arrive, 2.4s) cubic-bezier(.16, 1, .3, 1) both
}

.contacts-arriving .contacts-moon {
    animation: moon-rotate 1000s linear infinite, moon-arrive-glow var(--moon-arrive, 2.4s) cubic-bezier(.22, 1, .3, 1) both
}

.contacts-arriving .contacts-title {
    animation: contacts-title-arrive var(--moon-arrive, 2.4s) cubic-bezier(.16, 1, .3, 1) both
}

@keyframes moon-arrive-rise {
    0% {
        transform: translate3d(0, calc(-50% + 16vh), 0) scale(.84)
    }
    to {
        transform: translate3d(0, -50%, 0) scale(1)
    }
}

@keyframes moon-arrive-glow {
    0% {
        filter: brightness(.32) contrast(1.25)
    }
    46% {
        filter: brightness(1.18) contrast(1.04)
    }
    to {
        filter: brightness(.78) contrast(1.08)
    }
}

@keyframes contacts-title-arrive {
    0% {
        opacity: 0;
        filter: blur(.55rem)
    }
    55% {
        opacity: 1
    }
    to {
        opacity: 1;
        filter: blur(0)
    }
}

@media(prefers-reduced-motion:reduce) {
    .contacts-arriving .contacts-moon-wrap,
    .contacts-arriving .contacts-moon,
    .contacts-arriving .contacts-title,
    .contacts-moon {
        animation: none
    }
}

@media(width<=760px) {
    .contacts-moon {
        width: min(104vw, 34rem)
    }
    .contacts-content {
        padding-top: 6.75rem
    }
    .contacts-title {
        transform: translateY(34vh)
    }
    .contacts-button {
        height: 2.5rem;
        margin-top: 2rem;
        padding: .75rem 1.125rem;
        font-size: .9375rem
    }
    .contacts-details {
        max-width: 20rem;
        margin-top: 3.75rem
    }
    .contacts-details .subtitle {
        font-size: .6875rem;
        line-height: 1.18
    }
}