html, body {
	position: relative;
	margin: 0;
	border: none;
	padding: 0;
	width: 100%;
	height: 100%;
	font-family: sans-serif;
	user-select: none;
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	background-color: #000;
}
a.back {
	position: absolute;
	top: 20px; left: 20px;
	font-size: 14px;
	color: #999;
	z-index: 10;
	cursor: pointer;
}
div.tohome {
	position: fixed;
	top: 5px;
	left: 5px;
	width: 40px;
	height: 40px;
	background-image: url(../image/home.svg);
	opacity: 0.3;
	background-size: contain;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	z-index: 10;
	cursor: pointer;
}
div.tohome:hover {
	opacity: 0.6;
}
div.debug {
	position: fixed;
	top: 0; left: 0;
	color: #FFF;
	z-index: 10;
}
div.help {
	position: fixed;
	/*right: calc(50% - 180px);*/
	bottom: 10px;
	left: 50%;
	-webkit-transform: translateX(-50%);
	-moz-transform: translateX(-50%);
	transform: translateX(-50%);
	width: 80%;
	max-width: 525px;
	height: 40px;
	background-image: url(../image/help_2.png);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: 50% 50%;
	z-index: 10;
}
div.popup {
	display: none;
	position: absolute;
	top: auto; right: auto;
	margin: 0;
	border: 1px solid #ff7f00;
	padding: 10px;
	max-width: 480px;
	min-height: 30px;
	background-color: rgba(0, 0, 0, 0.7);
	color: #fdd5ac;
	z-index: 10;
	box-sizing: border-box;
	filter: drop-shadow(0 0 5px #ff7f00);
}
div.popup h2 {
	margin: 0;
	font-size: 13px
}
div.popup p + h2 {
	margin-top: 20px;
}
div.popup h2 span {
	margin-left: 20px;
}
div.popup p {
	margin: 5px 0 0;
	font-size: 11px;
	line-height: 1.4em;
}
div.popup p span {
	color: #90775e;
}
div.viewer {
	display: none;
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	margin: 0;
	background: none repeat scroll 0 0 #333;
	z-index: 100;
}
div.viewer.on {
	display: block;
}

div.viewer > .close {
	position: absolute;
	display: block;
	top: 10px;
	right: 10px;
	bottom: auto;
	left: auto;
	margin: 0;
	width: 30px;
	height: 30px;
	background: url(../../img/parts/close.png);
	background-size: contain;
	cursor: pointer;
}
div.viewer > .img {
	display: table-cell;
	vertical-align: middle;
	width: 100%;
}
div.viewer > .img > img {
	max-width: 90%;
	max-height: 80%;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
}
div.viewer > .img > img.over {
	cursor: pointer;
}
div.viewer > .img > .caption {
	display: none;
	position: absolute;
	right: 5%;
	bottom: 10px;
	left: 5%;
	margin: 10px auto 0;
	max-width: 90%;
	color: #999;
	font-size: 10px;
	line-height: 1.4em;
	text-align: right;
	box-sizing: border-box;
}
div.viewer > .img > .caption.on {
	display: block;
}

h1 {
	position: fixed;
	margin: 0;
	top: 0;
	right: 20px;
	color: #F00;
	filter: drop-shadow(0 0 5px #000000);
}
h1 img {
	width: calc(100vw - 40px);
	max-width: 400px;
	cursor: pointer;
}
.menu {
	position: fixed;
	top: 70px;
	right: 0;
	width: auto;
	color: #F00;
	z-index: 20;
	/*filter: drop-shadow(0 0 5px #ff0000);*/
}
.menu .drawer {
	display: none;
	position: absolute;
	top: 0; left: -30px; right: auto;
	width: 30px;
	height: 30px;
	line-height: 30px;
	text-align: center;
	background-image: '../image/drawer.svg';
	background-position: bottom;
	background-repeat: no-repeat;
	cursor: pointer;
}
.menu .drawer.on {
	display: block;
}
.menu .drawer.open {
	left: auto; right: 0;
}
.menu .drawer img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
}
.menu .drawer img:hover {
	object-position: top 40%;
}
.menu .drawer.open img {
	object-position: bottom center;
}
.menu .drawer.open img:hover {
	object-position: top 60%;
}

.menu h3 {
	margin: 0 0 0;
	font-size: 0.9em;
	list-style: none;
}
.menu ul {
	margin: 0 0 20px;
	font-size: 0.8em;
	list-style: none;
	padding-inline-start: 0;
}
.menu ul li{
	padding: 0 5px 0 45px;
	width: 160px;
	height: 20px;
	line-height: 20px;
	background-image: url('../image/list-style.svg');
	background-position: center left;
	background-repeat: no-repeat;
	cursor: pointer;
	box-sizing: border-box;
}
.menu ul li:last-child{
	background-image: url('../image/list-style-bottom.svg');
	background-position: bottom left;
}
.menu ul.tag li:last-child{
	padding: 16px 5px 0 45px;
	height: 36px;
}

.menu ul li.on,
.menu ul li:hover {
	color: #000;
	font-weight: bold;
	background-color: rgba(255, 0, 0, 0.4);
}
.menu ul li a {
	line-height: inherit;
	color: inherit;
	text-decoration: none;
}
.menu svg {
	float: left;
	display: none;
}
.menu svg g .area {
	fill: rgba(0, 0, 0, 0) !important;
}

.menu svg text {
	font-family: sans-serif;
	font-size: 12px;
	font-weight: bolder;
	letter-spacing: 0.2;
	text-anchor: middle;
	dominant-baseline: middle;
	fill: #FF0000;
}

.menu svg g.label rect {
	fill: none;
	stroke: #FF0000;
	stroke-width: 2;
}
.menu svg g.label text {
}
.menu svg g[direction] {
}
.menu svg g[direction] circle,
.menu svg g[direction] polygon {
	fill: #990000;
}
.menu svg g[direction] line {
	stroke: #990000;
	stroke-width: 1;
}

.menu svg g[category] {
}
.menu svg g[category] circle {
	fill: #990000;
}
.menu svg g[category] rect {
	fill: none;
}
.menu svg g[category] text {
}


.menu svg g[direction],
.menu svg [toggle],
.menu svg g[category] {
	cursor: pointer;
}
.menu svg [toggle]:hover {
	filter: drop-shadow(0 0 5px #ff0000) drop-shadow(0 0 5px #ff0000);
}
.menu svg g[direction]:hover *:not(.area),
.menu svg g[category]:hover circle:not(.area) {
	stroke: #FF0000 !important;
	filter: drop-shadow(0 0 5px #ff0000) drop-shadow(0 0 5px #ff0000);
}
.menu svg g[category]:hover text {
	filter: drop-shadow(0 0 5px #ff0000) drop-shadow(0 0 5px #ff0000);
}

.menu svg g.on circle,
.menu svg g.on rect {
	fill: #FF0000;
	filter: drop-shadow(0 0 5px #FF0000);
}
.menu svg g.on text {
	fill: #000000;
}
.menu svg line {
	stroke-width: 1;
	stroke: #FF0000;
}

.menu svg g.link text {
	font-size: 11px;
}
.menu svg g.link[lang='ENGLISH'] text {
	text-anchor: start;
}
.menu svg g#link .label text {
	fill: #883333;
}
.menu svg g#link .link.on text {
	fill: #BB0000;
}
.menu svg g#link .link.on text:hover {
	fill: #FF0000;
	filter: drop-shadow(0 0 5px #ff0000) drop-shadow(0 0 5px #ff0000);
}

.menu svg g.ui line,
.menu svg g.ui polyline	{
	stroke-width: 1;
	stroke: #DDDDDD;
	fill: none;
}
.menu svg g.ui text {
	font-size: 12px;
	font-weight: normal;
	text-anchor: start;
	fill: #DDDDDD;
}
.menu svg g.home line,
.menu svg g.home polyline	{
	stroke-width: 1;
	stroke: #999999;
	fill: none;
}
.menu svg g.home text {
	font-size: 12px;
	font-weight: normal;
	text-anchor: start;
	fill: #999999;
}
.menu svg g.ui:hover,
.menu svg g.home:hover {
	filter: drop-shadow(0 0 5px #FFFFFF);
	cursor: pointer;
}

.menu svg *[lang].on {
	visibility: visible;
}
.menu svg *[lang]:not(.on) {
	visibility: hidden;
}
.menu svg g[language] text {
	font-size: 12px;
	font-weight: normal;
	fill: #666666;
}
.menu svg g[language]:hover {
	filter: drop-shadow(0 0 5px #FFFFFF);
	cursor: pointer;
}
.menu svg g.on[language] text {
	fill: #ffffff;
}
.menu svg line[language] {
	stroke-width: 1;
	stroke: #999999;
	fill: none;
}

dl.control {
	display: none;
	position: fixed;
	top: 10px;
	left: 10px;
	margin: 0;
	padding: 0;
	color: #FFF;
	font-size: 0.8em;
	list-style: none;
	text-align: left;
}
dl.control dt:not(.type, .label) {
	padding-left: 10px;
}
dl.control dt.type {
}
dl.control dt.label {
	margin-bottom: 0;
	width: 100%;
}
dl.control dt.label span {
	margin-left: 10px;
	font-size: 0.9em;
}
dl.control dt.label span input {
	margin-right: 5px;
}
dl.control dd {
	width: 400px;
	height: 26px;
}
dl.control dd input[type="range"] {
	-webkit-appearance: none;
	width: 160px;
}
dl.control dd input[type=range]:focus {
	outline: none;
}
dl.control dd input[type="range"]::-webkit-slider-container {
	margin: -8px 0 0 0;
}
dl.control dd input[type=range]::-webkit-slider-runnable-track {
	border-radius: 3px;
	width: 100%;
	height: 6px;
	cursor: pointer;
	animate: 0.2s;
	background: #999;
}
dl.control dd input[type="range"]::-webkit-slider-thumb {
	border: 2px solid #999;
	border-radius: 10px;
	height: 20px;
	width: 20px;
	background: #ffffff;
	cursor: pointer;
	-webkit-appearance: none;
	margin-top: -7px; /* (つまみの高さ - トラックの高さ) / 2 。つまみの高さは border を含む */
}
dl.control dd input[type="range"][name=red]::-webkit-slider-thumb,
dl.control dd input[type="range"][name=rmin]::-webkit-slider-thumb,
dl.control dd input[type="range"][name=rmax]::-webkit-slider-thumb {
	background-color: #F00;
	border-color: #900;
}
dl.control dd input[type="range"][name=green]::-webkit-slider-thumb,
dl.control dd input[type="range"][name=gmin]::-webkit-slider-thumb,
dl.control dd input[type="range"][name=gmax]::-webkit-slider-thumb {
	background-color: #0F0;
	border-color: #090;
}
dl.control dd input[type="range"][name=blue]::-webkit-slider-thumb,
dl.control dd input[type="range"][name=bmin]::-webkit-slider-thumb,
dl.control dd input[type="range"][name=bmax]::-webkit-slider-thumb {
	background-color: #00F;
	border-color: #009;
}
dl.control dd.MATERIAL,
dl.control dd.RGB {
	margin: 0 0 10px 10px;
}

dl.control dd textarea {
	border: none;
	width: 550px;
	height: 1em;
	background-color: rgba(0,0,0,0);
	color: #FFF;
	font-size: 0.8em;
	overflow: hidden;
	resize: none;
}

dl.control form.light {
	display: none;
}
dl.control form.light.on {
	display: block;
}

.view {
	position: relative;
	margin: 0;
	height: 100%;
	background-color: rgba(0, 0, 0, 1);
}
.default, .parameter, .other{
	display: none;
	position: absolute;
	z-index: 1000;
	color: #FFF;
	font-size: 8pt;
}
.default {
	top: 5px;
	left: 10px;
}
.parameter {
	top: 0;
	right: 10px;
}
.other {
	bottom: 5px;
	right: 10px;
}
button {
	padding: 3px 6px;
	line-height: 1em;
	border: 1px outset buttonface;
	background-color: rgb(248, 248, 248);
	border: 1px solid rgb(166, 166, 166);
	border-radius: 5px;
	cursor: pointer;
}
dl {
	line-height: 25px;
}
dl dt {
	margin: 0 0 -25px;
	width: 100px;
	height: 25px;
}
dl dd {
	margin: 0 0 0 100px;
}
dl dd span {
	display: inline-block;
	width: 80px;
}
