*, *:before, *:after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

.demo {
    position: relative;
    width: 180px;
    height: 35px;
    padding-left: 15px;
    padding-right: 20px;
    border-radius: 10px;
    background: #0064cd;
    transition: background-color 1s;
    cursor: pointer;
    margin-left: 4%;
}

.demo::before, .demo::after {
    content: '';
    position: absolute;
    left: 5%;
    bottom: 100%;
    width: 50%;
    height: 3px;
    background: #3dc1da;
    transform: scaleX(0);
    transform-origin: 0 100%;
}

.demo:after {
	left: 19%;
	width: 75%;
}

.demo.s--processing {
	background-color: #0064cd;
	transition-delay: 4.6s;
}

.demo.s--processing:before, .demo.s--processing:after {
	transform: scaleX(1);
	background-color: #36d09d;
}

.demo.s--processing:before {
	transition: transform 0.6s 1.4s, background-color 1s 4.6s;
}

.demo.s--processing:after {
	transition: transform 2.4169s 2.4s, background-color 1s 4.6s;
}



.demo.s--reverting:before, .demo.s--reverting:after {
	opacity: 0;
}

.demo svg {
	overflow: visible;
	fill: none;
	stroke-linejoin: round;
}

.demo-transitionend-listener {
	transition: opacity 6.6s;
}

.demo.s--processing .demo-transitionend-listener {
	opacity: 0;
}

.demo__revert-line {
    position: absolute;
    left: 5%;
    bottom: 100%;
    width: 90%;
    height: 3px;
    background: 
    #0064cd;
    transform-origin: 0 80%;
    opacity: 0;
}

.demo.s--reverting .demo__revert-line {
	opacity: 1;
	transform: scaleX(0);
	transition: transform 0.864s;
}

.demo__drone-cont {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}

.demo__drone-cont--takeoff {
	z-index: -1;
	opacity: 0;
}

.demo.s--processing .demo__drone-cont--takeoff {
	opacity: 1;
	transform: translateY(-70px);
	transition: transform 0.8s, opacity 0.2s;
	transition-delay: 1.2s;
}

.demo.s--processing .demo__drone-cont--shift-x {
	transition: transform 2.6s 2.4s;
	transform: translateX(213px);
}

.demo.s--processing .demo__drone-cont--landing {
	transform: translateY(24px);
	transition: transform 0.3s 5s;
}

.demo__drone {
	position: absolute;
	left: 16px;
	top: -12px;
	width: 68px;
	height: 56px;
	stroke: #000;
	stroke-width: 2px;
	fill: none;
}

@keyframes tiltAnim {
	8%, 24% {
		transform: rotate(0);
	}

	35%, 70% {
		transform: rotate(8deg);
	}

	85% {
		transform: rotate(-4deg);
	}

	95%, 100% {
		transform: rotate(0);
	}
}

.demo.s--processing .demo__drone {
	transform-origin: 50% 100%;
	animation: tiltAnim 3.8s 1.2s;
}

.demo.s--processing .demo__drone-leaving {
	transform: translate(150px, -150px) rotate(20deg) scale(0.3);
	opacity: 0;
	transition: transform 1.1s 5.5s, opacity 0.55s 6.05s;
}

.demo__drone-arm {
	--rotation: 0deg;
	transform-origin: 68px 56px;
	transform: rotate(var(--rotation));
}

.demo__drone-arm--2 {
	transform: scaleX(-1) rotate(var(--rotation));
}

.demo.s--processing .demo__drone-arm {
	--rotation: 25deg;
	transition: transform 0.3s 5.2s;
}

.demo__drone-green {
	fill: #61d4f1;
}

.demo.s--processing .demo__drone-green {
	fill: #0064cd;
	transition: fill 1s 4.6s;
}

.demo__drone-yellow {
	fill: #ecb400;
}

.demo__drone-package {
	stroke-width: 4px;
}

@keyframes revertAnim {
	40%, 45% {
		transform: translate(-426px, 0);
	}

	75% {
		transform: translate(-426px, -100px);
	}

	100% {
		transform: translate(-426px, 100px);
	}
}



.demo__circle {
    position: absolute;
    left: 8px;
    top: 50%;
    width: 25px;
    height: 25px;
    margin-top: -12px;
    border-radius: 50%;
    border: 1px solid white;
}

.demo.s--processing .demo__circle {
	background-color: #0064cd;
	transition: background-color 1s;
	transition-delay: 4.6s;
}



