#loading {
	position : absolute;
	left : 50%;
	top : 50%;
	margin-top : -50px;
	margin-left : -50px;
	width : 100px;
	text-align : center;
}

#loading img {
	width : 32px;
	height : 32px;
}

#loading p {
	display : block;
	margin-top : 20px;
	color : #ca2420;
}

@media screen and (min-width: 768px) {
	#loading {
		margin-top : -32px;
		margin-left : -32px;
	}
	#loading img {
		width : 64px;
		height : 64px;
	}
}

#loader-bg {
	position : fixed;
	width : 100%;
	height : 100%;
	top : 0;
	left : 0;
	background-color : #fff;
	z-index : 999;
}

#main {
	position : relative;
}

#main .main-pc {
	width : 100%;
	display : none;
	position : relative;
}

@media screen and (min-width: 768px) {
	#main .main-pc {
		display : block;
	}
}

#main .main-pc .main-logo {
	width : 990px;
	margin : 30px auto 0;
	position : absolute;
	top : 0;
	right : 0;
	bottom : 0;
	left : 0;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#main .main-pc .main-logo {
		margin : 10px auto 0;
	}
}

#main .main-pc .main-box {
	position : absolute;
	top : 0;
	right : 0;
	bottom : 0;
	left : 0;
	display : -ms-flexbox;
	display : flex;
	-ms-flex-direction : column;
	    flex-direction : column;
	-ms-flex-pack : center;
	justify-content : center;
	-ms-flex-align : center;
	align-items : center;
	text-align : center;
	width : 50%;
	margin : 0 auto;
}

#main .main-pc .main-box .main-ttl img {
	width : 80%;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#main .main-pc .main-box .main-ttl img {
		width : 60%;
	}
}

#main .main-pc .main-box .main-txt {
	margin-top : 20px;
	color : #fff;
	text-align : center;
	font-size : 27.2px;
	font-size : 1.7rem;
	font-weight : bold;
	font-style : italic;
	letter-spacing : 0;
	margin-left : -45px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#main .main-pc .main-box .main-txt {
		font-size : 1.5rem;
	}
}

#main .main-pc video {
	width : 100%;
}

#main .main-sp {
	display : block;
}

@media screen and (min-width: 768px) {
	#main .main-sp {
		display : none;
	}
}

#main .main-btn {
	position : absolute;
	bottom : 50px;
	right : 0;
	left : 0;
	margin : auto;
	display : inline-block;
	width : 27px;
	height : 15px;
	z-index : 5;
	transition : all 0.2s ease-out;
}

@media screen and (min-width: 768px) {
	#main .main-btn {
		width : 36px;
		height : 20px;
	}
}

#main .main-btn > img {
	width : 27px;
	height : 15px;
}

@media screen and (min-width: 768px) {
	#main .main-btn > img {
		width : 36px;
		height : 20px;
	}
}

@media screen and (min-width: 961px) {
	#main .main-btn:hover {
		cursor : pointer;
		bottom : 40px;
	}
}

#about {
	position : relative;
	padding : 10px 0 45px;
	background-color : #fff;
}

@media screen and (min-width: 768px) {
	#about {
		padding : 20px 0 45px;
	}
}

#about .m-txt-ttl {
	margin-top : 20px;
}

@media screen and (min-width: 768px) {
	#about .m-txt-ttl {
		margin-top : 0;
	}
}

#hackathon {
	position : relative;
	padding : 95px 0 45px;
	background-color : #ca2420;
}

@media screen and (min-width: 768px) {
	#hackathon {
		padding : 160px 0 44px;
	}
}

#hackathon:before {
	content : '';
	position : absolute;
	top : 0;
	left : 0;
	display : block;
	width : 0;
	height : 0;
	border-style : solid;
	border-width : 50px 0 0 100vw;
	border-color : #fff transparent transparent transparent;
}

@media screen and (min-width: 768px) {
	#hackathon:before {
		border-width : 120px 0 0 100vw;
	}
}

#hackathon [data-bg] {
	position : relative;
}

@media screen and (min-width: 961px) {
	#hackathon [data-bg]:before {
		content : '';
		position : absolute;
		top : -180px;
		right : 50%;
		margin-right : calc(-50% - 290px);
		display : block;
		width : 459px;
		height : 241px;
		background : transparent url('../../images/bg_about.png') left top no-repeat;
		background-size : 459px auto;
	}
}

