:root {
	--background-effect-canvas-z-index: 1;
	--background-z-index: 2;
	--pet-canvas-container-z-index: 3; /* petCanvasContainer canvas, ballCanvas, img.pet */
	--bubble-z-index: 4;
	--foreground-effect-canvas-z-index: 5;
	--foreground-z-index: 6;
	--collision-z-index: 999;

	--container-paddding: 20px;
	--input-padding-vertical: 6px;
	--input-padding-horizontal: 4px;
	--input-margin-vertical: 4px;
	--input-margin-horizontal: 0;
}

*{
	user-select: none;
}

body {
	padding: 0 var(--container-paddding);
	color: var(--vscode-foreground);
	font-size: var(--vscode-font-size);
	font-weight: var(--vscode-font-weight);
	font-family: var(--vscode-font-family);
	background-color: var(--vscode-editor-background);
	background-position: bottom left;
	overflow: hidden; /* Hide scrollbars */
}

#foreground {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: var(--foreground-z-index);
	background-attachment: fixed;
	background-repeat: repeat-x;
	background-position: bottom left;
}

#background {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: var(--background-z-index);
	background-attachment: fixed;
	background-repeat: repeat-x;
	background-position: bottom left;
}

ol,
ul {
	padding-left: var(--container-paddding);
}

body > *,
form > * {
	margin-block-start: var(--input-margin-vertical);
	margin-block-end: var(--input-margin-vertical);
}

*:focus {
	outline-color: var(--vscode-focusBorder) !important;
}

a {
	color: var(--vscode-textLink-foreground);
}

a:hover,
a:active {
	color: var(--vscode-textLink-activeForeground);
}

code {
	font-size: var(--vscode-editor-font-size);
	font-family: var(--vscode-editor-font-family);
}

button {
	border: none;
	padding: var(--input-padding-vertical) var(--input-padding-horizontal);
	width: 100%;
	text-align: center;
	outline: 1px solid transparent;
	outline-offset: 2px !important;
	color: var(--vscode-button-foreground);
	background: var(--vscode-button-background);
}

button:hover {
	cursor: pointer;
	background: var(--vscode-button-hoverBackground);
}

button:focus {
	outline-color: var(--vscode-focusBorder);
}

button.secondary {
	color: var(--vscode-button-secondaryForeground);
	background: var(--vscode-button-secondaryBackground);
}

button.secondary:hover {
	background: var(--vscode-button-secondaryHoverBackground);
}

input:not([type='checkbox']),
textarea {
	display: block;
	width: 100%;
	border: none;
	font-family: var(--vscode-font-family);
	padding: var(--input-padding-vertical) var(--input-padding-horizontal);
	color: var(--vscode-input-foreground);
	outline-color: var(--vscode-input-border);
	background-color: var(--vscode-input-background);
}

input::placeholder,
textarea::placeholder {
	color: var(--vscode-input-placeholderForeground);
}

#petCanvasContainer {
	position: relative;
	width: 100%;
	height: 100%;
}

#petCanvasContainer canvas {
	position: fixed;
	bottom: 0;
	left: 0;
	z-index: var(--pet-canvas-container-z-index);
}

#ballCanvas {
	z-index: var(--pet-canvas-container-z-index);
}
#foregroundEffectCanvas {
	z-index: var(--foreground-effect-canvas-z-index) !important;
}
#backgroundEffectCanvas {
	z-index: var(--background-effect-canvas-z-index) !important;
}

img.pet {
	-webkit-transform: scaleX(-1);
	transform: scaleX(-1);
	position: absolute;
	left: 0px;
	right: 0px;
	bottom:0px;
	z-index: var(--pet-canvas-container-z-index);
}

.collision {
	position: absolute;
	left: 0px;
	right: 0px;
	bottom:0px;
	z-index: var(--collision-z-index);
}

.bubble {
	position: absolute;
	text-align: center;
	background-color: #fff;
	color: #333;
	font-family: silkscreen, sans-serif;
	min-width: 60px;
	line-height: 1.4em;
	margin: 0px auto;
	border: 2px solid #333;
	border-radius: 10px;
	padding: 10px 4px;
	z-index: var(--bubble-z-index);
}

.bubble-nano {
	font-size: 9px;
}

.bubble-small {
	font-size: 10px;
}

.bubble-medium {
	font-size: 12px;
}

.bubble-large {
	font-size: 16px;
}

.bubble:before,
.bubble:after {
	content: ' ';
	position: absolute;
	width: 0;
	height: 0;
}

.bubble-nano:before,
.bubble-small:before,
.bubble-medium:before,
.bubble-large:before {
	left: 10px;
	bottom: -15px;
	border: 7px solid;
	border-color: #333 transparent transparent #333;
}

.bubble-nano:after,
.bubble-small:after,
.bubble-medium:after,
.bubble-large:after {
	left: 12px;
	bottom: -10px;
	border: 5px solid;
	border-color: #fff transparent transparent #fff;
}