.demo__circle-inner {
	overflow: hidden;
	position: absolute;
	left: -1px;
	top: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	border-radius: inherit;
}

.demo__circle-package {
    width: 10px;
    height: 12px;
    stroke: #fff;
    stroke-width: 3px;
    stroke-linecap: round;
}

.demo.s--processing .demo__circle-package {
	transform: translateY(-70px);
	transition: transform 0.8s 1.2s;
}


.demo__circle-grabbers {
	--grabY: 0px;
	--grabRotate: 0;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}

.demo__circle-grabbers:before, .demo__circle-grabbers:after {
	content: '';
	position: absolute;
	right: 5px;
	top: -12px;
	width: 14px;
	height: 8px;
	border: 2px solid #000;
	border-left: none;
	border-bottom: none;
	transform: translateY(var(--grabY)) rotate(var(--grabRotate));
	transition: transform 0.8s;
}

.demo__circle-grabbers:before {
	right: auto;
	left: 5px;
	transform: translateY(var(--grabY)) scaleX(-1) rotate(var(--grabRotate));
}

@keyframes grabAnim {
	40%, 59.999% {
		--grabY: 15px;
		--grabRotate: 55deg;
	}

	60%, 100% {
		--grabY: -55px;
		--grabRotate: 55deg;
	}
}

.demo.s--processing .demo__circle-grabbers {
	animation: grabAnim 2s forwards;
}

.demo__circle-progress {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	stroke: #fff;
	stroke-width: 2px;
}

.demo__circle-progress-line {
	stroke-dasharray: 125.68138, 125.68138;
	stroke-dashoffset: 125.68138;
}

.demo.s--processing .demo__circle-progress-line {
	stroke-dashoffset: 0;
	transition: all 0.5s 4.9s;
}



.demo__circle-progress-checkmark {
	stroke-dasharray: 21.2132, 21.2132;
	stroke-dashoffset: 21.2132;
}

.demo.s--processing .demo__circle-progress-checkmark {
	stroke-dashoffset: 0;
	transition: all 0.5s 4.9s;
}



.demo__text-fields {
    position: relative;
    width: 100%;
    height: 100%;
    color: #fff;
    font-size: 0.875rem;
    letter-spacing: 0px;
}

.demo__text {
	position: absolute;
	left: 15px;
	top: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	opacity: 0;
	transform: translateY(0px);
	will-change: opacity, transform;
	pointer-events: none;
}

@keyframes textAnimation {
	20%, 80% {
		opacity: 1;
		transform: translateY(0);
	}

	100% {
		opacity: 0;
		transform: translateY(-20px);
	}
}

.demo__text--step-0 {
	opacity: 1;
	transform: translateY(0);
}

.demo.s--processing .demo__text {
	transition: all 0.4s;
}

.demo.s--processing .demo__text--step-0 {
	opacity: 0;
	transform: translateY(-20px);
}

.demo.s--processing .demo__text--step-1 {
	animation: textAnimation 2s 0s;
}

.demo.s--processing .demo__text--step-2 {
	animation: textAnimation 2s 1.6s;
}

.demo.s--processing .demo__text--step-3 {
	animation: textAnimation 2s 3.2s;
}

.demo.s--processing .demo__text--step-4 {
	transition-delay: 4.8s;
	transform: translateY(0);
	opacity: 1;
}





.demo__text-dots {
    letter-spacing: -0.5px;
    font-size: 13px;
}

@keyframes dotAnimation {
	10%, 90% {
		opacity: 0;
	}

	40%, 60% {
		opacity: 1;
	}
}

.demo__text-dots span {
	opacity: 0;
	animation: dotAnimation 1.2s 0.4s infinite;
}

.demo__text-dots:before, .demo__text-dots:after {
	content: '.';
	opacity: 0;
}

.demo__text-dots:before {
	animation: dotAnimation 1.2s infinite;
}

.demo__text-dots:after {
	animation: dotAnimation 1.2s 0.8s infinite;
}

.icon-link {
	z-index: 100;
	position: absolute;
	left: 5px;
	bottom: 5px;
	width: 32px;
}

.icon-link img {
	width: 100%;
	vertical-align: top;
}

.icon-link--twitter {
	left: auto;
	right: 5px;
}

#sendConfText, #ConfText{
    text-align: center;
    position: relative;
	margin-top: 10px;
}