#program {
	position : relative;
	padding : 95px 0 45px;
	background-color : #fff;
}

@media screen and (min-width: 768px) {
	#program {
		padding : 160px 0 44px;
	}
}

#program:before {
	content : '';
	position : absolute;
	top : 0;
	left : 0;
	display : block;
	width : 0;
	height : 0;
	border-style : solid;
	border-width : 50px 100vw 0 0;
	border-color : #ca2420 transparent transparent transparent;
}

@media screen and (min-width: 768px) {
	#program:before {
		border-width : 120px 100vw 0 0;
	}
}

#program [data-bg] {
	position : relative;
}

@media screen and (min-width: 961px) {
	#program [data-bg]:after {
		content : '';
		position : absolute;
		top : -720px;
		left : 50%;
		margin-left : calc(-50% - 290px);
		display : block;
		width : 586px;
		height : 1235px;
		background : transparent url('../../images/bg_program01.png') left top no-repeat;
		background-size : auto 1200px;
	}
}

#program .u-prog {
	*zoom : 1;
	padding-top : 30px;
	margin : 0;
}

#program .u-prog:after {
	content : ' ';
	display : table;
	clear : both;
}

@media screen and (min-width: 768px) {
	#program .u-prog {
		padding-top : 25px;
		margin : 30px -15px 0;
	}
}

#program .u-prog > *:first-child {
	margin-top : 0;
}

#program .u-prog .prog-img, #program .u-prog .prog-txt {
	margin-top : 10px;
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-img, #program .u-prog .prog-txt {
		padding : 0 15px;
		margin : 0;
	}
}

#program .u-prog .prog-img > *:first-child, #program .u-prog .prog-txt > *:first-child {
	margin-top : 0;
}

#program .u-prog .prog-img {
	display : inline-block;
	margin : 0 auto;
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-img {
		float : left;
		width : calc(100% / 3);
	}
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-txt {
		float : right;
		width : 66.6%;
	}
}

@media screen and (min-width: 768px) {
	#program .u-prog .prog-txt .m-txt-subttl2 {
		margin-top : -10px;
	}
}

#program .u-prog.prog01 .prog-img, #program .u-prog.prog02 .prog-img {
	position : relative;
}

#program .u-prog.prog01 .prog-img:before, #program .u-prog.prog02 .prog-img:before {
	content : '';
	position : absolute;
	top : -25px;
	left : 10px;
}

@media screen and (min-width: 768px) {
	#program .u-prog.prog01 .prog-img:before, #program .u-prog.prog02 .prog-img:before {
		top : -35px;
		left : 35px;
	}
}

#program .u-prog.prog01 .prog-img {
	position : relative;
}

#program .u-prog.prog01 .prog-img:before {
	width : 42px;
	height : 52px;
	background : url(../../images/i_num01.png) center center no-repeat;
	background-size : 42px auto;
}

@media screen and (min-width: 768px) {
	#program .u-prog.prog01 .prog-img:before {
		width : 57px;
		height : 70px;
		background-size : 57px auto;
	}
}

#program .u-prog.prog02 .prog-img {
	position : relative;
}

#program .u-prog.prog02 .prog-img:before {
	width : 54px;
	height : 54px;
	background : url(../../images/i_num02.png) center center no-repeat;
	background-size : 54px auto;
}

@media screen and (min-width: 768px) {
	#program .u-prog.prog02 .prog-img:before {
		width : 63px;
		height : 63px;
		background-size : 63px auto;
	}
}

#program .u-innovator {
	margin-top : 20px;
}

@media screen and (min-width: 768px) {
	#program .u-innovator {
		margin-top : 40px;
	}
}

#program .u-innovator .innovator-ttl {
	text-align : center;
	font-size : 25.6px;
	font-size : 1.6rem;
	font-weight : bold;
	line-height : 1;
	color : #ca2420;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-ttl {
		font-size : 1.9rem;
	}
}

#program .u-innovator .innovator-box {
	margin-top : 35px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#program .u-innovator .innovator-box {
		margin : 40px -10px 0;
		letter-spacing : -0.4em;
	}
}

@media screen and (min-width: 961px) {
	#program .u-innovator .innovator-box {
		margin : 40px -10px 0;
		display : -ms-flexbox;
		display : flex;
	}
}

