/**
 * RSM Intro — entrance animation keyframes (Animate.css–compatible names).
 */

@keyframes rsmBounce {
	0%, 20%, 53%, 80%, 100% { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); transform: translate3d(0, 0, 0); }
	40%, 43% { animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); transform: translate3d(0, -30px, 0); }
	70% { animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); transform: translate3d(0, -15px, 0); }
	90% { transform: translate3d(0, -4px, 0); }
}

@keyframes rsmBounceInDown {
	from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
	0% { opacity: 0; transform: translate3d(0, -3000px, 0); }
	60% { opacity: 1; transform: translate3d(0, 25px, 0); }
	75% { transform: translate3d(0, -10px, 0); }
	90% { transform: translate3d(0, 5px, 0); }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmBounceInLeft {
	from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
	0% { opacity: 0; transform: translate3d(-3000px, 0, 0); }
	60% { opacity: 1; transform: translate3d(25px, 0, 0); }
	75% { transform: translate3d(-10px, 0, 0); }
	90% { transform: translate3d(5px, 0, 0); }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmBounceInRight {
	from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
	0% { opacity: 0; transform: translate3d(3000px, 0, 0); }
	60% { opacity: 1; transform: translate3d(-25px, 0, 0); }
	75% { transform: translate3d(10px, 0, 0); }
	90% { transform: translate3d(-5px, 0, 0); }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmBounceInUp {
	from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
	0% { opacity: 0; transform: translate3d(0, 3000px, 0); }
	60% { opacity: 1; transform: translate3d(0, -20px, 0); }
	75% { transform: translate3d(0, 10px, 0); }
	90% { transform: translate3d(0, -5px, 0); }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes rsmFadeInDown {
	from { opacity: 0; transform: translate3d(0, -100%, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes rsmFadeInLeft {
	from { opacity: 0; transform: translate3d(-100%, 0, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes rsmFadeInRight {
	from { opacity: 0; transform: translate3d(100%, 0, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes rsmFadeInUp {
	from { opacity: 0; transform: translate3d(0, 100%, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes rsmSlideInUp {
	from { transform: translate3d(0, 100%, 0); visibility: visible; }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmSlideInDown {
	from { transform: translate3d(0, -100%, 0); visibility: visible; }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmSlideInLeft {
	from { transform: translate3d(-100%, 0, 0); visibility: visible; }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmSlideInRight {
	from { transform: translate3d(100%, 0, 0); visibility: visible; }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmZoomIn {
	from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
	50% { opacity: 1; }
}

@keyframes rsmZoomInDown {
	from { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
	60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); }
}

@keyframes rsmZoomInLeft {
	from { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
	60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); }
}

@keyframes rsmZoomInRight {
	from { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
	60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); }
}

@keyframes rsmZoomInUp {
	from { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
	60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); }
}

@keyframes rsmLightSpeedIn {
	from { opacity: 0; transform: translate3d(100%, 0, 0) skewX(-30deg); }
	60% { opacity: 1; transform: skewX(20deg); }
	80% { transform: skewX(-5deg); }
	to { transform: translate3d(0, 0, 0); }
}

@keyframes rsmPulse {
	from { transform: scale3d(1, 1, 1); }
	50% { transform: scale3d(1.05, 1.05, 1.05); }
	to { transform: scale3d(1, 1, 1); }
}

@keyframes rsmRubberBand {
	from { transform: scale3d(1, 1, 1); }
	30% { transform: scale3d(1.25, 0.75, 1); }
	40% { transform: scale3d(0.75, 1.25, 1); }
	50% { transform: scale3d(1.15, 0.85, 1); }
	65% { transform: scale3d(0.95, 1.05, 1); }
	75% { transform: scale3d(1.05, 0.95, 1); }
	to { transform: scale3d(1, 1, 1); }
}

.rsm-a-bounce { animation-name: rsmBounce; transform-origin: center bottom; }
.rsm-a-bounceInDown { animation-name: rsmBounceInDown; }
.rsm-a-bounceInLeft { animation-name: rsmBounceInLeft; }
.rsm-a-bounceInRight { animation-name: rsmBounceInRight; }
.rsm-a-bounceInUp { animation-name: rsmBounceInUp; }
.rsm-a-fadeIn { animation-name: rsmFadeIn; }
.rsm-a-fadeInDown { animation-name: rsmFadeInDown; }
.rsm-a-fadeInLeft { animation-name: rsmFadeInLeft; }
.rsm-a-fadeInRight { animation-name: rsmFadeInRight; }
.rsm-a-fadeInUp { animation-name: rsmFadeInUp; }
.rsm-a-slideInUp { animation-name: rsmSlideInUp; }
.rsm-a-slideInDown { animation-name: rsmSlideInDown; }
.rsm-a-slideInLeft { animation-name: rsmSlideInLeft; }
.rsm-a-slideInRight { animation-name: rsmSlideInRight; }
.rsm-a-zoomIn { animation-name: rsmZoomIn; }
.rsm-a-zoomInDown { animation-name: rsmZoomInDown; }
.rsm-a-zoomInLeft { animation-name: rsmZoomInLeft; }
.rsm-a-zoomInRight { animation-name: rsmZoomInRight; }
.rsm-a-zoomInUp { animation-name: rsmZoomInUp; }
.rsm-a-lightSpeedIn { animation-name: rsmLightSpeedIn; animation-timing-function: ease-out; }
.rsm-a-pulse { animation-name: rsmPulse; }
.rsm-a-rubberBand { animation-name: rsmRubberBand; }
