/* Bit of normalisation */

html,
body,
#sapper {
	margin: 0;
	padding: 0;
	height: 100vh;
	width: 100vw;
}

body {
	background-color: #eee;
	color: #222;
	font: 0.8125em/1.5 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

img {
	display: block;
	height: auto;
	max-width: 100%;
}

.container {
	padding: 40px 20px;
	margin: 0 auto;
	max-width: 300px;
}

/* .bubble */

.bubble {
	background-image: linear-gradient(bottom, rgb(210, 244, 254) 25%, rgb(149, 194, 253) 100%);
	background-image: -o-linear-gradient(bottom, rgb(210, 244, 254) 25%, rgb(149, 194, 253) 100%);
	background-image: -moz-linear-gradient(bottom, rgb(210, 244, 254) 25%, rgb(149, 194, 253) 100%);
	background-image: -webkit-linear-gradient(bottom, rgb(210, 244, 254) 25%, rgb(149, 194, 253) 100%);
	background-image: -ms-linear-gradient(bottom, rgb(210, 244, 254) 25%, rgb(149, 194, 253) 100%);
	background-image: -webkit-gradient(
		linear,
		left bottom,
		left top,
		color-stop(0.25, rgb(210, 244, 254)),
		color-stop(1, rgb(149, 194, 253))
	);
	border: solid 1px rgba(0, 0, 0, 0.5);
	/* vendor rules */
	border-radius: 20px;
	/* vendor rules */
	box-shadow: inset 0 5px 5px rgba(255, 255, 255, 0.4), 0 1px 3px rgba(0, 0, 0, 0.2);
	/* vendor rules */
	box-sizing: border-box;
	clear: both;
	float: left;
	margin-bottom: 20px;
	padding: 8px 30px;
	position: relative;
	text-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
	width: auto;
	max-width: 100%;
	word-wrap: break-word;
}

.bubble:before,
.bubble:after {
	border-radius: 20px / 10px;
	content: '';
	display: block;
	position: absolute;
}

.bubble:before {
	border: 10px solid transparent;
	border-bottom-color: rgba(0, 0, 0, 0.5);
	bottom: 0;
	left: -7px;
	z-index: -2;
}

.bubble:after {
	border: 8px solid transparent;
	border-bottom-color: #d2f4fe;
	bottom: 1px;
	left: -5px;
}

.bubble:last-child {
	float: none;
}

.bubble--alt {
	background-image: linear-gradient(bottom, rgb(172, 228, 75) 25%, rgb(122, 205, 71) 100%);
	background-image: -o-linear-gradient(bottom, rgb(172, 228, 75) 25%, rgb(122, 205, 71) 100%);
	background-image: -moz-linear-gradient(bottom, rgb(172, 228, 75) 25%, rgb(122, 205, 71) 100%);
	background-image: -webkit-linear-gradient(bottom, rgb(172, 228, 75) 25%, rgb(122, 205, 71) 100%);
	background-image: -ms-linear-gradient(bottom, rgb(172, 228, 75) 25%, rgb(122, 205, 71) 100%);
	background-image: -webkit-gradient(
		linear,
		left bottom,
		left top,
		color-stop(0.25, rgb(172, 228, 75)),
		color-stop(1, rgb(122, 205, 71))
	);
	float: right;
}

.bubble--alt:before {
	border-bottom-color: rgba(0, 0, 0, 0.5);
	border-radius: 20px / 10px;
	left: auto;
	right: -7px;
}

.bubble--alt:after {
	border-bottom-color: #ace44b;
	border-radius: 20px / 10px;
	left: auto;
	right: -5px;
}

/* Bubble Typing */

.container-circle {
	width: 70px;
	position: relative;
}

.circle {
	height: 10px;
	width: 10px;
	margin: 0 5px;
	background-color: #b6b5ba;
	border-radius: 50%;
	display: inline-block;
	position: relative;
	top: 0px;
	-webkit-animation-duration: 1s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-timing-function: linear;
	animation-duration: 1s;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}

#circle1 {
	-webkit-animation-name: circle1;
}

#circle2 {
	-webkit-animation-name: circle2;
}

#circle3 {
	-webkit-animation-name: circle3;
}

#circle1 {
	animation-name: circle1;
}

#circle2 {
	animation-name: circle2;
}

#circle3 {
	animation-name: circle3;
}

.cc1 {
	background-color: #9e9da2;
}

@-webkit-keyframes circle1 {
	0% {
		top: 0px;
	}
	15% {
		top: 5px;
	}
	25% {
		top: 0px;
	}
}

@-webkit-keyframes circle2 {
	10% {
		top: 0px;
	}
	25% {
		top: 5px;
	}
	35% {
		top: 0px;
	}
}

@-webkit-keyframes circle3 {
	15% {
		top: 0px;
	}
	30% {
		top: 5px;
	}
	40% {
		top: 0px;
	}
}

@keyframes circle1 {
	0% {
		top: 0px;
	}
	15% {
		top: 5px;
	}
	25% {
		top: 0px;
	}
}

@keyframes circle2 {
	10% {
		top: 0px;
	}
	25% {
		top: 5px;
	}
	35% {
		top: 0px;
	}
}

@keyframes circle3 {
	15% {
		top: 0px;
	}
	30% {
		top: 5px;
	}
	40% {
		top: 0px;
	}
}
