html, body {
    margin: 0px;
    height: 100vh;
    overflow: hidden;
    font-family: Arial;
}

body {
	position: relative;
	touch-action: none;
}

canvas {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	outline: none;
	-webkit-tap-highlight-color: rgba(255, 255, 255, 0); /* mobile webkit */
}

.ui {
    position: absolute;
    transition: .25s all;
	z-index: 10;
}

.disabled {
    pointer-events: none;
    display: none;
    opacity: 0;
}

.disabled * {
    display: none;
}

.ui-popup {
    display: flex;
    position: fixed;
    width: 100vw;
    height: 100vh;
    justify-content: center;
    align-items: center;
    background: rgba(0, 0, 0, .25);
    transition: 1s all;
}

.ui-container {
    position: fixed;
    right: 0px;
    bottom: 0px;
    margin-right: 15px;
    margin-bottom: 15px;
    display: flex;
    flex-direction: column;
}

.ui-popup.disabled .ending-form {
    transform: translateY(50px);
    opacity: 0;
}

.ending-form {
    padding: 15px;
    background: white;
    border-radius: 5px;
    text-align: center;
    transform: translateY(0px);
    transition: all .5s;
}

.ending-form form {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.error-message {
    color: red;
    transform: translateY(-1.15em);
}

input[type="button"] {
    color: white;
    background: black;
    padding: 10px 25px;
    border-radius: 100px;
    border: none;
    cursor: pointer;
    transition: .25s all;
}

.functionality {
    display: flex;
    position: relative;
    width: 48px;
    height: 48px;
    justify-content: center;
    align-items: center;
    color: white;
    background: black;
    border-radius: 100px;
    cursor: pointer;
    transition: .25s all;
	margin-top: 10px;
}

.functionality:hover, input[type="button"]:hover {
    background: #555;
    transition: .10s all;
}

.functionality:active, input[type="button"]:active {
    background: #999;
}

/* tooltip */

.tooltip {
    position: relative;
    display: inline-block;
}

.tooltip .tooltip-content {
    visibility: hidden;
    width: 120px;
    background-color: black;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px 0;
    position: absolute;
    z-index: 1;
    top: calc(25% + 3px);
    right: 120%;
}

.tooltip .tooltip-content::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 100%;
    margin-top: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: transparent transparent transparent black;
}
.tooltip:hover .tooltip-content {
    visibility: visible;
}

/* 
 * Google inputs
 * https://codepen.io/benftwc/pen/VpQjNL
 */

.google-input { 
    position:relative; 
    margin-bottom:45px; 
}
.google-input input {
    font-size:18px;
    padding:10px 10px 10px 5px;
    display:block;
    width:300px;
    border:none;
    border-bottom:1px solid #757575;
}

.google-input input:focus { outline:none; }

.google-input label {
	color:#999; 
	font-size:18px;
	font-weight:normal;
	position:absolute;
	pointer-events:none;
	left:5px;
	top:10px;
	transition:0.2s ease all; 
	-moz-transition:0.2s ease all; 
	-webkit-transition:0.2s ease all;
}

.google-input input:focus ~ label, .google-input input:valid ~ label {
	top:-20px;
	font-size:14px;
	color:#5264AE;
}

.google-input .bar { position:relative; display:block; width:300px; }
.google-input .bar:before, .google-input .bar:after {
	content:'';
	height:2px; 
	width:0;
	bottom:1px; 
	position:absolute;
	background:#5264AE; 
	transition:0.2s ease all; 
	-moz-transition:0.2s ease all; 
	-webkit-transition:0.2s ease all;
}

.google-input .bar:before {
	left:50%;
}

.google-input .bar:after {
	right:50%; 
}

.google-input input:focus ~ .bar:before, .google-input input:focus ~ .bar:after {
	width:50%;
}

.google-input .highlight {
	position:absolute;
	height:60%; 
	width:100px; 
	top:25%; 
	left:0;
	pointer-events:none;
	opacity:0.5;
}

.google-input input:focus ~ .highlight {
	-webkit-animation:inputHighlighter 0.3s ease;
	-moz-animation:inputHighlighter 0.3s ease;
	animation:inputHighlighter 0.3s ease;
}

@-webkit-keyframes inputHighlighter {
	from { background:#5264AE; }
  	to 	{ width:0; background:transparent; }
}
@-moz-keyframes inputHighlighter {
	from { background:#5264AE; }
  	to 	{ width:0; background:transparent; }
}
@keyframes inputHighlighter {
	from { background:#5264AE; }
  	to 	{ width:0; background:transparent; }
}

/* touch screen */

@media (hover: none) {
	.tooltip .tooltip-content {
		display: none;
  	}

	.functionality:hover, input[type="button"]:hover,
	.functionality:active, input[type="button"]:active {
		background: black;
	}
}