/*
@import "https://fonts.googleapis.com/css?family=Lato:700";

* {
    box-sizing: border-box;
}

body {
    font-family: 'Lato', sans-serif;
    background: #111;
    min-height: 100vh;
    overflow-x: hidden;
}

.page {
    height: 100vh;
    width: 100vw;
    scroll-snap-align: center;
    font-size: calc(var(--font-size) * 1px);
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.container {
    height: 100vh;
    overflow: auto;
    overflow-x: hidden;
    -ms-scroll-snap-type: y mandatory;
    scroll-snap-type: y mandatory;
}

.page {
    color: #fff;
    font-size: 3rem;
    text-align: center;
}

@media (min-width: 768px) {
    .page {
        font-size: 5rem;
    }
}

.page:nth-child(n) {
    background: #7e05d7;
}

.page:nth-child(2n) {
    background: #f21e56;
}

.page:nth-child(3n) {
    background: #bd04a9;
}*/

.splitting .char {
    display: inline-block;
    -webkit-animation-delay: calc(0.25s + var(--char-index) * 0.1s);
    animation-delay: calc(0.25s + var(--char-index) * 0.1s);
    transition: all 0.25s calc(0.25s + var(--char-index) * 0.1s);
}

.text--enter [data-scroll='out'] .char {
    opacity: 0;
    transform: translate(0, -150%);
}

.text--enter .char {
    opacity: 1;
    transform: translate(0, 0);
}

.text--random [data-scroll='out'] .char:nth-of-type(1) {
    transform: translateX(-239%) translateY(-121%);
}

.text--random [data-scroll='out'] .char:nth-of-type(2) {
    transform: translateX(-51%) translateY(134%);
}

.text--random [data-scroll='out'] .char:nth-of-type(3) {
    transform: translateX(-243%) translateY(-231%);
}

.text--random [data-scroll='out'] .char:nth-of-type(4) {
    transform: translateX(-219%) translateY(170%);
}

.text--random [data-scroll='out'] .char:nth-of-type(5) {
    transform: translateX(244%) translateY(114%);
}

.text--random [data-scroll='out'] .char:nth-of-type(6) {
    transform: translateX(218%) translateY(60%);
}

.text--swapsies [data-scroll='in'] .char:nth-of-type(odd),
.text--swapsies [data-scroll='out'] .char:nth-of-type(odd) {
    transform: translateX(100%);
}

.text--swapsies [data-scroll='in'] .char:nth-of-type(even),
.text--swapsies [data-scroll='out'] .char:nth-of-type(even) {
    transform: translateX(-100%);
}

.text--swapsies [data-scroll='in'] .char {
    -webkit-animation-duration: 0.5s;
    animation-duration: 0.5s;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
}

.text--swapsies [data-scroll='in'] .char:nth-of-type(odd) {
    -webkit-animation-name: swap-left;
    animation-name: swap-left;
}

.text--swapsies [data-scroll='in'] .char:nth-of-type(even) {
    -webkit-animation-name: swap-right;
    animation-name: swap-right;
}

@-webkit-keyframes swap-right {
    25% {
        transform: translateX(-100%) translateY(-100%);
    }

    75% {
        transform: translateX(0) translateY(-100%);
    }

    100% {
        transform: translateX(0) translateY(0);
    }
}

@keyframes swap-right {
    25% {
        transform: translateX(-100%) translateY(-100%);
    }

    75% {
        transform: translateX(0) translateY(-100%);
    }

    100% {
        transform: translateX(0) translateY(0);
    }
}

@-webkit-keyframes swap-left {
    25% {
        transform: translateX(100%) translateY(100%);
    }

    75% {
        transform: translateX(0) translateY(100%);
    }

    100% {
        transform: translateX(0) translateY(0);
    }
}

@keyframes swap-left {
    25% {
        transform: translateX(100%) translateY(100%);
    }

    75% {
        transform: translateX(0) translateY(100%);
    }

    100% {
        transform: translateX(0) translateY(0);
    }
}

.text--fading [data-scroll='out'] .char {
    opacity: 0;
}

.text--flipping [data-scroll='out'] .char {
    transform: rotateY(180deg);
}

