html {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	font-size: 62.5%;
}
*, *:before, *:after {
	-webkit-box-sizing: inherit;
	-moz-box-sizing: inherit;
	box-sizing: inherit;
}
body {
	margin: 0;
	background: rgb(6,10,22);
	font-family: "ITC Franklin Gothic", "ITC Franklin Gothic LT Pro", "Libre Franklin", Arial, "Liberation Sans", system-ui, -apple-system, BlinkMacSystemFont, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
	font-size: 1.6rem;
	line-height: 1.375;
	color: #fff;
}
body, button, .button {
	font-size: 1.6rem;
	font-weight: 400;
}
button, .button {
	position: relative;
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 2.8rem;
	min-width: 10rem;
	padding: 0 1.2rem;
	border-radius: .7rem;
	border: none;
	background: linear-gradient(#f3f3f3, #d3d3d3);
	box-shadow: 0 0 0 1px #5e5e5e, 0 3px 0 -2px #f3f3f3 inset, 2px 2px 0 0 #fff inset, -2px -2px 0 0 #c4c4c4 inset, 2px 2px 0 1px rgba(0,0,0,.145);
	font-family: Arial, "Liberation Sans", system-ui, -apple-system, BlinkMacSystemFont, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
	line-height: 1;
	text-align: center;
	color: #000;
	text-shadow: .1rem .1rem 0 #fff;
	cursor: pointer;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
	overflow: hidden;
}
button:disabled, .button.disabled {
	cursor: default;
	color: #989898;
}
button:not(:disabled):hover, .button:not(.disabled):hover {
	background: linear-gradient(#fff 50%, #e8e8e8);
	box-shadow: 0 0 0 1px #5e5e5e, 0 3px 0 -2px #fff inset, 2px 2px 0 0 #fff inset, -2px -2px 0 0 #d7d7d7 inset, 2px 2px 0 1px rgba(0,0,0,.145);
}
button .l, .button .l {
	position: relative;
	left: -1.2rem;
	padding-left: 1px;
	border-right: 1px solid transparent;
	border-image: url(assets/dotted.svg) 1 repeat;
	background: rgba(255,255,255,.5);
}
button .l img, .button .l img {
	display: block;
	width: 1.6rem;
	height: 1.6rem;
	margin: .6rem;
	pointer-events: none;
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none; /* Standard syntax */
}
button .r, .button .r {
	flex: auto;
} 
input[type="file"] {
	position: absolute;
	left: -99rem;
}
h1 {
	margin: 0;
	font-size: 3rem;
	line-height: 1.1;
	font-weight: 900;
}
h2 {
	margin: 1rem 0;
	font-size: 2.2rem;
	font-weight: 900;
	color: #fc0;
}
p {
	margin: 1.2rem 0;
}
pre {
	display: inline-block;
	margin: 0;
	padding: 0 .25em;
	border-radius: .25em;
	background-color: rgba(255,255,255,.25);
}
a {
	color: #fc0;
	text-decoration: none;
}
header, section {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 1rem;
}
header {
	display: flex;
	align-items: center;
	padding-top: 2rem;
	padding-bottom: 2rem;
	font-size: 1.4rem;
}
header .l {
	flex: auto;
	padding-right: 1.2rem;
}
header .r {
	line-height: 1.2;
	text-align: right;
	color: #bfbfbf;
}
section {
	max-width: 1000px;
	margin-top: 4rem;
	margin-bottom: 4rem;
	text-align: justify;
}
embed, ruffle-embed {
	display: block;
	margin: 0 auto;
	background: #000;
}
#play {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 80vh;
	min-height: 570px;
	max-height: 800px;
	border-top: 1px solid #333;
	border-bottom: 1px solid #333;
	background: rgb(11,20,43);
}
#help {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3rem;
	border-radius: 2rem;
	background: linear-gradient(#706b94, #9d9ddd);
	text-align: left;
	color: #000;
}
#help > div:first-child {
	width: 100%;
	padding-right: 1.6rem;
	line-height: 1.25;
}
#help h2 {
	margin: 0 0 .5rem;
	font-size: 2rem;
	color: #fff;
}
#help button {
	margin-left: 20px;
}
#recover {
	color: #888;
	font-weight: normal;
	font-size: 14px;
}
.nowrap {
	white-space: nowrap;
}
.noselect {
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
#overlay {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba(6,10,22,.75);
	backdrop-filter: blur(1rem);
}
#bubble {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: relative;
	min-width: 30rem;
	max-width: 64rem;
	min-height: 20rem;
	padding: 1rem;
	border: 35px solid transparent;
	border-image: url("guide/border-shadow.png") 35 fill;
	text-align: center;
	color: #000;
}
#bubble:empty::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 3.2rem;
	height: 3.2rem;
	margin-left: -1.6rem;
	margin-top: -1.6rem;
	border-radius: 50%;
	border: .4rem solid #fff;
	border-left-color: transparent;
	border-bottom-color: transparent;
	animation: rotation 1s linear infinite;
}
#bubble h1 {
	margin: 0 0 1.6rem;
	font-size: 2rem;
	color: #333;
}
#bubble h1, #bubble p {
	width: 100%;
}
#bubble p {
	margin: 0 0 1.2rem;
	text-wrap: balance;
}
#bubble button, #bubble .button {
	margin: 1.2rem 1rem 0;
}
@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@media (max-width: 640px) {
	#help {
		padding-left: 2rem;
		padding-right: 2rem;
		flex-wrap: wrap; 
		text-align: center;
	}
	#help > div:first-child {
		flex: none;
		margin-bottom: 15px;
	}
	#help > div:first-child > div {
		margin: 1rem 0;
	}
	#help .btn { margin: 0 10px; }
	
}
@media (max-width: 450px) {
	#header {
		flex-direction: column;
	}
	#header .r {
		text-align: center;
	}
	#play {
		height: 60vh;
	}
	#help {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}