#program .u-innovator .innovator-box .box-item {
	margin-top : 30px;
	position : relative;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#program .u-innovator .innovator-box .box-item {
		width : 50%;
		display : inline-block;
		letter-spacing : normal;
		padding : 0 10px;
		margin-top : 0;
	}
	#program .u-innovator .innovator-box .box-item:nth-child(n+3) {
		margin-top : 40px;
	}
}

@media screen and (min-width: 961px) {
	#program .u-innovator .innovator-box .box-item {
		width : 25%;
		padding : 0 10px;
		margin-top : 0;
	}
}

#program .u-innovator .innovator-box .box-item:before {
	content : '';
	width : 100%;
	height : 0;
	display : block;
	position : absolute;
	left : 0;
	margin : -15px 0 0;
	border-right : solid 15px transparent;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item:before {
		width : calc(100% - 20px);
		margin : -20px 10px 0;
		border-right : solid 20px transparent;
	}
}

#program .u-innovator .innovator-box .box-item:first-child {
	margin-top : 0;
}

#program .u-innovator .innovator-box .box-item .item-wrap {
	padding : 0 15px 15px;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item .item-wrap {
		padding : 0 20px 20px;
	}
}

#program .u-innovator .innovator-box .box-item .item-txt {
	color : #fff;
	text-align : center;
}

#program .u-innovator .innovator-box .box-item .item-txt .txt-en {
	font-family : 'Open Sans';
	font-weight : 900;
	margin-top : 5px;
	font-size : 28.8px;
	font-size : 1.8rem;
	font-weight : bold;
	letter-spacing : 0.05em;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item .item-txt .txt-en {
		font-size : 2.0rem;
	}
}

#program .u-innovator .innovator-box .box-item:nth-child(odd):before {
	border-bottom : solid 15px #ca2420;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item:nth-child(odd):before {
		border-bottom : solid 20px #ca2420;
	}
}

#program .u-innovator .innovator-box .box-item:nth-child(odd) .item-wrap {
	background-color : #ca2420;
}

#program .u-innovator .innovator-box .box-item:nth-child(even):before {
	border-bottom : solid 15px #000;
}

@media screen and (min-width: 768px) {
	#program .u-innovator .innovator-box .box-item:nth-child(even):before {
		border-bottom : solid 20px #000;
	}
}

#program .u-innovator .innovator-box .box-item:nth-child(even) .item-wrap {
	background-color : #000;
}

#day {
	position : relative;
	padding : 95px 0 45px;
	background-color : #ca2420;
}

@media screen and (min-width: 768px) {
	#day {
		padding : 160px 0 44px;
	}
}

#day:before {
	content : '';
	position : absolute;
	top : 0;
	left : 0;
	display : block;
	width : 0;
	height : 0;
	border-style : solid;
	border-width : 50px 0 0 100vw;
	border-color : #fff transparent transparent transparent;
}

@media screen and (min-width: 768px) {
	#day:before {
		border-width : 120px 0 0 100vw;
	}
}

#day [data-bg] {
	position : relative;
}

@media screen and (min-width: 961px) {
	#day [data-bg]:before {
		content : '';
		position : absolute;
		top : -450px;
		right : 50%;
		margin-right : calc(-50% - 420px);
		display : block;
		width : 593px;
		height : 592px;
		background : transparent url('../../images/bg_program02.png') left top no-repeat;
		background-size : 593px 592px;
	}
}

#info {
	position : relative;
	padding : 60px 0;
	background : url(../../images/bg_info_sp.jpg) center bottom no-repeat #5e99c1;
	background-size : 100% auto;
	width : 100%;
	height : 190%;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
	#info {
		min-height : 640px;
		background : url(../../images/bg_info_pc.jpg) left center no-repeat #5e99c1;
		background-size : 110% auto;
	}
}

@media screen and (min-width: 961px) {
	#info {
		min-height : 640px;
		background : url(../../images/bg_info_pc.jpg) left center no-repeat #5e99c1;
		background-size : 100% auto;
	}
}

@media screen and (min-width: 768px) {
	#info .info-box {
		margin : 100px -20px 0;
		display : -ms-flexbox;
		display : flex;
	}
}

#info .info-box .box-item {
	padding : 20px 0;
	text-align : center;
	color : #fff;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item {
		display : inline-block;
		width : 50%;
		padding : 0 20px;
	}
}

#info .info-box .box-item .item-ttl {
	font-size : 35.2px;
	font-size : 2.2rem;
	font-weight : bold;
	font-style : italic;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item .item-ttl {
		font-size : 2.6rem;
		letter-spacing : 0.15em;
	}
}