.text--slide .char {
    transition-delay: calc((var(--char-total) - var(--char-index)) * 0.1s);
}

.text--slide [data-scroll='out'] .char {
    opacity: 0;
    transform: translate(-300%, 0) skewX(20deg);
}

.text--karaoke .char {
    color: rgba(255, 255, 255, 0.15);
    transition-duration: 0.1s;
}

.text--karaoke .char:after {
    color: #fff;
    visibility: visible;
}

.text--karaoke [data-scroll='in'] .char:after {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
}

.text--karaoke [data-scroll='out'] .char:after {
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0);
}

.text--filling .char {
    color: rgba(255, 255, 255, 0.15);
}

.text--filling .char:after {
    color: #fff;
    visibility: visible;
}

.text--filling [data-scroll='in'] .char:after {
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
}

.text--filling [data-scroll='out'] .char:after {
    -webkit-clip-path: inset(100% 0 0 0);
    clip-path: inset(100% 0 0 0);
}

.text--blocks [data-scroll='out'] .char {
    visibility: hidden;
}

.text--blocks [data-scroll='in'] {
    overflow: hidden;
    position: relative;
}

.text--blocks [data-scroll='in'] .char {
    transition-delay: 0.5s;
}

.text--blocks [data-scroll='in']:after {
    content: '';
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #fff;
    -webkit-animation: block 0.5s 0.25s both;
    animation: block 0.5s 0.25s both;
}

@-webkit-keyframes block {
    0% {
        transform: translate(-110%, 0);
    }

    45%,
    55% {
        transform: translate(0, 0);
    }

    100% {
        transform: translate(110%, 0);
    }
}

@keyframes block {
    0% {
        transform: translate(-110%, 0);
    }

    45%,
    55% {
        transform: translate(0, 0);
    }

    100% {
        transform: translate(110%, 0);
    }
}

.text--scaling [data-scroll='out'] .char {
    transform: scale(0);
}

.text--turning [data-scroll='out'] .char {
    transform: rotateY(90deg);
}

.text--folding [data-scroll='out'] .char {
    transform: rotateX(90deg);
    transform-origin: bottom;
}

.text--bulge [data-scroll='in'] .char {
    -webkit-animation-name: bulge;
    animation-name: bulge;
    -webkit-animation-duration: 0.25s;
    animation-duration: 0.25s;
}

@-webkit-keyframes bulge {
    50% {
        transform: scale(1.5);
    }
}

@keyframes bulge {
    50% {
        transform: scale(1.5);
    }
}

.text--perspective {
    perspective: 1000px;
}

.text--perspective .char {
    transition: transform 0.25s calc(0.25s + var(--char-index) * 0.1s), opacity 0.05s calc(0.25s + var(--char-index) * 0.1s);
}

.text--perspective [data-scroll='out'] .char {
    opacity: 0;
    transform: translate3d(-25px, -20px, -800px);
}

.text--zipping .char {
    transition: transform 0.25s calc(0.25s + var(--char-index) * 0.1s), opacity 0.05s calc(0.25s + var(--char-index) * 0.1s);
}

.text--zipping [data-scroll='out'] .char {
    opacity: 0;
}

.text--zipping [data-scroll='out'] .char:nth-of-type(odd) {
    transform: translate(0, -100%);
}

.text--zipping [data-scroll='out'] .char:nth-of-type(even) {
    transform: translate(0, 100%);
}

.text--spinning [data-scroll='out'] .char {
    transform: rotateY(-360deg);
}

.text--tumbling .char {
    transition-delay: calc((var(--char-total) - var(--char-index)) * 0.1s);
}

.text--tumbling [data-scroll='out'] .char {
    opacity: 0;
    transform: translate(-300%, -50%) rotate(1080deg) scale(0);
}

.text--bubbling .char {
    transition-timing-function: cubic-bezier(0.75, -2, 0.75, 2);
}

.text--bubbling .char:nth-of-type(1) {
    transition-delay: 0.7s;
}

.text--bubbling .char:nth-of-type(2) {
    transition-delay: 0.3s;
}

