/******/
/*** scrolled ***/
/******/

.js-scroll {
	opacity: 0;
	transition: opacity 800ms;
}

.logged-in .js-scroll, .paged .js-scroll {
	opacity: 1!important;
}

.js-scroll.scrolled {
	opacity: 1;
}

.scrolled.fade-in {
	animation: fade-in 800ms ease-in-out both;
}

.scrolled.fade-in-top {
	animation: fade-in-top 800ms ease-in-out both;
}

.scrolled.fade-in-bottom {
	animation: fade-in-bottom 800ms ease-in-out both;
}

.scrolled.slide-in-left {
	animation: slide-in-left 800ms ease-in-out both;
}

.scrolled.slide-in-right {
	animation: slide-in-right 800ms ease-in-out both;
}

/* SECTIONS */

/* INTRO */

.intro-home .intro-fade-in-top {
	animation-delay: 3200ms;
	transition-delay: 3200ms;
}

.intro-home .intro-fade-in-bottom {
	animation-delay: 2800ms;
	transition-delay: 2800ms;
}

.intro-fade-in-top {
	animation: fade-in-top 800ms ease-in-out both;
}

.intro-fade-in-bottom {
	animation: fade-in-bottom 800ms ease-in-out both;
}

/* ----------------------------------------------
 * Generated by Animista on 2021-2-11 23:32:31
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */

@keyframes slide-in-left {
	
  0% {
    -webkit-transform: translateX(-6.25rem);
    transform: translateX(-6.25rem);
    opacity: 0;
  }
	
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
	
}

@keyframes slide-in-right {
	
  0% {
    -webkit-transform: translateX(6.25rem);
    transform: translateX(6.25rem);
    opacity: 0;
  }
	
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
    opacity: 1;
  }
	
}

@keyframes fade-in-top {
	
  0% {
    -webkit-transform: translateY(-3.125rem);
    transform: translateY(-3.125rem);
    opacity: 0;
  }
	
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
	
}

@keyframes fade-in-bottom {
	
  0% {
    -webkit-transform: translateY(3.125rem);
    transform: translateY(3.125rem);
    opacity: 0;
  }
	
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
  }
	
}

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

/* Infinite Scroll */

@keyframes infinite-scroll {
	
  from {
	  transform: translateX(0)
	}
	
  to {
	  transform: translateX(-50%)
	}
	
}

.infinite-scroll-wrapper {
	width: 100%;
	overflow-x: hidden;
}

.infinite-scroll-container {
	display: flex;
	width: 125rem;
	animation-name: infinite-scroll;
	animation-duration: 20s;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}

.infinite-scroll-item {
	white-space: nowrap;
}

/* WIPE ON SCROLL */

:root {
	--wipe-in: inset(0 0 0 0);
	--wipe-in-bottom: inset(100% 0 0 0);
	--wipe-in-left: inset(0 100% 0 0);
	--wipe-in-top: inset(0 0 100% 0);
	--wipe-in-right: inset(0 0 0 100%);
}

[transition-style] {
    animation-delay: var(--transition__delay, 0);
    animation-duration: var(--transition__duration, 2.5s);
    animation-timing-function: var(--transition__easing, cubic-bezier(.25, 1, .3, 1));
    animation-fill-mode: both;
    will-change: clip-path
}

@media (prefers-reduced-motion: reduce), print {
	
    [transition-style] {
        animation-duration: 1ms !important;
        transition-duration: 1ms !important;
        animation-iteration-count:1 !important
    }
	
}

@keyframes wipe-in-top {
	
    0% {
        -webkit-clip-path: var(--wipe-in-top);
        clip-path:var(--wipe-in-top)
    }

    to {
        -webkit-clip-path: var(--wipe-in);
        clip-path: var(--wipe-in)
    }
	
}

[transition-style="in:wipe:down"], [transition-style="in:wipe:top"] {
    animation-name:wipe-in-top
}

@keyframes wipe-in-right {
	
    0% {
        -webkit-clip-path: var(--wipe-in-left);
        clip-path:var(--wipe-in-left)
    }

    to {
        -webkit-clip-path: var(--wipe-in);
        clip-path: var(--wipe-in)
    }
	
}

[transition-style="in:wipe:right"] {
    animation-name:wipe-in-right
}

@keyframes wipe-in-bottom {
	
    0% {
        -webkit-clip-path: var(--wipe-in-bottom);
        clip-path:var(--wipe-in-bottom)
    }

    to {
        -webkit-clip-path: var(--wipe-in);
        clip-path: var(--wipe-in)
    }
	
}

[transition-style="in:wipe:bottom"], [transition-style="in:wipe:up"] {
    animation-name:wipe-in-bottom
}

@keyframes wipe-in-left {
	
    0% {
        -webkit-clip-path: var(--wipe-in-right);
        clip-path:var(--wipe-in-right)
    }

    to {
        -webkit-clip-path: var(--wipe-in);
        clip-path: var(--wipe-in)
    }
	
}

[transition-style="in:wipe:left"] {
    animation-name:wipe-in-left
}

