/**
 * copyrights heroidea inc.
 * 2024.02.18
 * by:lussa@heroidea.com
 */

@charset "utf-8";

body{
	margin:0 auto;
	padding:0;
	width:100%;
	height:auto;
	min-height:100%;
	position:relative;
	background:#282828;
	display:flex;
	justify-content:space-between;
	align-items:center;
	flex-flow:column nowrap;
}

body.home-page{
	height:100%!important;
	flex-wrap:wrap;
	justify-content:center!important;
	overflow:hidden;
}

/**
 * Home
 */
.home-main{
	margin:0 auto;
	padding:0;
	width:100%;
	height:100%;
	flex-shrink:0;
	display:flex;
	justify-content:center;
	align-items:center;
	flex-flow:column nowrap;
	overflow:hidden;
}

.common-main{
	margin:0 auto;
	padding:0;
	position:relative;
	width:26rem;
	height:26rem;
	background-image:-webkit-linear-gradient(
		0deg,
		#f00,
		#ff7f00,
		#ff0,
		#0f0,
		#0ff,
		#35a9ef,
		#8b00ff
	);
	background-image:-o-linear-gradient(
		0deg,
		#f00,
		#ff7f00,
		#ff0,
		#0f0,
		#0ff,
		#35a9ef,
		#8b00ff
	);
	background-image:linear-gradient(
		0deg,
		#f00,
		#ff7f00,
		#ff0,
		#0f0,
		#0ff,
		#35a9ef,
		#8b00ff
	);
	background-size:400%;
	border-radius:26rem;
	box-shadow:0 0 .5rem #000;
	display:flex;
	justify-content:center;
	align-items:center;
	color:#fff;
	animation:animate_main 10s linear infinite;
	-webkit-animation:animate_main 10s linear infinite;
	-moz-animation:animate_main 10s linear infinite;
	-ms-animation:animate_main 10s linear infinite;
	-o-animation:animate_main 10s linear infinite;
	z-index:1;
	overflow:hidden;
}

.common-main::before{
	content:"●";
	position:absolute;
	width:calc(100% - 1rem);
	height:calc(100% - 1rem);
	left:.5rem;
	top:.5rem;
	background-image:-webkit-linear-gradient(
		360deg,
		#f00,
		#ff7f00,
		#ff0,
		#0f0,
		#0ff,
		#35a9ef,
		#8b00ff
	);
	background-image:-o-linear-gradient(
		360deg,
		#f00,
		#ff7f00,
		#ff0,
		#0f0,
		#0ff,
		#35a9ef,
		#8b00ff
	);
	background-image:linear-gradient(
		360deg,
		#f00,
		#ff7f00,
		#ff0,
		#0f0,
		#0ff,
		#35a9ef,
		#8b00ff
	);
	background-size:400%;
	border-radius:100%;
	animation:animate_main_before 10s linear infinite;
	-webkit-animation:animate_main_before 10s linear infinite;
	-moz-animation:animate_main_before 10s linear infinite;
	-ms-animation:animate_main_before 10s linear infinite;
	-o-animation:animate_main_before 10s linear infinite;
	box-shadow:0 0 .25rem #000;
	z-index:2;
	overflow:hidden;
}

.common-main::after{
	content:"●";
	position:absolute;
	width:calc(100% - 2rem);
	height:calc(100% - 2rem);
	left:1rem;
	top:1rem;
	background:#282828;
	border-radius:100%;
	box-shadow:0 0 .5rem #000;
	z-index:3;
	overflow:hidden;
}

.common-main:hover::before,
.common-main:hover{
	-webkit-animation-play-state:paused;
	-moz-animation-play-state:paused;
	-o-animation-play-state:paused;
	animation-play-state:paused;
}

.content{
	margin:-11.5rem auto auto -11.5rem;
	padding:3.5rem;
	position:absolute;
	left:50%;
	top:50%;
	width:23rem;
	height:23rem;
	border-radius:23rem;
	box-shadow:0 0 .25rem #000;
	border:.025rem solid #313131;
	color:#999;
	text-shadow:0 .05rem 0 #000;
	white-space:normal;
	word-wrap:wrap;
	word-break:break-all;
	z-index:4;
	overflow:hidden;
}

.content:hover{
	/*color:#fff;*/
}

.logo{
	margin:0 auto;
	padding:0;
	width:5.25rem;
	height:2.1rem;
	background:url(../images/logo-heroidea.png) center center no-repeat;
	overflow:hidden;
}

.logo img{
	border:0;
	width:3rem;
	height:2.1rem;
	touch-action:none;
	user-select:none;
	flex-shrink:0;
	overflow:hidden;
}

.content>.menu{
	margin:1rem auto 0 auto;
	padding:1rem 0 1rem 0;
	width:100%;
	height:auto;
	border-top:.025rem solid #313131;
	overflow:hidden;
}

.content>.menu li{
	margin:.6rem auto;
	padding:0 .5rem;
	list-style:outside none;
	width:min-content;
	min-width:5rem;
	height:1.4rem;
	line-height:1.4rem;
	border-radius:.25rem;
	box-shadow:0 0 .15rem #000;
	border:.025rem solid #313131;
	white-space:nowrap;
	text-align:center;
	transition:.2s ease-in-out;
	overflow:hidden;
}

