html,body {
    height: 100%;
}
body {
    margin: 0;
    padding: 0;
}
p,h1,h2,h3,h4,h5,h6,ul,ol,dl,li,dt,dd,table,form,iframe,picture {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
img {
    vertical-align: bottom;
    width: 100%;
    height: auto;
}
li {
    list-style-type: none;
}

.sp {
    display: none;
}

body {
    background: #000;
}

body.noscroll {
	overflow: hidden;
}

.ld-overlay {
    position: fixed;
    color: #333;
    font-size: 32px;
    letter-spacing: 0.4pt;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    z-index: 1000;
    overflow: hidden;
}
.ld-overlay .loading {
    position: fixed;
    width: 150px;
    z-index: 1002;
    padding-bottom: 30px;
    transition: all 1s;
}
.ld-overlay::after {
    content: '';
    display: block;
    position: fixed;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1001;
    transition: all 0.5s 1s cubic-bezier(.49,.06,.57,.97);
    }
.ld-overlay::before {
    content: '';
    display: block;
    position: fixed;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #FFF;
    z-index: 1000;
    transition: all 0.5s 1.4s cubic-bezier(.49,.06,.57,.97);
}
.ld-overlay.loaded .loading {
    opacity: 0;
}
.ld-overlay.loaded::after {
    left: 100%;
    width: 0%;
}
.ld-overlay.loaded::before {
    left: 70%;
    width: 30%;
}

.wrap {
    min-width: 1100px;
    height: 100%;
    min-height: 49vw;
    background: #FFF url(../images/home/home_bg.jpg) no-repeat right center;
    background-size: auto 100%;
    position: relative;
}
.site-title {
    /*width: 50%;*/
    width: 100%;
    height: 100%;
    overflow: hidden;
    padding-left: 220px;
    box-sizing: border-box;
    background: url(../images/home/site_logo.png) no-repeat right center;
    background-size: auto 100%;
}
.site-title img {
    opacity: 0;
}
.gnav {
    position: absolute;
    top: 0;
    left: 0;
    width: 220px;
    height: 100%;
    background: rgba(255,255,255,0.8);
    z-index: 1;
    display: flex;
    flex-direction: column;
}
.gnav .gnav-bnrs {
    /*padding: 10px;*/
    margin-top: 10px;
}
.gnav .gnav-bnrs a {
    text-decoration: none;
    display: block;
    position: relative;
    /*border-top: solid 1px #91bfab;
    border-bottom: solid 1px #91bfab;*/
    background: #cae1d7;
    color: #000;
    font-size: 16px;
    font-family: serif;
    padding: 14px 15px;
    text-align: center;
}
.gnav .gnav-bnrs a:after {
    content: '→';
}
.gnav .gnav-sns {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    position: relative;
    padding-top: 30px;
}
.gnav .gnav-sns::before {
    content: 'SNS';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    font-size: 12px;
    font-family: serif;
    letter-spacing: 0.2em;
    text-align: center;
    width: 100%;
}
.gnav .gnav-btns a {
    display: block;
    transition: all 0.3s;
}
.btn-comments {
    transition: all 0.3s;
}
.btn-comments:hover {
    opacity: 0.6;
    cursor: pointer;
}
.gnav .gnav-sns a {
    display: block;
    width: 47px;
    margin: 0 2px;
    transition: all 0.3s;
}
.gnav .gnav-mvtk {
    margin-top: 30px;
}
.gnav .gnav-mvtk a {
    display: block;
    width: 55%;
    max-width: 200px;
    margin: 0 auto 10px;
}
.gnav a:hover {
    opacity: 0.6;
}
.gnav .eirin {
    margin-top: auto;
}

@media screen and (max-height: 680px) and (min-width: 920px) {
    .gnav .gnav-btns a,
    .gnav .gnav-btns span {
        display: block;
        padding: 0 20px;
    }
    .gnav .gnav-mvtk {
        padding: 0 10px;
        margin-top: 15px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .gnav .gnav-mvtk a {
        width: calc(50% - 5px);
        margin: 0 auto 5px;
    }
    .gnav .gnav-mvtk a img {
        /*height: 30px;
        width: auto;*/
    }
}


.contents {
    position: absolute;
    top: 0;
    left: 0;
    padding-left: 220px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-sizing: border-box;
}
.contents-inner {
    display: flex;
    flex-direction: column;
    width: 48%;
    height: 100%;
    padding: 40px 0 160px;
}
.bnr-trailer {
    position: relative;
    margin: auto auto 0;
    width: 64.4%;
    max-width: 534px;
    overflow: hidden;
}
.bnr-trailer::after {
    pointer-events: none;
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: url(../images/home/bnr_trailer_playbtn2.png) no-repeat center center;
    background-size: cover;
    z-index: 1;
}
.bnr-trailer img {
    transition: all 0.4s ease-out;
}
.bnr-trailer:hover img {
    transform: scale(1.1);
}
.bnr-news {
    margin: 30px auto 0;
    width: 64.4%;
    max-width: 534px;
    transition: all 0.3s;
}
.bnr-news2 {
    margin: 10px auto auto;
    width: 64.4%;
    max-width: 534px;
    transition: all 0.3s;
}
.bnr-news:hover,
.bnr-news2:hover {
    opacity: 0.6;
    cursor: pointer;
}

.billing {
    width: 64.4%;
    max-width: 534px;
    margin: 10px auto;
}
.catch2 {
    width: 64.4%;
    max-width: 534px;
    margin: auto;
}
.catch1 {
    position: absolute;
    top: 0;
    right: 0;
    width: 90px;
}
.koukai {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 250px;
}
.btn-trailer {
    width: 240px;
}
.btn-trailer a {
    transition: all 0.3s;
    border: solid 1px #9b9087;
    display: block;
    border-radius: 3px;
    overflow: hidden;
}
.btn-trailer a:hover {
    opacity: 0.8;
}
.btn-x {
    width: 53px;
    margin: 40px 11.6% 0 auto;
    margin-right: calc(11.6% + 90px);
}
.btn-x a {
    display: block;
    background: #FFF;
    border-radius: 50%;
    overflow: hidden;
    transition: all 0.3s;
}
.btns {
}

/*.btn-comment {
    width: 240px;
   margin-bottom: 23px;
}
.btn-comment a {
    display: block;
    background: #000;
    border-radius: 2px;
    overflow: hidden;
    transition: all 0.2s;
}
.btn-comment a:hover,
.btn-x a:hover {
    opacity: 0.8;
}*/
.trailer-sp {
    padding: 0 20px;
    margin: 20px 0;
}
.trailer-sp iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 560/315;
}

.trailer-btns ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.trailer-btns ul li {
	width: calc(50% - 5px);
}
.trailer-btns ul li span {
	display: block;
	background: #d0c5aa;
	color: #000;
	text-align: center;
	padding: 10px 0;
    margin-bottom: 10px;
	letter-spacing: 0.075em;
	font-size: 14px;
	font-weight: 500;
	border-radius: 1px;
}
.trailer-btns ul li span.current {
	color: #000;
	background: #FFF;
}

.trailer-sp-btns ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
    max-width: 480px;
    margin: 0 auto;
}
.trailer-sp-btns ul li {
	width: 50%;
    padding-top: 4px;
}
.trailer-sp-btns ul li:nth-child(2n) {
    padding-left: 2px;
}
.trailer-sp-btns ul li:nth-child(2n+1) {
    padding-right: 2px;
}
.trailer-sp-btns ul li span {
	display: block;
	background: #d0c5aa;
	color: #000;
	text-align: center;
	padding: 14px 0;
	letter-spacing: 0.075em;
	font-size: 14px;
	font-weight: 500;
	border-radius: 1px;
    border: solid 1px #d0c5aa;
}
.trailer-sp-btns ul li span.current {
	color: #000;
	background: #FFF;
    /*border-top: solid 1px #FFF;*/
}