.text--bubbling .char:nth-of-type(3) {
    transition-delay: 0.2s;
}

.text--bubbling .char:nth-of-type(4) {
    transition-delay: 0.3s;
}

.text--bubbling .char:nth-of-type(5) {
    transition-delay: 0.5s;
}

.text--bubbling .char:nth-of-type(6) {
    transition-delay: 0.3s;
}

.text--bubbling .char:nth-of-type(7) {
    transition-delay: 0.6s;
}

.text--bubbling .char:nth-of-type(8) {
    transition-delay: 0.5s;
}

.text--bubbling [data-scroll='out'] .char {
    transform: scale(0.5);
}

.text--swinging .char {
    transform-origin: calc((var(--char-total) - var(--char-index)) * 100%) -100%;
    transition-delay: calc((var(--char-total) - var(--char-index)) * 0.1s);
}

.text--swinging [data-scroll='out'] .char {
    opacity: 0;
    transform: rotate(90deg);
}

.text--rolling .char {
    transition: transform 1s, opacity 0.2s;
    transition-delay: calc((var(--char-total) - var(--char-index)) * 0.1s);
}

.text--rolling [data-scroll='out'] .char {
    opacity: 0;
    transform: translate(-500%, 0) scale(0) rotate(-1440deg);
}

.text--blowing .char {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    transform-origin: left bottom;
    -webkit-animation-delay: calc(var(--char-index) * 0.025s);
    animation-delay: calc(var(--char-index) * 0.025s);
}

.text--blowing [data-scroll='in'] .char {
    -webkit-animation-name: blowing;
    animation-name: blowing;
}

@-webkit-keyframes blowing {

    50%,
    60%,
    70% {
        transform: skewX(-35deg);
    }

    55%,
    65%,
    75% {
        transform: skewX(-40deg);
    }
}

@keyframes blowing {

    50%,
    60%,
    70% {
        transform: skewX(-35deg);
    }

    55%,
    65%,
    75% {
        transform: skewX(-40deg);
    }
}

.text--meeting .char {
    transition-delay: calc((var(--char-total) - var(--char-index)) * 0.1s);
}

.text--meeting .char:nth-of-type(even) {
    transform-origin: top right;
}

.text--meeting .char:nth-of-type(odd) {
    transform-origin: bottom left;
}

.text--meeting [data-scroll='out'] .char {
    transform: rotate(180deg);
}

.text--conveyor [data-scroll='in'] .char {
    transform-origin: left bottom;
    -webkit-animation: convey 1s both linear;
    animation: convey 1s both linear;
    -webkit-animation-delay: calc((var(--char-total) - var(--char-index)) * 0.15s);
    animation-delay: calc((var(--char-total) - var(--char-index)) * 0.15s);
    transition: none;
}

@-webkit-keyframes convey {
    0% {
        transform: translate(calc((var(--char-total) - (var(--char-total) - var(--char-index))) * -100%), 0) rotate(-180deg) translate(calc((var(--char-total) - var(--char-index)) * -100%), 0);
    }

    40% {
        transform: translate(calc((var(--char-total) - (var(--char-total) - var(--char-index))) * -100%), 0) rotate(-180deg) translate(0, 0);
    }

    50% {
        transform: translate(calc((var(--char-total) - (var(--char-total) - var(--char-index))) * -100%), 0) rotate(0deg) translate(0, 0);
    }

    100% {
        transform: translate(0, 0) rotate(0deg) translate(0, 0);
    }
}

@keyframes convey {
    0% {
        transform: translate(calc((var(--char-total) - (var(--char-total) - var(--char-index))) * -100%), 0) rotate(-180deg) translate(calc((var(--char-total) - var(--char-index)) * -100%), 0);
    }

    40% {
        transform: translate(calc((var(--char-total) - (var(--char-total) - var(--char-index))) * -100%), 0) rotate(-180deg) translate(0, 0);
    }

    50% {
        transform: translate(calc((var(--char-total) - (var(--char-total) - var(--char-index))) * -100%), 0) rotate(0deg) translate(0, 0);
    }

    100% {
        transform: translate(0, 0) rotate(0deg) translate(0, 0);
    }
}