.scrolled.wipe-in-top {
	animation: wipe-in-top 600ms ease-in-out both;
}

.scrolled.wipe-in-bottom {
	animation: wipe-in-bottom 600ms ease-in-out both;
}

.scrolled.wipe-in-right {
	animation: wipe-in-right 600ms ease-in-out both;
}

.scrolled.wipe-in-left {
	animation: wipe-in-left 600ms ease-in-out both;
}

/* DELAY */

.transition-delay-50 {
	animation-delay: 50ms;
	transition-delay: 50ms;
}

.transition-delay-100 {
	animation-delay: 100ms;
	transition-delay: 100ms;
}

.transition-delay-150 {
	animation-delay: 150ms;
	transition-delay: 150ms;
}

.transition-delay-200 {
	animation-delay: 200ms;
	transition-delay: 200ms;
}

.transition-delay-250 {
	animation-delay: 250ms;
	transition-delay: 250ms;
}

.transition-delay-300 {
	animation-delay: 300ms;
	transition-delay: 300ms;
}

.transition-delay-350 {
	animation-delay: 350ms;
	transition-delay: 350ms;
}

.transition-delay-400 {
	animation-delay: 400ms;
	transition-delay: 400ms;
}

.transition-delay-450 {
	animation-delay: 450ms;
	transition-delay: 450ms;
}

.transition-delay-500 {
	animation-delay: 500ms;
	transition-delay: 500ms;
}

.transition-delay-550 {
	animation-delay: 550ms;
	transition-delay: 550ms;
}

.transition-delay-600 {
	animation-delay: 600ms;
	transition-delay: 600ms;
}

.transition-delay-650 {
	animation-delay: 650ms;
	transition-delay: 650ms;
}

.transition-delay-700 {
	animation-delay: 700ms;
	transition-delay: 700ms;
}

.transition-delay-750 {
	animation-delay: 750ms;
	transition-delay: 750ms;
}

.transition-delay-800 {
	animation-delay: 800ms;
	transition-delay: 800ms;
}

.transition-delay-850 {
	animation-delay: 850ms;
	transition-delay: 850ms;
}

.transition-delay-900 {
	animation-delay: 900ms;
	transition-delay: 900ms;
}

.transition-delay-950 {
	animation-delay: 950ms;
	transition-delay: 950ms;
}

.transition-delay-1000 {
	animation-delay: 1000ms;
	transition-delay: 1000ms;
}

@media screen and (min-width: 48rem) {
	
	.grid-50:nth-of-type(2n+2), .grid-33:nth-of-type(3n+2), .grid-25:nth-of-type(4n+2), .grid-20:nth-of-type(5n+2), .grid-16:nth-of-type(6n+2) {
		animation-delay: 50ms;
	}

	.grid-33:nth-of-type(3n+3), .grid-25:nth-of-type(4n+3), .grid-20:nth-of-type(5n+3), .grid-16:nth-of-type(6n+3) {
		animation-delay: 100ms;
	}

	.grid-25:nth-of-type(4n+4), .grid-20:nth-of-type(5n+4), .grid-16:nth-of-type(6n+4) {
		animation-delay: 150ms;
	}

	.grid-20:nth-of-type(5n+5), .grid-16:nth-of-type(6n+5) {
		animation-delay: 200ms;
	}

	.grid-16:nth-of-type(6n+6) {
		animation-delay: 250ms;
	}
	
}

@media screen and (max-width: 47.9375rem) {
	
	.mobile-grid-50:nth-of-type(2n+2), .mobile-grid-33:nth-of-type(3n+2), .mobile-grid-25:nth-of-type(4n+2), .mobile-grid-20:nth-of-type(5n+2), .mobile-grid-16:nth-of-type(6n+2) {
		animation-delay: 50ms;
	}

	.mobile-grid-33:nth-of-type(3n+3), .mobile-grid-25:nth-of-type(4n+3), .mobile-grid-20:nth-of-type(5n+3), .mobile-grid-16:nth-of-type(6n+3) {
		animation-delay: 100ms;
	}

	.mobile-grid-25:nth-of-type(4n+4), .mobile-grid-20:nth-of-type(5n+4), .mobile-grid-16:nth-of-type(6n+4) {
		animation-delay: 150ms;
	}

	.mobile-grid-20:nth-of-type(5n+5), .mobile-grid-16:nth-of-type(6n+5) {
		animation-delay: 200ms;
	}

	.mobile-grid-16:nth-of-type(6n+5) {
		animation-delay: 250ms;
	}
	
}

/* Dynamic Sticky Sidebar */

@media screen and (min-width: 48rem) {

	:root {
  		--space: 2rem;
  		--space-xs: calc(var(--space) / 3);
  		--space-sm: calc(var(--space) / 2);
  		--space-md: calc(var(--space) * 2);
	}

	.sticky-article {
  		flex-basis: 0;
  		flex-grow: 999;
	}

	.sticky-aside {
  		--offset: var(--space);
  		flex-grow: 1;
  		align-self: start;
  		position: sticky;
  		top: var(--offset);
	}
	
}