.imgs {
    position: absolute;
    bottom: 0;
    left: 0;
    display: flex;
    width: 40%;
    padding: 0 0 20px 250px;
}
.imgs img {
    display: block;
    width: calc(100% / 4);
    padding-right: 5px;
}

@media screen and (max-width: 920px) {
    body {
        background: #FFF;
    }
    .sp {
        display: block;
    }
    .pc {
        display: none;
    }
    .wrap {
        min-width: auto;
        min-height: auto;
        height: auto;
        display: block;
        overflow: visible;
        background: none;
    }
    .site-title {
        width: 100%;
        padding: 0;
        height: auto;
        background: url(../sp/images/home/launch_kv_sp.jpg) no-repeat center center;
        background-size: cover;
    }
    .site-title img {
        opacity: 1;
    }
    .gnav {
        position: static;
        width: 100%;
        height: auto;
        background: rgba(255,255,255,0.8);
        display: block;
        padding-top: 30px;
    }
    .gnav .gnav-btns {
        width: 200px;
        margin: 0 auto;
    }
    .contents {
        position: static;
        width: 100%;
        height: auto;
        padding-top: 5%;
        padding-bottom: 20px;
        padding-left: 0px;
    }
    .contents-inner {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        padding: 0;
    }
    .bnr-news {
        margin: 30px auto 10px;
        width: 100%;
        padding: 0 10px;
        box-sizing: border-box;
        max-width: 360px;
        transition: none;
    }
    .bnr-news2 {
        margin: 10px auto 30px;
        width: 100%;
        padding: 0 10px;
        box-sizing: border-box;
        max-width: 360px;
        transition: none;
    }
    .bnr-news2:hover,
    .bnr-news:hover {
        opacity: 1;
    }
    .billing {
        width: 100%;
        max-width: 480px;
        padding: 0 20px;
        margin-top: 40px;
        position: static;
        box-sizing: border-box;
    }
    .koukai {
        width: 29.2%;
        margin: 40px 11.6% 8.6% auto;
        right: 5.8%;
    }
    .btn-x {
        width: 25%;
        margin: 0 auto;
    }
    .btns {
        margin: 0;
    }
    .btn-comment {
        width: 40%;
        margin: 5% auto;
    }
    .trailer-sp {
        padding: 0 20px;
        margin: 20px 0;
    }
    .trailer-sp iframe {
        display: block;
        width: 100%;
        max-width: 480px;
        height: auto;
        margin: 0 auto;
        aspect-ratio: 560/315;
    }
}