#info .info-box .box-item .item-ttl:first-letter {
	color : #ca2420;
}

#info .info-box .box-item .item-logo {
	margin-top : 10px;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item .item-logo {
		height : 80px;
		margin-top : 35px;
	}
}

#info .info-box .box-item .item-logo.jellyware img {
	width : 190px;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item .item-logo.jellyware img {
		width : 314px;
		padding-top : 20px;
	}
}

#info .info-box .box-item .item-logo.hackathon img {
	width : 55px;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item .item-logo.hackathon img {
		width : 80px;
	}
}

#info .info-box .box-item .item-txt {
	margin-top : 10px;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item .item-txt {
		margin-top : 35px;
	}
}

#info .info-box .box-item .item-txt [data-tel] {
	color : #fff !important;
}

#info .info-box .box-item + .box-item {
	border-top : solid 1px #fff;
}

@media screen and (min-width: 768px) {
	#info .info-box .box-item + .box-item {
		border-top : none;
		border-left : solid 1px #fff;
	}
}

#info:before {
	content : '';
	position : absolute;
	top : 0;
	left : 0;
	display : block;
	width : 0;
	height : 0;
	border-style : solid;
	border-width : 50px 100vw 0 0;
	border-color : #ca2420 transparent transparent transparent;
}

@media screen and (min-width: 768px) {
	#info:before {
		border-width : 120px 100vw 0 0;
	}
}

#info [data-bg] {
	position : relative;
}

@media screen and (min-width: 961px) {
	#info [data-bg]:after {
		content : '';
		position : absolute;
		top : -980px;
		right : 50%;
		margin-right : calc(-50% - 290px);
		display : block;
		width : 1064px;
		height : 1066px;
		background : transparent url('../../images/bg_day.png') left top no-repeat;
		background-size : 1064px 1066px;
	}
}

#corp {
	position : relative;
	padding : 60px 0 60px;
	background-color : #f2f2f2;
}

@media screen and (min-width: 768px) {
	#corp {
		padding : 40px 0 100px;
	}
}

#corp .corp-box {
	margin : 20px 0 0;
}

@media screen and (min-width: 768px) {
	#corp .corp-box {
		margin : 20px -15px 0;
		display : -ms-flexbox;
		display : flex;
	}
}

#corp .corp-box .box-item {
	margin-top : 15px;
}

@media screen and (min-width: 768px) {
	#corp .corp-box .box-item {
		padding : 0 15px;
		margin-top : 0;
		width : calc(100% / 3);
	}
}

#corp .corp-box .box-item .item-wrap {
	padding : 15px;
	background-color : #fff;
}

@media screen and (min-width: 768px) {
	#corp .corp-box .box-item .item-wrap {
		padding : 30px;
	}
}

#corp .corp-box .box-item .item-wrap > a, #corp .corp-box .box-item .item-wrap > span {
	display : block;
}

@media screen and (min-width: 961px) {
	#corp .corp-box .box-item .item-wrap > a:hover .item-logo {
		opacity : 0.7;
		-ms-filter : 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
	}
}

#corp .corp-box .box-item .item-wrap .item-logo {
	text-align : center;
	transition : all 0.2s ease-in-out;
}

#corp .corp-box .box-item .item-wrap .item-name {
	margin-top : 12px;
	text-align : center;
	font-size : 25.6px;
	font-size : 1.6rem;
	font-weight : bold;
}

@media screen and (min-width: 768px) {
	#corp .corp-box .box-item .item-wrap .item-name {
		font-size : 1.8rem;
	}
}

#corp .corp-box .box-item .item-wrap .item-desc {
	margin-top : 10px;
}

#corp .corp-box .box-item .item-wrap .item-desc > *:first-child {
	margin-top : 0;
}

#corp .corp-box + .corp-box {
	margin-top : 15px;
}

@media screen and (min-width: 768px) {
	#corp .corp-box + .corp-box {
		margin-top : 20px;
	}
}

#corp:after {
	content : '';
	position : absolute;
	top : -50px;
	left : 0;
	display : block;
	width : 0;
	height : 0;
	border-style : solid;
	border-width : 50px 0 0 100vw;
	border-color : transparent transparent transparent #f2f2f2;
}

@media screen and (min-width: 768px) {
	#corp:after {
		top : -120px;
		border-width : 120px 0 0 100vw;
	}
}