.content>.menu.zh{
	font-size:.7rem;
}

.content>.menu li.active,
.content>.menu li:hover{
	padding:0 2.5rem;
	background:-webkit-linear-gradient(#282828 0%, #333 100%);
	background:-o-linear-gradient(#282828 0%, #333 100%);
	background:linear-gradient(#282828 0%, #333 100%);
}

.content>.menu a{
	display:block;
	width:min-content;
}

.content>.copyrights{
	color:#555;
}

.content>.copyrights>p{
	line-height:150%;
}

.content>.copyrights>p.cp{
	padding:0 0 .25rem 0;
}

.content>.copyrights a:link{
	color:#555;
	text-decoration:none;
}

.content>.copyrights a:visited{
	color:#555;
	text-decoration:none;
}

.content>.copyrights a:hover{
	color:#999;
	text-decoration:none;
}

/**
 * common-header
 */
.common-header{
	margin:0 auto;
	padding:.5rem .25rem;
	position:sticky;
	top:0;
	left:0;
	width:100%;
	height:3.1rem;
	display:flex;
	justify-content:center;
	align-items:center;
	/*background-position:center 1rem;*/
	background:#282828;
	box-shadow:0 0 .25rem #000;
	border-bottom:.025rem solid #313131;
	z-index:999;
	overflow:hidden;
}

.common-header li{
	margin:0 .7rem 0 .7rem;
	padding:0;
	position:relative;
	flex-shrink:1;
	list-style:outside none;
	width:min-content;
	height:100%;
	line-height:2rem;
	white-space:nowrap;
	font-size:.7rem;
	overflow:hidden;
}

.common-header li.logo{
	margin:0 1.5rem 0 0;
	height:2.1rem;
	flex-shrink:0;
}

.common-header li.active a:link,
.common-header li.active a:visited{
	color:#fff;
}

/**
 * sub-title sub-content
 */
.sub-title{
	margin:1rem auto;
	padding:0;
	position:relative;
	width:auto;
	height:2rem;
	line-height:2rem;
	font-size:1.5rem;
	font-weight:bold;
	color:#333;
	text-shadow:0 .05rem 0 #000;
	z-index:1;
	overflow:hidden;
}

.sub-title::before{
	content:attr(text-data);
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:50%;
	line-height:2rem;
	color:#666;
/*	animation:animate_subtitle 5s linear infinite;
	-webkit-animation:animate_subtitle 5s linear infinite;
	-moz-animation:animate_subtitle 5s linear infinite;
	-ms-animation:animate_subtitle 5s linear infinite;
	-o-animation:animate_subtitle 5s linear infinite;*/
	z-index:2;
	overflow:hidden;
}

.sub-content{
	margin:0 auto;
	padding:.25rem;
	width:100%;
	height:auto;
	overflow:hidden;
}

.sub-content>p{
	margin:0 auto;
	padding:0;
	line-height:150%;
	font-size:.7rem;
	color:#999;
	text-shadow:0 .05rem 0 #000;
	overflow:hidden;
}

.sub-content p.spe-text{
	padding:.5rem 0;
	font-size:.9rem;
	color:#bbb;
}

.sub-content>p.spe-text-p{
	padding:.15rem 0;

}

/**
 * projects
 */
.projects{
	margin:0 auto;
	padding:.5rem .25rem;
	max-width:49rem;
	height:100%;
	flex-shrink:1;
	overflow:hidden;
}

.projects .project-items{
	margin:0 auto;
	padding:0;
	width:100%;
	height:auto;

	display:flex;
	justify-content:flex-start;
	align-items:flex-start;
	flex-basis:20%;
	flex-wrap:wrap;



	overflow:hidden;
}

.projects .project-items>li{
	margin:.2rem;
	padding:.25rem;
	position:relative;
	list-style:outside none;
	width:18%;
	min-width:7rem;
	height:11rem;
	box-shadow:0 0 .1rem #000;
	border:.025rem solid #313131;
	border-radius:.15rem;
	color:#999;
	transition:.15s ease-in-out;
	overflow:hidden;
}

.projects .project-items>li:hover{
	box-shadow:0 0 .25rem #000;
}

.projects>.sub-content>.project-items>li p{
	margin:0 auto;
	padding:0;
	width:100%;
	line-height:120%;
	overflow:hidden;
}

.projects>.sub-content>.project-items>li .item-ico{
	padding:.5rem 0;
	height:4.5rem;
}

.projects>.sub-content>.project-items>li .item-ico img{
	border-radius:.15rem;
}

.projects>.sub-content>.project-items>li .item-subject{
	padding:0 0 .5rem 0;
	font-size:.7rem;
}

.projects>.sub-content>.project-items>li .item-intro{
	font-size:.6rem;
	color:#666;
}

.projects>.sub-content>.project-items>li>a,
.projects>.sub-content>.project-items>li>.item-btn{
	display:block;
	position:absolute;
	right:.25rem;
	font-size:.6rem;
	white-space:nowrap;
	overflow:hidden;
}

.projects>.sub-content>.project-items>li>a{
	padding:.25rem;
	bottom:.25rem;
}

.projects>.sub-content>.project-items>li>.item-btn{
	bottom:.5rem;
	color:#666;
}

.projects>.sub-content>.project-items>li .item-btn{
	padding:0 .5rem;
	width:auto;
	height:1.4rem;
	line-height:1.4rem;
	box-shadow:0 0 .15rem #000;
	border:.025rem solid #313131;
	border-radius:1.4rem;
}

.projects>.sub-content>.project-items>li>a>.item-btn:hover{
	background:-webkit-linear-gradient(#282828 0%, #333 100%);
	background:-o-linear-gradient(#282828 0%, #333 100%);
	background:linear-gradient(#282828 0%, #333 100%);
}

.projects .project-solutions{
	margin:0 auto 1rem auto;
	width:min-content;
	height:auto;
	border-radius:100%;
	box-shadow:0 0 .15rem #000;
	border:.025rem solid #313131;
	overflow:hidden;
}

.projects .project-open{
	margin:0 auto 1rem auto;
	width:min-content;
	height:auto;
	overflow:hidden;
}

/**
 * about
 */
.about,
.contact{
	margin:0 auto;
	padding:.5rem .25rem;
	width:100%;
	height:100%;
	flex-grow:1;
	flex-shrink:1;
	color:#999;
	overflow:hidden;
}

/**
 * contact
 */
.contact .con-item{
	margin:.8rem auto;
	padding:0 .8rem .5rem .8rem;
	width:min-content;
	/*min-width:10rem;*/
	height:auto;
	/*border-radius:.25rem;
	box-shadow:0 0 .15rem #000;
	border:.025rem solid #313131;*/
	white-space:nowrap;
	overflow:hidden;
}

/**
 * common
 */
.zh-web,
.en-web{
	position:fixed;
	padding:0;
	top:.7rem;
	right:.7rem;
	left:auto;
	bottom:auto;
	display:block;
	width:1.6rem;
	height:1.6rem;
	line-height:1.6rem;
	border-radius:1.6rem;
	box-shadow:0 0 .15rem #000;
	border:.025rem solid #313131;
	color:#999;
	transition:.1s ease-in-out;
	z-index:9999;
	overflow:hidden;
}

.zh-web:hover,
.en-web:hover{
	padding:.5rem;
	width:2rem;
	height:2rem;
	line-height:1rem;
	border-radius:2rem;
	background:linear-gradient(180deg, #282828 0%, #333 100%);
}

/**
 * footer
 */
.footer{
	margin:1rem auto 0 auto;
	padding:1rem 0;
	flex-shrink:0;
	width:100%;
	height:auto;
	box-shadow:0 0 .15rem #000;
	border-top:.025rem solid #313131;
	color:#666;
	overflow:hidden;
}

.footer>p{
	line-height:150%;
}

.footer>p.cp{
	padding:0 0 .25rem 0;
}

.footer ~ * {
	display:none!important;
}

.dot {
	margin:0 .15rem;
	width: min-content !important;
}

@keyframes animate_main {
	0% {
		transform: rotate(0deg);
		background-position:0%, 50%;
	}

	100% {
		transform: rotate(720deg);
		background-position:100%, 50%;
	}
}

@-webkit-keyframes animate_main{
	0% {
		transform: rotate(0deg);
		background-position:0%, 50%;
	}

	100% {
		transform: rotate(720deg);
		background-position:100%, 50%;
	}
}

@-moz-keyframes animate_main{
	0% {
		transform: rotate(0deg);
		background-position:0%, 50%;
	}

	100% {
		transform: rotate(720deg);
		background-position:100%, 50%;
	}
}

@-o-keyframes animate_main{
	0% {
		transform: rotate(0deg);
		background-position:0%, 50%;
	}

	100% {
		transform: rotate(720deg);
		background-position:100%, 50%;
	}
}

@keyframes animate_main_before {
	0%,100% {
		transform: rotate(0deg);
		border-radius:65%;
		/*background-position:0%, 50%;*/
	}

	50% {
		transform: rotate(-720deg);
		border-radius:20%;
		/*background-position:100%, 50%;*/
	}
}

@-webkit-keyframes animate_main_before {
	0%,100% {
		transform: rotate(0deg);
		border-radius:65%;
	}

	50% {
		transform: rotate(-720deg);
		border-radius:20%;
	}
}

@-moz-keyframes animate_main_before {
	0%,100% {
		transform: rotate(0deg);
		border-radius:65%;
	}

	50% {
		transform: rotate(-720deg);
		border-radius:20%;
	}
}

@-o-keyframes animate_main_before {
	0%,100% {
		transform: rotate(0deg);
		border-radius:65%;
	}

	50% {
		transform: rotate(-720deg);
		border-radius:20%;
	}
}




@keyframes animate_subtitle{
	0%,100%{
		height:25%;
	}

	50% {
		height:75%;
	}
}