.fadein {
    opacity: 0;
    transition: all 1.2s;
}
.fadeinTop {
    opacity: 0;
    transform: translateY(40px);
    transition: all 1.2s;
}
.fadeinBottom {
    opacity: 0;
    transform: translateY(-40px);
    transition: all 1.2s;
}
.fadeinLeft {
    opacity: 0;
    transform: translateX(40px);
    transition: all 1.2s;
}
.fadeinRight {
    opacity: 0;
    transform: translateX(-40px);
    transition: all 1.2s;
}


.site-title,
.koukai,
.catch1,
.catch2,
.billing,
.bnr-news,
.bnr-news2,
.bnr-trailer,
.btn-comment,
.btn-trailer,
.gnav,
.btn-x,
.imgs img {
    opacity: 0;
}

.is_loaded .site-title {
    animation-name:fadeInAnime;
    animation-duration: 1.8s;
    animation-fill-mode:forwards;
}
.is_loaded .gnav {
    animation-name:fadeInFromBottomAnime;
    animation-duration: 1s;
    animation-fill-mode:forwards;
}
.is_loaded .catch1,
.is_loaded .koukai {
    animation-name:fadeInAnime;
    animation-duration: 1.8s;
    animation-delay: 0.6s;
    animation-fill-mode:forwards;
}
.is_loaded .bnr-trailer {
    animation-name:fadeInAnime;
    animation-duration: 1.8s;
    animation-delay: 0.7s;
    animation-fill-mode:forwards;
}
.is_loaded .bnr-news,
.is_loaded .bnr-news2 {
    animation-name:fadeInAnime;
    animation-duration: 1.8s;
    animation-delay: 0.8s;
    animation-fill-mode:forwards;
}
.is_loaded .billing {
    animation-name:fadeInAnime;
    animation-duration: 1.8s;
    animation-delay: 0.9s;
    animation-fill-mode:forwards;
}
.is_loaded .catch2 {
    animation-name:fadeInAnime;
    animation-duration: 1.8s;
    animation-delay: 1s;
    animation-fill-mode:forwards;
}
.is_loaded .imgs img:nth-child(1) {
    animation-name:fadeInAnime;
    animation-duration: 1s;
    animation-delay: 2s;
    animation-fill-mode:forwards;
}
.is_loaded .imgs img:nth-child(2) {
    animation-name:fadeInAnime;
    animation-duration: 1s;
    animation-delay: 2.2s;
    animation-fill-mode:forwards;
}
.is_loaded .imgs img:nth-child(3) {
    animation-name:fadeInAnime;
    animation-duration: 1s;
    animation-delay: 2.4s;
    animation-fill-mode:forwards;
}
.is_loaded .imgs img:nth-child(4) {
    animation-name:fadeInAnime;
    animation-duration: 1s;
    animation-delay: 2.6s;
    animation-fill-mode:forwards;
}

@keyframes fadeInAnime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
@keyframes fadeInFromBottomAnime {
    from {
        transform: translateY(10px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}
@keyframes fadeInFromBottomAnime {
    from {
        transform: translateX(-100px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}
@keyframes zoomOutAnime {
    from {
        transform: scale(1.4);
        opacity: 0;
    }
    to {
        transform:scale(1);
        opacity: 1;
    }
}
@keyframes zoomOutBounceAnime {
    0%   { transform: scale(2.4); opacity: 0; }
    40%  { transform: scale(1.0, 1.0); opacity: 1; }
    50%  { transform: scale(1.1, 1.1); }
    100% { transform: scale(1.0, 1.0); opacity: 1; }
}
@keyframes fadeFromLeftAnime {
    0%   { transform: scale(1.2, 1.0) translateX(-600px); opacity: 0; }
    70%  { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
    76%  { transform: scale(0.9, 1.0) translateX(20px); opacity: 1; }
    100% { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
}
@keyframes fadeFromRightAnime {
    0%   { transform: scale(1.2, 1.0) translateX(600px); opacity: 0; }
    70%  { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
    88%  { transform: scale(0.9, 1.0) translateX(-20px); opacity: 1; }
    100% { transform: scale(1.0, 1.0) translateX(0px); opacity: 1; }
}

@keyframes rotateFromRight30Anime {
    0%   { transform: rotateZ(20deg); opacity: 0; }
    30%  { transform: rotateZ(-4deg); opacity: 1; }
    40%  { transform: rotateZ(3deg); opacity: 1; }
    50%  { transform: rotateZ(1deg); opacity: 1; }
    60%  { transform: rotateZ(-1deg); opacity: 1; }
    80% { transform: rotateZ(0deg); opacity: 1; }
    100% { transform: rotateZ(0deg); opacity: 1; }
}