@charset "utf-8";
.intro {
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background-color: #fff;
	z-index: 100;
	opacity: 0;
	pointer-events: none;
}
.intro h1 {
	width: 140px;
	height: auto;
}
.js-intro--show .intro {
	opacity: 1;
}
.js-intro--hide .intro {
	transition: 1.5s ease;
}
.msie .intro-wind,
.edge .intro-wind {
	display: none;
}

.kv {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100vh;
	margin: 0 auto;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	background-color: rgb(255, 255, 255);
	transition: background 1s ease 0.5s;
	overflow: hidden;
	backface-visibility:hidden;
}
.kv-inner {
	position: relative;
	height: 100%;
	-webkit-backface-visibility:hidden;
	backface-visibility:hidden;
}

.kv-ttl {
	position: relative;
	z-index: 5;
	width: calc(100% - 50px);
	margin: 0 auto;
	text-align: center;
	color: #fff;
	/* display: none !important; */
}
.kv-ttl .lang {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	line-height: 1;
}
.kv-ttl .lang > span {
	margin-bottom: 0.5em;
}
.kv-ttl .lang.ja {
	font-size: 1.4rem;
}
.kv-ttl__span {
	display: inline-block;
	backface-visibility: hidden;
}
.kv-ttl__span span {
	white-space: nowrap;
	overflow: hidden;
	display: inline-block;
	backface-visibility: hidden;
}
.kv-ttl .lang.en {
    margin-bottom: 10px;
    font-size: 1.2rem;
}
.kv-ttl__slide:before,
.kv-ttl__slide:after {
    position: absolute;
    content: "";
    width: 40%;
    height: 1px;
    left: 0;
    bottom: -15px;
    background-color: currentColor;
    opacity: 0.3;
}
.kv-ttl__slide {
    position: relative;
    height: 1em;
    display: inline-block;
}
.onload .kv-ttl__slide:after {
	width: 0%;
	opacity: 1;
}
.onload .playstart .kv-ttl__slide:after {
	animation: slide-animation 17.5s linear 0s 1;
}
@keyframes slide-animation {
	0% {
		width: 0%;
	}
	90% {
		width: 90%;
		opacity: 1;
	}
	100% {
		width: 100%;
		opacity: 0;
	}
}
.kv-ttl__slide-inner {
	position: relative;
	display: block;
	height: 100%;
	transition: all 0.5s ease 0.5s;
	overflow: hidden;
}
.kv-ttl__word {
	position: absolute;
	display: block;
	width: auto;
	height: 1em;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	white-space: nowrap;
	text-align: left;
	background: none !important;
	border: none !important;
}
.kv-ttl__word:before {
	opacity: 0.3;
}
.kv-ttl__word .char {
	display: inline-block;
	transition: all 0.5s cubic-bezier(.86,0,.07,1);
	transition-property: transform, opacity;
	transition-delay: 0s;
	transition-duration: 1s;
	opacity: 0;
	transform: translateY(1.5em) rotate(-25deg);
}
.kv-ttl__word .char:nth-child(odd) {
	transform: translateY(1.5em) rotate(25deg);
}
.kv-ttl__word.current .char {
	opacity: 1;
	transition-duration: 2s, 0.5s;
	transform: translateY(0) rotate(0turn) !important;
}
.kv-ttl__span .char {
	display: inline;
	transition: all 0.5s cubic-bezier(.86,0,.07,1);
	transition-property: transform, opacity;
	transition-delay: 0s;
	transition-duration: 1s;
	opacity: 0;
	transform: translateY(1.5em);
}
.js-intro--hide .kv-ttl__span .char {
	opacity: 1;
	transition-duration: 2s, 0.5s;
	transform: translateY(0) !important;
}
.kv__img {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	height: 100%;
	width: 100%;
}
.image-reel {
	position: absolute;
	top: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	margin: auto;
	padding: 0;
	font-size: 0;
	line-height: 0;
	list-style: none;
	overflow: hidden;
	background-color: #000;
}
.image-reel:before {
	position: absolute;
	width: 100%;
	height: 100%;
	display: block;
	content: "";
	background-color: #000;
	z-index: 10;
	opacity: 0;
}
.image-reel.hidestart:before {
	opacity: 1;
	transition: opacity 3s ease-in;
}
.image-reel.showstart:before {
	opacity: 0;
	transition: opacity 2s ease-out;
}
.image-reel:after {
	content: "";
	position: absolute;
	display: block;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 11;
}
.image-reel-item {
	position: absolute;
	opacity: 0;
	margin: 0;
	padding: 0;
	font-size: 0;
	line-height: 0;
	top: 0;
	height: 100%;
	width: 100%;
	transition: all 0s cubic-bezier(.44,.07,.05,.69);
}
.image-reel-item-inner {
	height: 100%;
	width: 100%;
}
.image-reel-item-inner p {
    line-height: 1;
    position: absolute;
}
.image-reel .image-reel-item-bg.img {
	display: none;
}
.image-reel .image-reel-item-bg.video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.image-reel-item.current {
	opacity: 1;
	overflow: hidden;
}
.image-reel-item.type-img {
	background-position: 0 center;
}
.type-img .image-reel-item-inner {
	position: absolute;
	left: -50px;
	top: 0;
	width: calc(100% + 100px);
	height: 100%;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	transform: translate3d(0, 0, 0);
	transform-origin: center center;
	transition: transform 7s linear;
}
.image-reel-item.type-img .image-reel-item-inner {
	transform: translate3d(50px, 0, 0);
}
.image-reel-item.type-img.current .image-reel-item-inner {
	transform: translate3d(-50px, 0, 0);
}
.slide-txt {
    color: #ffffff !important;
	letter-spacing: 1px;
}
.slide-txt1 {
    top: calc(180 / 1366 * 100vw);
    right: calc(200 / 1366 * 100vw);
}
.slide-txt2 {
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
}
.slide-txt3 {
	right: calc(200 / 1366 * 100vw);
	bottom: calc(90 / 1366 * 100vw);
}

@media screen and (min-width:375px) {
	.kv-ttl__slide {
		height: calc(20 / 375 * 100vw);
	}
}
@media screen and (min-width:768px) {
	.kv-ttl__slide {
		height: calc(37 / 768 * 100vw);
	}
}
@media screen and (min-width:960px) {
	.kv-ttl__slide {
		height: calc(37 / 960 * 100vw);
	}
}
@media screen and (min-width:1280px) {
	.kv-ttl__slide {
		height: calc(30 / 1280 * 100vw);
	}
}
@media screen and (min-width:1360px) {
	.slide-txt {
		font-size: calc(30 / 1366 * 100vw);
	}
	.kv-ttl .lang.en {
		margin-bottom: 20px;
		font-size: 2.5rem;
	}
	.kv-ttl__slide {
		height: calc(34 / 1360 * 100vw);
	}
	.kv-ttl__slide:before,
	.kv-ttl__slide:after {
		bottom: -30px;
	}
}