@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+2:wght@100;400;700&family=Mochiy+Pop+One&display=swap');

/********************
	default
********************/

html {
    font-size: 62.5%;
    height: 100%;
}

body {
    height: 100%;
    background: #fff;
    color: #000;
    font-size: 1.6rem;
    font-family: 'Noto Sans JP', sans-serif;
    -webkit-text-size-adjust: 100%;
}

body, .header, .main, .footer, .fv {
    overflow-x: hidden;
}

.waitingElem {
    opacity: 0;
    transition: opacity 150ms ease-out;
}

.showElem {
    opacity: 1;
}

@media ( min-width: 801px ) {
    .only-pc {
        display: block !important;
    }

    .only-sp {
        display: none !important;
    }
}

/********************
	main
********************/

/* ローディング */
.loading {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    height: 100%;
    opacity: 1;
}

.loading.is-hidden {
    display: block !important;
    opacity: 0;
    pointer-events: none;
    transition: all 300ms ease-out;
}

.loading .chara01 {
    position: absolute;
    top: 0;
    left: -120px;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 168px;
    height: 190px;
    margin: auto;
}

.contents.cont06 .chara01 {
    width: 168px;
    height: 190px;
    transform: translate(0, -80px);
}

.loading .chara01 img {
    width: 168px;
    height: 190px;
    animation: loadingChara 800ms ease-in-out 0ms infinite normal both;
    transform-origin: center bottom;
}

.contents.cont06 .chara01 img {
    width: 168px;
    height: 190px;
    animation: footerChara 3200ms ease-in-out 0ms infinite normal both;
    transform-origin: center bottom;
}

@keyframes loadingChara {
    0% {
        transform: translateY(0) scale(100%, 100%);
    }
    50% {
        transform: translateY(-20px) scale(100%, 100%);
    }
    70% {
        transform: translateY(0) scale(100%, 100%);
    }
    80% {
        transform: translateY(-5px) scale(103%, 93%);
    }
    100% {
        transform: translateY(0) scale(100%, 100%);
    }
}

@keyframes footerChara {
    0% {
        transform: translateY(0) scale(100%, 100%);
    }
    5% {
        transform: translateY(-20px) scale(100%, 100%);
    }
    10% {
        transform: translateY(0) scale(100%, 100%);
    }
    13% {
        transform: translateY(-5px) scale(103%, 93%);
    }
    15% {
        transform: translateY(0) scale(100%, 100%);
    }
    100% {
        transform: translateY(0) scale(100%, 100%);
    }
}

.loading .chara02 {
    position: absolute;
    top: 0;
    left: 0;
    right: -120px;
    bottom: 0;
    z-index: 1;
    width: 168px;
    height: 190px;
    margin: auto;
}

.contents.cont06 .chara02 {
    width: 168px;
    height: 190px;
    transform: translate(0, -80px);
}

.loading .chara02 img {
    width: 168px;
    height: 190px;
    animation: loadingChara 800ms linear 400ms infinite normal both;
    transform-origin: center bottom;
}

.contents.cont06 .chara02 img {
    width: 168px;
    height: 190px;
    animation: footerChara 3200ms linear 400ms infinite normal both;
    transform-origin: center bottom;
}

.loading .overlay {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    background: #FFF0FA;
}

/* ゲーム画面ポップアップ */
.gameWindow-popup {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1500;
    width: 100%;
    height: 100%;
}

.gameWindow-popup-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 700px;
    height: 450px;
    margin: auto;
    background: #FFF0FA;
    border: 5px solid #ffffff;
    border-radius: 15px;
}

.gameWindow-popup.is-show .gameWindow-popup-inner {
    animation: boyoyon01 300ms linear 0ms 1 normal both;
}

.gameWindow-popup-inner .comingsoon {
    width: 240px;
    height: 318px;
}

.gameWindow-popup-inner .comingsoon img {
    width: 100%;
    height: 100%;
}

.gameWindow-popup-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(5px);
}

.header, .main, .footer {
    position: relative;
}

.fv {
    position: relative;
    width: 100%;
    height: 850px;
    background: url(../image/bg01.jpg) center bottom no-repeat;
    background-attachment: fixed;
    background-size: cover;
}

/* iPad用CSS */
body.iPad .fv {
    background: url(../image/bg01.jpg) center top no-repeat;
    background-size: 210% auto;
}

.gloNav {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    position: absolute;
    top: 50px;
    left: 0;
    right: 0;
    width: 640px;
    height: 60px;
    margin: auto;
    padding: 0 30px;
    background: url(../image/menu_base.png) center top no-repeat;
    background-size: 640px 60px;
}

.fv.is-show .gloNav.anime {
    animation: boyoyon01 500ms ease-in-out 500ms 1 normal both;
}

.gloNav .circle {
    display: block;
    position: relative;
    width: 12px;
    height: 12px;
    background: url(../image/menu_circle.png) center top no-repeat;
    background-size: 12px 12px;
}

.gloNav .how-to-play a {
    display: block;
    position: relative;
    width: 100px;
    height: 40px;
    background: url(../image/menu_txt_howtoplay.png) center center no-repeat;
    background-size: 100px 21px;
}

.gloNav .how-to-play.current {
    display: block;
    position: relative;
    width: 100px;
    height: 40px;
    background: url(../image/menu_txt_howtoplay.png) center center no-repeat;
    background-size: 86px 18px;
    background-color: #AA336A;
    border-radius: 20px;
}

.gloNav .chara a {
    display: block;
    position: relative;
    width: 116px;
    height: 40px;
    background: url(../image/menu_txt_chara.png) center center no-repeat;
    background-size: 116px 21px;
}

.gloNav .chara.current {
    display: block;
    position: relative;
    width: 116px;
    height: 40px;
    background: url(../image/menu_txt_chara.png) center center no-repeat;
    background-size: 100px 18px;
    background-color: #AA336A;
    border-radius: 20px;
}

.gloNav .special a {
    display: block;
    position: relative;
    width: 100px;
    height: 40px;
    background: url(../image/menu_txt_special.png) center center no-repeat;
    background-size: 100px 21px;
}

.gloNav .special.current {
    display: block;
    position: relative;
    width: 100px;
    height: 40px;
    background: url(../image/menu_txt_special.png) center center no-repeat;
    background-size: 84px 18px;
    background-color: #AA336A;
    border-radius: 20px;
}

.gloNav .support a {
    display: block;
    position: relative;
    width: 80px;
    height: 40px;
    background: url(../image/menu_txt_support.png) center center no-repeat;
    background-size: 80px 21px;
}

.gloNav .support.current {
    display: block;
    position: relative;
    width: 80px;
    height: 40px;
    background: url(../image/menu_txt_support.png) center center no-repeat;
    background-size: 64px 17px;
    background-color: #AA336A;
    border-radius: 20px;
}

.gloNav a:hover {
    animation: gloNavTxtHover 250ms ease-out 0ms 1 normal both;
}

@keyframes gloNavTxtHover {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-5px);
    }
    100% {
        transform: translateY(0);
    }
}

.fv .logo {
    position: absolute;
    top: 135px;
    left: 0;
    right: 0;
    z-index: 100;
    width: 480px;
    height: 288px;
    margin: auto;
    opacity: 0;
}

.fv.is-show .logo.anime {
    animation: boyoyon01 500ms ease-in-out 0ms 1 normal both;
}

@keyframes boyoyon01 {
    0% {
        opacity: 0;
        transform: scale(50%);
    }
    40% {
        opacity: 1;
        transform: scale(100%);
    }
    70% {
        opacity: 1;
        transform: scale(94%);
    }
    100% {
        opacity: 1;
        transform: scale(100%);
    }
}

.fv .logo img {
    width: 480px;
    height: 288px;
}

.fv .object .keyboard {
    position: absolute;
    top: 450px;
    left: 0;
    right: 0;
    z-index: 10;
    width: 470px;
    height: 228px;
    margin: auto;
    background: url(../image/object_top_keyboard.png) center top no-repeat;
    background-size: 470px 228px;
}

.fv .object .chara01 {
    position: absolute;
    top: 286px;
    left: -610px;
    right: 0;
    z-index: 20;
    width: 246px;
    height: 395px;
    margin: auto;
    background: url(../image/fv_chara01.png) center top no-repeat;
    background-size: 246px 395px;
    transform-origin: center bottom;
    opacity: 0;
}

.fv.is-show .chara01.anime {
    animation: fvChara01 300ms linear 700ms 1 normal both;
}

@keyframes fvChara01 {
    0% {
        transform: translate(-50px, 0);
        opacity: 0;
    }
    50% {
        transform: translate(-10px, -30px);
        opacity: 1;
    }
    80% {
        transform: translate(0px, 0px) scale(105%, 96%);
        opacity: 1;
    }
    100% {
        transform: translate(0px, 0px) scale(100%, 100%);
        opacity: 1;
    }
}

.fv .object .chara02 {
    position: absolute;
    top: 286px;
    left: 0;
    right: -600px;
    z-index: 20;
    width: 247px;
    height: 395px;
    margin: auto;
    background: url(../image/fv_chara02.png) center top no-repeat;
    background-size: 247px 395px;
    transform-origin: center bottom;
    opacity: 0;
}

.fv.is-show .chara02.anime {
    animation: fvChara02 300ms linear 1000ms 1 normal both;
}

@keyframes fvChara02 {
    0% {
        transform: translate(50px, 0);
        opacity: 0;
    }
    50% {
        transform: translate(10px, -30px);
        opacity: 1;
    }
    80% {
        transform: translate(0px, 0px) scale(105%, 96%);
        opacity: 1;
    }
    100% {
        transform: translate(0px, 0px) scale(100%, 100%);
        opacity: 1;
    }
}

.fv .object .deco01 {
    position: absolute;
    top: 153px;
    left: -800px;
    right: 0;
    z-index: 0;
    width: 300px;
    height: 563px;
    margin: auto;
    background: url(../image/object_top_left.png) center top no-repeat;
    background-size: 300px 563px;
}

.fv.is-show .object .deco01.main-deco.anime {
    animation: loopfvDeco 3000ms linear 0ms infinite normal both;
}

@keyframes loopfvDeco {
    0% {
        transform: translateY(0);
    }
    20% {
        transform: translateY(-5px);
    }
    80% {
        transform: translateY(5px);
    }
    100% {
        transform: translateY(0);
    }
}

.fv .object .deco02 {
    position: absolute;
    top: 126px;
    left: 0;
    right: -750px;
    z-index: 0;
    width: 400px;
    height: 579px;
    margin: auto;
    background: url(../image/object_top_right.png) center top no-repeat;
    background-size: 400px 579px;
}

.fv.is-show .object .deco02.main-deco.anime {
    animation: loopfvDeco 3000ms linear 500ms infinite normal both;
}

.fv .object .left-deco {
    position: absolute;
    top: 330px;
    left: -935px;
    right: 0;
    z-index: 0;
    width: 156px;
    height: 36px;
    margin: auto;
    opacity: 0;
    transform-origin: left bottom;
}

.fv .object .left-deco.deco01 {
    background: url(../image/object_top_left_deco01.png) center top no-repeat;
    background-size: 156px 36px;
}

.fv .object .left-deco.deco02 {
    background: url(../image/object_top_left_deco02.png) center top no-repeat;
    background-size: 156px 36px;
}

.fv .object .left-deco.deco03 {
    background: url(../image/object_top_left_deco03.png) center top no-repeat;
    background-size: 156px 36px;
}

.fv .object .left-deco.deco04 {
    background: url(../image/object_top_left_deco04.png) center top no-repeat;
    background-size: 156px 36px;
}

.fv.is-show .object .left-deco.deco01.anime {
    animation: fvLeftDeco 3200ms linear 0ms infinite normal both;
}

.fv.is-show .object .left-deco.deco02.anime {
    animation: fvLeftDeco 3200ms linear 800ms infinite normal both;
}

.fv.is-show .object .left-deco.deco03.anime {
    animation: fvLeftDeco 3200ms linear 1600ms infinite normal both;
}

.fv.is-show .object .left-deco.deco04.anime {
    animation: fvLeftDeco 3200ms linear 2400ms infinite normal both;
}

@keyframes fvLeftDeco {
    0% {
        transform: translateY(0px) scale(0%);
        opacity: 0;
    }
    33% {
        transform: translateY(-20px) scale(100%);
        opacity: 1;
    }
    66% {
        transform: translateY(-80px) scale(100%);
        opacity: 1;
    }
    100% {
        transform: translateY(-100px) scale(0%);
        opacity: 0;
    }
}

.fv .object .right-deco {
    position: absolute;
    top: 330px;
    left: 0;
    right: -950px;
    z-index: 0;
    width: 76px;
    height: 70px;
    margin: auto;
    opacity: 0;
    transform-origin: right bottom;
}

.fv .object .right-deco.deco01 {
    background: url(../image/object_top_right_deco01.png) center top no-repeat;
    background-size: 76px 70px;
}

.fv .object .right-deco.deco02 {
    background: url(../image/object_top_right_deco02.png) center top no-repeat;
    background-size: 76px 70px;
}

.fv .object .right-deco.deco03 {
    background: url(../image/object_top_right_deco03.png) center top no-repeat;
    background-size: 76px 70px;
}

.fv .object .right-deco.deco04 {
    background: url(../image/object_top_right_deco04.png) center top no-repeat;
    background-size: 76px 70px;
}

.fv .object .right-deco.deco05 {
    background: url(../image/object_top_right_deco05.png) center top no-repeat;
    background-size: 76px 70px;
}

.fv .object .right-deco.deco06 {
    background: url(../image/object_top_right_deco06.png) center top no-repeat;
    background-size: 76px 70px;
}

.fv.is-show .object .right-deco.deco01.anime {
    animation: fvRightDeco 4800ms linear 0ms infinite normal both;
}

.fv.is-show .object .right-deco.deco02.anime {
    animation: fvRightDeco 4800ms linear 800ms infinite normal both;
}

.fv.is-show .object .right-deco.deco03.anime {
    animation: fvRightDeco 4800ms linear 1600ms infinite normal both;
}

.fv.is-show .object .right-deco.deco04.anime {
    animation: fvRightDeco 4800ms linear 2400ms infinite normal both;
}

.fv.is-show .object .right-deco.deco05.anime {
    animation: fvRightDeco 4800ms linear 3200ms infinite normal both;
}

.fv.is-show .object .right-deco.deco06.anime {
    animation: fvRightDeco 4800ms linear 4000ms infinite normal both;
}

@keyframes fvRightDeco {
    0% {
        transform: translate(0px, 0px) scale(0%);
        opacity: 0;
    }
    25% {
        transform: translate(-50px, -50px) scale(100%);
        opacity: 1;
    }
    50% {
        transform: translate(0px, -100px) scale(100%);
        opacity: 1;
    }
    75% {
        transform: translate(-50px, -150px) scale(0%);
        opacity: 0;
    }
    100% {
        transform: translate(-50px, -150px) scale(0%);
        opacity: 0;
    }
}

.fv .object .bottom {
    position: absolute;
    bottom: 0px;
    left: 0;
    right: 0;
    z-index: 10;
    width: 100%;
    height: 100px;
    margin: auto;
    background: url(../image/object_top_bottom.png) center bottom no-repeat;
    background-size: 100% auto;
}

.btn-game-start {
    position: absolute;
    bottom: 105px;
    left: 0;
    right: 0;
    z-index: 200;
    width: 350px;
    height: 90px;
    margin: auto;
    background: url(../image/btn_game_start.png) center top no-repeat;
    background-size: 350px 90px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.contents.cont06 .btn-game-start {
    position: relative;
    bottom: 0;
    margin: 0;
}

.btn-game-start:hover {
    transform: scale(110%);
}

.fv.is-show .btn-game-start.anime {
    animation: fvBtnGamestart 500ms linear 1300ms 1 normal backwards;
}

@keyframes fvBtnGamestart {
    0% {
        transform: scale(50%);
        opacity: 0;
    }
    40% {
        transform: scale(130%);
        opacity: 1;
    }
    70% {
        transform: scale(90%);
        opacity: 1;
    }
    90% {
        transform: scale(105%);
        opacity: 1;
    }
    100% {
        transform: scale(100%);
        opacity: 1;
    }
}

.campaign-banner {
    position: absolute;
    bottom: 247px;
    left: 0;
    right: 0;
    z-index: 30;
    width: 330px;
    margin: auto;
}

.campaign-banner img {
    width: 330px;
}

.contents {
    position: relative;
}

.contents.cont01 {
    width: 100%;
    background: url(../image/bg02.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 1px 0;
}

.cont01-wrap {
    width: 800px;
    margin: 0 auto;
}

.cont01-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 3px;
    margin: 50px 0;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.cont01-title .square-greenL {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    padding: 0 0 3px;
    background: #10D0B2;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3.5rem;
}

.cont01-title .square-white {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #ffffff;
    border: 1px solid #10D0B2;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #333333;
    font-size: 3rem;
}

.cont01-title .square-green {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #10D0B2;
    border: 1px solid #10D0B2;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3rem;
}

.cont01-title .deco {
    position: relative;
    width: 38px;
    height: 30px;
    background: #10D0B2;
    border: 1px solid #10D0B2;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    transform: translateY(13px);
}

.cont01-title .deco span {
    position: absolute;
    right: -1px;
    bottom: -17px;
    width: 26px;
    height: 16px;
    background: #10D0B2;
    border: 1px solid #10D0B2;
    border-radius: 5px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
}

.cont01-title.waitingElem p:nth-child(1) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont01-title.waitingElem p:nth-child(2) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont01-title.waitingElem p:nth-child(3) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(4) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(5) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont01-title.waitingElem p:nth-child(6) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(7) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(8) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont01-title.waitingElem p:nth-child(9) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(10) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(11) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont01-title.waitingElem p:nth-child(12) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(13) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont01-title.waitingElem p:nth-child(14) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont01-title.showElem p:nth-child(1) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out;
}

.cont01-title.showElem p:nth-child(2) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 100ms;
}

.cont01-title.showElem p:nth-child(3) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 700ms;
}

.cont01-title.showElem p:nth-child(4) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 300ms;
}

.cont01-title.showElem p:nth-child(5) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 800ms;
}

.cont01-title.showElem p:nth-child(6) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 600ms;
}

.cont01-title.showElem p:nth-child(7) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 1000ms;
}

.cont01-title.showElem p:nth-child(8) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 200ms;
}

.cont01-title.showElem p:nth-child(9) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 900ms;
}

.cont01-title.showElem p:nth-child(10) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 1100ms;
}

.cont01-title.showElem p:nth-child(11) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 400ms;
}

.cont01-title.showElem p:nth-child(12) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 1200ms;
}

.cont01-title.showElem p:nth-child(13) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 500ms;
}

.cont01-title.showElem p:nth-child(14) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out 1300ms;
}

.contents.cont01 .play-video {
    position: relative;
    width: 1100px;
    height: 672px;
    margin: 0 auto 72px;
    background: url(../image/frame_video.png) center top no-repeat;
    background-size: 1100px 672px;
    transform: translate(-150px, 50px);
}

.contents.cont01 .play-video.waitingElem {
    transform: translate(-150px, 50px);
}

.contents.cont01 .play-video.showElem {
    transform: translate(-150px, 0px);
    transition: all 300ms ease-out;
}

.contents.cont01 .play-video .tentative {
    position: absolute;
    top: -32px;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 600px;
    height: 416px;
    background: #d4d4d4;
}

.contents.cont01 .play-video .tentative .parts-video-play {
    position: absolute;
    top: 0;
    left: 10px;
    right: 0;
    bottom: 0;
    width: 80px;
    height: 90px;
    margin: auto;
    background: url(../image/parts_video_play.png) center center no-repeat;
    background-size: 80px 90px;
    cursor: pointer;
    transition: transform 150ms ease-out;
}

.contents.cont01 .play-video .ui-parts {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 20px;
    width: 720px;
    height: 42px;
    margin: auto;
}

.contents.cont01 .play-video .ui-parts > div {
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
}

.contents.cont01 .play-video .ui-parts .parts-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 56px;
    width: 720px;
    height: 4px;
    margin: auto;
    background: #ffffff;
}

.contents.cont01 .play-video .ui-parts .parts-bar .parts-seek {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 20px;
    height: 20px;
    margin: auto;
    background: #ffffff;
    border-radius: 10px;
}

.contents.cont01 .play-video .ui-parts .parts-video-play {
    display: inline-block;
    width: 34px;
    height: 40px;
    margin: 0 16px 0 0;
    background: url(../image/parts_video_play.png) center center no-repeat;
    background-size: 34px 40px;
}

.contents.cont01 .play-video .ui-parts .parts-next-video {
    display: inline-block;
    width: 36px;
    height: 36px;
    margin: 0 16px 0 0;
    background: url(../image/parts_next_video.png) center center no-repeat;
    background-size: 36px 36px;
}

.contents.cont01 .play-video .ui-parts .parts-video-volume {
    display: inline-block;
    width: 50px;
    height: 40px;
    background: url(../image/parts_video_volume.png) center center no-repeat;
    background-size: 50px 40px;
}

.contents.cont01 .play-video .ui-parts .parts-video-setting {
    display: inline-block;
    width: 40px;
    height: 40px;
    margin: 0 16px 0 0;
    background: url(../image/parts_video_setting.png) center center no-repeat;
    background-size: 40px 40px;
}

.contents.cont01 .play-video .ui-parts .parts-video-fullscreen {
    display: inline-block;
    width: 36px;
    height: 36px;
    background: url(../image/parts_video_fullscreen.png) center center no-repeat;
    background-size: 36px 36px;
}

.contents.cont01 .play-video .tentative .parts-video-play:hover {
    transform: scale(105%);
}

.btn-video-more {
    display: block;
    width: 360px;
    height: 60px;
    margin: 0 auto 50px;
}

.btn-video-more a {
    display: block;
    width: 360px;
    height: 60px;
    background: url(../image/btn_video_more.png) center top no-repeat;
    background-size: 360px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-video-more a:hover {
    transform: scale(105%);
}

.btn-video-more.waitingElem {
    transform: translateY(50px);
}

.btn-video-more.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.btn-goto-top {
    position: fixed;
    bottom: 50px;
    right: 50px;
    z-index: 200;
    width: 60px;
    height: 60px;
    background: url(../image/btn_goto_top.png) center top no-repeat;
    background-size: 60px 60px;
    cursor: pointer;
    opacity: 1;
    transition: transform 150ms ease-out, opacity 150ms ease-out;
}

.btn-goto-top:hover {
    transform: translateY(-5px);
}

.btn-goto-top.is-hidden {
    display: block !important;
    opacity: 0;
    pointer-events: none;
}

.contents.cont02 {
    width: 100%;
    background: url(../image/bg03.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 1px 0;
}

/* iPad用CSS */
body.iPad .contents.cont02 {
    background: url(../image/bg03.jpg) center center repeat;
    background-size: 130% auto;
}

.cont02-wrap {
    width: 800px;
    margin: 0 auto;
}

.cont02-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 3px;
    margin: 50px 0;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.cont02-title .square-blueL {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    padding: 0 0 3px;
    background: #83B7EB;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3.5rem;
}

.cont02-title .square-white {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #ffffff;
    border: 1px solid #83B7EB;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #333333;
    font-size: 3rem;
}

.cont02-title .square-blue {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #83B7EB;
    border: 1px solid #83B7EB;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3rem;
}

.cont02-title .deco {
    position: relative;
    width: 38px;
    height: 30px;
    background: #83B7EB;
    border: 1px solid #83B7EB;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    transform: translateY(13px);
}

.cont02-title .deco span {
    position: absolute;
    right: -1px;
    bottom: -17px;
    width: 26px;
    height: 16px;
    background: #83B7EB;
    border: 1px solid #83B7EB;
    border-radius: 5px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
}

.cont02-title.waitingElem p:nth-child(1) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont02-title.waitingElem p:nth-child(2) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont02-title.waitingElem p:nth-child(3) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont02-title.waitingElem p:nth-child(4) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont02-title.waitingElem p:nth-child(5) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont02-title.showElem p:nth-child(1) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out;
}

.cont02-title.showElem p:nth-child(2) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 100ms;
}

.cont02-title.showElem p:nth-child(3) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 300ms;
}

.cont02-title.showElem p:nth-child(4) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 200ms;
}

.cont02-title.showElem p:nth-child(5) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out 400ms;
}

.contents.cont02 .notice-list {
    width: 700px;
    margin: 0 auto 72px;
}

.contents.cont02 .notice-list li {
    position: relative;
    width: 700px;
    height: 120px;
    margin: 0 0 8px;
    padding: 12px 16px 0;
    background: #6D87D1;
    border: 5px solid #4E72D6;
    border-radius: 15px;
}

.contents.cont02 .notice-list li > a {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.contents.cont02 .notice-list li.waitingElem {
    transform: translateY(50px);
}

.contents.cont02 .notice-list li.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.contents.cont02 .notice-list li .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 0 40px;
}

.contents.cont02 .notice-list li .group02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin: 0 0 8px;
}

.contents.cont02 .notice-list li .label {
    width: 100px;
    height: 25px;
    margin: 0 8px 0 0;
    line-height: 17px;
    border: 3px solid #ffffff;
    border-radius: 13px;
    color: #ffffff;
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
}

.contents.cont02 .notice-list li .label.red, .contents.cont05 .faq-list li .label.red {
    background: #D56161;
}

.contents.cont02 .notice-list li .label.yellow, .contents.cont05 .faq-list li .label.yellow {
    background: #E6B100;
}

.contents.cont02 .notice-list li .label.green, .contents.cont05 .faq-list li .label.green {
    background: #34A33D;
}

.contents.cont02 .notice-list li .label.blue, .contents.cont05 .faq-list li .label.blue {
    background: #4D96FA;
}

.contents.cont02 .notice-list li .label.pink, .contents.cont05 .faq-list li .label.pink {
    background: #FA7AD3;
}

.contents.cont02 .notice-list li .date {
    color: #ffffff;
    font-size: 1.8rem;
}

.contents.cont02 .notice-list li .heading {
    height: 54px;
    color: #ffffff;
    font-size: 1.8rem;
    line-height: 1.5;
    overflow: hidden;
}

.contents.cont02 .notice-list li .btn-notice-detail {
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 0;
    width: 60px;
    height: 60px;
    background: url(../image/btn_notice_detail.png) center top no-repeat;
    background-size: 60px 60px;
    transition: transform 150ms ease-out;
}

.contents.cont02 .notice-list li:hover .btn-notice-detail {
    transform: scale(110%);
}

.btn-notice-list {
    display: block;
    width: 360px;
    height: 60px;
    margin: 0 auto 50px;
}

.btn-notice-list a {
    display: block;
    width: 360px;
    height: 60px;
    background: url(../image/btn_notice_list.png) center top no-repeat;
    background-size: 360px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-notice-list a:hover {
    transform: scale(105%);
}

.btn-notice-list.waitingElem {
    transform: translateY(50px);
}

.btn-notice-list.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.contents.cont03 {
    width: 100%;
    background: url(../image/bg04.jpg) center top no-repeat;
    background-size: cover;
    padding: 1px 0;
}

.howtoplay .contents.cont03 {
    background-attachment: fixed;
}

.cont03-wrap {
    width: 100%;
    margin: 0 auto;
}

.cont03-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 3px;
    margin: 50px 0;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.cont03-title .square-orangeL {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    padding: 0 0 3px;
    background: #F3A865;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3.5rem;
}

.cont03-title .square-white {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #ffffff;
    border: 1px solid #F3A865;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #333333;
    font-size: 3rem;
}

.cont03-title .square-orange {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #F3A865;
    border: 1px solid #F3A865;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3rem;
}

.cont03-title .deco {
    position: relative;
    width: 38px;
    height: 30px;
    background: #F3A865;
    border: 1px solid #F3A865;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    transform: translateY(13px);
}

.cont03-title .deco span {
    position: absolute;
    right: -1px;
    bottom: -17px;
    width: 26px;
    height: 16px;
    background: #F3A865;
    border: 1px solid #F3A865;
    border-radius: 5px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
}

.cont03-title.waitingElem p:nth-child(1) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont03-title.waitingElem p:nth-child(2) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont03-title.waitingElem p:nth-child(3) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont03-title.waitingElem p:nth-child(4) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont03-title.waitingElem p:nth-child(5) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont03-title.waitingElem p:nth-child(6) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont03-title.showElem p:nth-child(1) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out;
}

.cont03-title.showElem p:nth-child(2) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 300ms;
}

.cont03-title.showElem p:nth-child(3) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 100ms;
}

.cont03-title.showElem p:nth-child(4) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 400ms;
}

.cont03-title.showElem p:nth-child(5) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 200ms;
}

.cont03-title.showElem p:nth-child(6) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out 500ms;
}

.contents.cont03 .screenshot {
    display: flex;
    align-items: center;
    width: 100%;
    height: 400px;
    margin: 0 0 20px;
    background: url(../image/base_howtoplay_ss.png) center center no-repeat;
    background-size: cover;
}

.contents.cont03 .screenshot.waitingElem {
    transform: translateY(50px);
}

.contents.cont03 .screenshot.showElem {
    transform: translateY(0px);
    transition: all 150ms ease-out;
}

/*.contents.cont03 .screenshot.waitingElem .scroll-track {
	transform: translateX( 100px );
}

.contents.cont03 .screenshot.showElem .scroll-track {
	transform: translateX( 0px );
	transition: all 600ms ease-out 600ms;
}*/

.contents.cont03 .screenshot .screenshot-image {
    height: 270px;
}

.scroll-wrap {
    width: 100%;
    overflow: hidden;
}

.scroll-track {
    display: flex;
    flex-flow: row nowrap;
    width: max-content;
    animation: infiniteScroll 20s linear infinite;
}

@keyframes infiniteScroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-100% / 2));
    }
}

.catchcopy .text01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    position: relative;
    left: -80px;
    width: 560px;
    height: 100px;
    margin: 0 auto 16px;
    background: url(../image/base_text01.png) center top no-repeat;
    background-size: 560px 100px;
    color: #ffffff;
    font-size: 2.4rem;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
    transform: translateX(-60px);
}

.catchcopy .text01.showElem {
    animation: boyoyon01 500ms ease-in-out 0ms 1 normal both;
}

.catchcopy .text01 span {
    transform: rotate(-3deg);
}

.catchcopy .text02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    position: relative;
    right: -58px;
    width: 594px;
    height: 126px;
    line-height: 1.5;
    margin: 0 auto 32px;
    padding: 0 0 10px;
    background: url(../image/base_text02.png) center top no-repeat;
    background-size: 594px 126px;
    color: #ffffff;
    font-size: 2.4rem;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
    transform: translateX(60px);
}

.catchcopy .text02.showElem {
    animation: boyoyon01 500ms ease-in-out 250ms 1 normal both;
}

.catchcopy .text03 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    width: 720px;
    height: 210px;
    line-height: 1.5;
    margin: 0 auto 32px;
    padding: 0 36px 19px;
    background: url(../image/base_text02.png) center top no-repeat;
    background-size: 720px 210px;
    color: #ffffff;
    font-size: 2.4rem;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
    transform: translateX(60px);
}

.catchcopy .text03.showElem {
    animation: boyoyon01 500ms ease-in-out 250ms 1 normal both;
}

.btn-howtoplay-detail {
    display: block;
    width: 360px;
    height: 60px;
    margin: 0 auto 50px;
}

.btn-howtoplay-detail a {
    display: block;
    width: 360px;
    height: 60px;
    background: url(../image/btn_howtoplay_detail.png) center top no-repeat;
    background-size: 360px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-howtoplay-detail a:hover {
    transform: scale(105%);
}

.btn-howtoplay-detail.waitingElem {
    transform: translateY(50px);
}

.btn-howtoplay-detail.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.contents.cont04 {
    width: 100%;
    background: url(../image/bg05.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 1px 0;
}

/* iPad用CSS */
body.iPad .contents.cont04 {
    background: url(../image/bg05_sp.jpg) center bottom no-repeat;
    background-size: 100% auto;
}

.cont04-wrap {
    width: 800px;
    margin: 0 auto;
}

.cont04-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 3px;
    margin: 50px 0;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.cont04-title .square-pinkL {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    padding: 0 0 3px;
    background: #FA7D7D;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3.5rem;
}

.cont04-title .square-white {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #ffffff;
    border: 1px solid #FA7D7D;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #333333;
    font-size: 3rem;
}

.cont04-title .square-pink {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #FA7D7D;
    border: 1px solid #FA7D7D;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3rem;
}

.cont04-title .deco {
    position: relative;
    width: 38px;
    height: 30px;
    background: #FA7D7D;
    border: 1px solid #FA7D7D;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    transform: translateY(13px);
}

.cont04-title .deco span {
    position: absolute;
    right: -1px;
    bottom: -17px;
    width: 26px;
    height: 16px;
    background: #FA7D7D;
    border: 1px solid #FA7D7D;
    border-radius: 5px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
}

.cont04-title.waitingElem p:nth-child(1) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont04-title.waitingElem p:nth-child(2) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont04-title.waitingElem p:nth-child(3) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont04-title.waitingElem p:nth-child(4) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont04-title.waitingElem p:nth-child(5) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont04-title.waitingElem p:nth-child(6) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont04-title.waitingElem p:nth-child(7) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont04-title.showElem p:nth-child(1) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out;
}

.cont04-title.showElem p:nth-child(2) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 200ms;
}

.cont04-title.showElem p:nth-child(3) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 400ms;
}

.cont04-title.showElem p:nth-child(4) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 300ms;
}

.cont04-title.showElem p:nth-child(5) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 100ms;
}

.cont04-title.showElem p:nth-child(6) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 500ms;
}

.cont04-title.showElem p:nth-child(7) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out 600ms;
}

.contents.cont04 .chara-wrap {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: flex-end;
    gap: 0 16px;
    margin: 0 auto 72px;
}

.contents.cont04 .chara-wrap .chara01, .contents.cont04 .chara-wrap .chara02 {
    display: flex;
    flex-flow: column nowrap;
    width: 360px;
}

.contents.cont04 .chara-wrap .chara01 .serif {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    width: 260px;
    height: 168px;
    background: url(../image/balloon_chara01.png) center center no-repeat;
    background-size: 260px 168px;
    color: #FF8396;
    font-size: 2.4rem;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
    transform: translate(10px, 10px);
    transform-origin: right bottom;
}

.contents.cont04 .chara-wrap .chara01 .img img {
    width: 360px;
    height: 440px;
}

.contents.cont04 .chara-wrap .chara01.showElem .serif {
    animation: boyoyon01 300ms linear 1100ms 1 normal both;
}

.contents.cont04 .chara-wrap .chara01.showElem .img {
    animation: fvChara01 300ms linear 500ms 1 normal both;
}

@keyframes fvChara01 {
    0% {
        transform: translate(-50px, 0);
        opacity: 0;
    }
    50% {
        transform: translate(-10px, -30px);
        opacity: 1;
    }
    80% {
        transform: translate(0px, 0px) scale(105%, 96%);
        opacity: 1;
    }
    100% {
        transform: translate(0px, 0px) scale(100%, 100%);
        opacity: 1;
    }
}

.contents.cont04 .chara-wrap .chara02 .serif {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    width: 255px;
    height: 149px;
    padding: 0 0 26px 19px;
    background: url(../image/balloon_chara02.png) center center no-repeat;
    background-size: 255px 149px;
    color: #409DFF;
    font-size: 2.4rem;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
    transform: translate(80px, 2px);
    transform-origin: left bottom;
}

.contents.cont04 .chara-wrap .chara02 .img img {
    width: 354px;
    height: 440px;
}

.contents.cont04 .chara-wrap .chara02.showElem .serif {
    animation: boyoyon01 300ms linear 1400ms 1 normal both;
}

.contents.cont04 .chara-wrap .chara02.showElem .img {
    animation: fvChara02 300ms linear 800ms 1 normal both;
}

.btn-chara-intro {
    display: block;
    width: 360px;
    height: 60px;
    margin: 0 auto 50px;
}

.btn-chara-intro a {
    display: block;
    width: 360px;
    height: 60px;
    background: url(../image/btn_chara_intro.png) center top no-repeat;
    background-size: 360px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-chara-intro a:hover {
    transform: scale(105%);
}

.btn-chara-intro.waitingElem {
    transform: translateY(50px);
}

.btn-chara-intro.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.contents.cont05 {
    width: 100%;
    background: url(../image/bg06.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 1px 0;
}

/* iPad用CSS */
body.iPad .contents.cont05 {
    background: url(../image/bg06.jpg) center center repeat;
    background-size: 130% auto;
}

.support.help.subpage .contents.cont05 {
    background: url(../image/bg08.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
}

/* iPad用CSS */
body.support.help.subpage.iPad .contents.cont05 {
    background: url(../image/bg08.jpg) center top repeat;
    background-size: cover
}

.cont05-wrap {
    width: 800px;
    margin: 0 auto;
}

.cont05-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 3px;
    margin: 50px 0;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.cont05-title .square-purpleL {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    padding: 0 0 3px;
    background: #C17DE0;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3.5rem;
}

.cont05-title .square-white {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #ffffff;
    border: 1px solid #C17DE0;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #333333;
    font-size: 3rem;
}

.cont05-title .square-purple {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #C17DE0;
    border: 1px solid #C17DE0;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3rem;
}

.cont05-title .deco {
    position: relative;
    width: 38px;
    height: 30px;
    background: #C17DE0;
    border: 1px solid #C17DE0;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    transform: translateY(13px);
}

.cont05-title .deco span {
    position: absolute;
    right: -1px;
    bottom: -17px;
    width: 26px;
    height: 16px;
    background: #C17DE0;
    border: 1px solid #C17DE0;
    border-radius: 5px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
}

.cont05-title.waitingElem p:nth-child(1) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont05-title.waitingElem p:nth-child(2) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont05-title.waitingElem p:nth-child(3) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont05-title.waitingElem p:nth-child(4) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont05-title.waitingElem p:nth-child(5) {
    opacity: 0;
    transform: translate(0px, -72px);
}

.cont05-title.waitingElem p:nth-child(6) {
    opacity: 0;
    transform: translate(0px, -61px);
}

.cont05-title.waitingElem p:nth-child(7) {
    opacity: 0;
    transform: translate(0px, -50px);
}

.cont05-title.showElem p:nth-child(1) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out;
}

.cont05-title.showElem p:nth-child(2) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 200ms;
}

.cont05-title.showElem p:nth-child(3) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 400ms;
}

.cont05-title.showElem p:nth-child(4) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 300ms;
}

.cont05-title.showElem p:nth-child(5) {
    opacity: 1;
    transform: translate(0px, 22px);
    transition: all 150ms ease-out 100ms;
}

.cont05-title.showElem p:nth-child(6) {
    opacity: 1;
    transform: translate(0px, 11px);
    transition: all 150ms ease-out 500ms;
}

.cont05-title.showElem p:nth-child(7) {
    opacity: 1;
    transform: translate(0px, 0px);
    transition: all 150ms ease-out 600ms;
}

.contents.cont05 .faq-list {
    width: 700px;
    margin: 0 auto 72px;
}

.contents.cont05 .faq-list li {
    position: relative;
    width: 700px;
    height: 120px;
    margin: 0 0 8px;
    padding: 12px 16px 0;
    background: #FFFFFF;
    border: 5px solid #CC97E6;
    border-radius: 15px;
}

.contents.cont05 .faq-list li > a {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.contents.cont05 .faq-list li .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 0 40px;
}

.contents.cont05 .faq-list li .group02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin: 0 0 8px;
}

.contents.cont05 .faq-list li .label {
    width: 130px;
    height: 25px;
    margin: 0 8px 0 0;
    line-height: 17px;
    border: 3px solid #ffffff;
    border-radius: 13px;
    color: #ffffff;
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
}

.contents.cont05 .faq-list li .heading {
    height: 54px;
    color: #333333;
    font-size: 1.8rem;
    line-height: 1.5;
    overflow: hidden;
}

.contents.cont05 .faq-list li .btn-faq-detail {
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 0;
    width: 60px;
    height: 60px;
    background: url(../image/btn_faq_detail.png) center top no-repeat;
    background-size: 60px 60px;
    transition: transform 150ms ease-out;
}

.contents.cont05 .faq-list li:hover .btn-faq-detail {
    transform: scale(110%);
}

.contents.cont05 .faq-list li.waitingElem {
    transform: translateY(50px);
}

.contents.cont05 .faq-list li.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.btn-here-support {
    display: block;
    width: 360px;
    height: 60px;
    margin: 0 auto 50px;
}

.btn-here-support a {
    display: block;
    width: 360px;
    height: 60px;
    background: url(../image/btn_here_support.png) center top no-repeat;
    background-size: 360px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-here-support a:hover {
    transform: scale(105%);
}

.btn-here-support.waitingElem {
    transform: translateY(50px);
}

.btn-here-support.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.contents.cont06 {
    width: 100%;
    background: url(../image/bg07.jpg) center top no-repeat;
    background-size: cover;
    padding: 1px 0;
}

.cont06-wrap {
    width: 800px;
    margin: 0 auto;
}

.contents.cont06 .footer-logo {
    width: 348px;
    height: 208px;
    margin: 50px auto 4px;
}

.contents.cont06 .footer-logo img {
    width: 348px;
    height: 208px;
}

.btn-toppage {
    display: block;
    width: 210px;
    height: 40px;
    margin: 0 auto 72px;
}

.btn-toppage a {
    display: block;
    width: 210px;
    height: 40px;
    background: url(../image/btn_toppage.png) center top no-repeat;
    background-size: 210px 40px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-toppage a:hover {
    transform: scale(105%);
}

.contents.cont06 .footer-links {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    margin: -16px auto 50px;
    white-space: nowrap;
}

.contents.cont06 .footer-links li {
    position: relative;
}

.contents.cont06 .footer-links li:not( :last-child )::after {
    margin: 0 10px;
    color: #ffffff;
    content: "｜";
}

.contents.cont06 .footer-links li a {
    color: #ffffff;
    font-size: 2rem;
    transition: color 150ms ease-out;
}

.contents.cont06 .footer-links li a:hover {
    color: #ffea99;
}

.footer {
    padding: 50px 0;
    background: #2D2D2D;
}

.footer .footer-inner {
    width: 800px;
    margin: 0 auto;
}

.footer .c4on-logo {
    width: 236px;
    height: 61px;
    margin: 0 0 32px;
}

.footer .c4on-logo img {
    width: 236px;
    height: 61px;
    transition: transform 150ms ease-out;
}

.footer .c4on-logo img:hover {
    transform: scale(1.05);
}


.footer .copyright {
    color: #ffffff;
    font-size: 2rem;
    text-align: center;
}

.sns-icons {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    gap: 0 16px;
}

.sns-icons li {
    width: 60px;
    height: 60px;
    transition: transform 150ms ease-out;
}

.sns-icons li.icon-x a {
    display: block;
    width: 60px;
    height: 60px;
    background: url(../image/icon_x.png) center center no-repeat;
    background-size: 60px 60px;
}

.sns-icons li.icon-youtube a {
    display: block;
    width: 60px;
    height: 60px;
    background: url(../image/icon_youtube.png) center center no-repeat;
    background-size: 60px 60px;
}

.sns-icons li.icon-facebook a {
    display: block;
    width: 60px;
    height: 60px;
    background: url(../image/icon_facebook.png) center center no-repeat;
    background-size: 60px 60px;
}

.sns-icons li:hover {
    transform: scale(110%);
}

.footer .footer-links01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end;
    margin: 0 0 24px;
    color: #ffffff;
    font-size: 1.6rem;
}

.footer .footer-links01 li:first-child::before {
    margin: 0 16px;
    color: #ffffff;
    content: "・";
}

.footer .footer-links01 li::after {
    margin: 0 16px;
    color: #ffffff;
    content: "・";
}

.footer .footer-links02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end;
    color: #ffffff;
    font-size: 1.5rem;
}

.footer .footer-links02 li:first-child::before {
    margin: 0 16px;
    color: #ffffff;
    content: "｜";
}

.footer .footer-links02 li::after {
    margin: 0 16px;
    color: #ffffff;
    content: "｜";
}

.footer .footer-links01 a, .footer .footer-links02 a {
    color: #ffffff;
    transition: color 150ms ease-out;
}

.footer .footer-links01 a:hover, .footer .footer-links02 a:hover {
    color: #ffea99;
}

/* 下層ページ */

.subpage .header {
    background: url(../image/bg01.jpg) center bottom no-repeat;
    background-attachment: fixed;
    background-size: cover;
}

/* iPad用CSS */
body.subpage.iPad .header {
    background: url(../image/bg01.jpg) center top no-repeat;
    background-size: 100% auto;
}

.subpageHeader-inner {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    width: 800px;
    margin: 0 auto;
    padding: 0;
}

.subpageHeader-inner .logo {
    width: 200px;
    height: 120px;
}

.subpageHeader-inner .logo:hover {
    animation: boyoyon02 500ms linear 0ms 1 normal both;
}

@keyframes boyoyon02 {
    0% {
        transform: scale(100%);
    }
    30% {
        transform: scale(110%);
    }
    60% {
        transform: scale(100%);
    }
    80% {
        transform: scale(103%);
    }
    100% {
        transform: scale(100%);
    }
}

.subpageHeader-inner .logo img {
    width: 200px;
    height: 120px;
}

.subpageHeader-inner .gloNav {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    width: 640px;
    height: 60px;
    margin: 0;
    padding: 0 30px;
    background: url(../image/menu_base.png) center top no-repeat;
    background-size: 640px 60px;
    transform: scale(90%) translateX(-20px);
}

.chara.subpage .header .title-wrap {
    padding: 24px 0 32px;
    background: url(../image/base_chara_title.png) center center no-repeat rgba(255, 190, 155, 0.7);
    background-size: auto 80%;
}

.chara .cont04-title p:nth-child(1) {
    transform: translate(0px, 0px);
}

.chara .cont04-title p:nth-child(2) {
    transform: translate(0px, 22px);
}

.chara .cont04-title p:nth-child(3) {
    transform: translate(0px, 11px);
}

.chara .cont04-title p:nth-child(4) {
    transform: translate(0px, 22px);
}

.chara .cont04-title p:nth-child(5) {
    transform: translate(0px, 22px);
}

.chara .cont04-title p:nth-child(6) {
    transform: translate(0px, 11px);
}

.chara .cont04-title p:nth-child(7) {
    transform: translate(0px, 0px);
}

.special.subpage .header .title-wrap {
    padding: 24px 0 32px;
    background: url(../image/base_special_title.png) center center no-repeat rgba(91, 244, 191, 0.6);
    background-size: auto 70%;
}

.special .cont01-title p:nth-child(1) {
    transform: translate(0px, 0px);
}

.special .cont01-title p:nth-child(2) {
    transform: translate(0px, 11px);
}

.special .cont01-title p:nth-child(3) {
    transform: translate(0px, 22px);
}

.special .cont01-title p:nth-child(4) {
    transform: translate(0px, 22px);
}

.special .cont01-title p:nth-child(5) {
    transform: translate(0px, 11px);
}

.special .cont01-title p:nth-child(6) {
    transform: translate(0px, 0px);
}

.notice.subpage .header .title-wrap {
    padding: 24px 0 32px;
    background: url(../image/base_notice_title.png) center center no-repeat rgba(170, 210, 250, 0.6);
    background-size: auto 66%;
}

.notice .cont02-title p:nth-child(1) {
    transform: translate(0px, 0px);
}

.notice .cont02-title p:nth-child(2) {
    transform: translate(0px, 22px);
}

.notice .cont02-title p:nth-child(3) {
    transform: translate(0px, 22px);
}

.notice .cont02-title p:nth-child(4) {
    transform: translate(0px, 11px);
}

.notice .cont02-title p:nth-child(5) {
    transform: translate(0px, 0px);
}

.support.subpage .header .title-wrap {
    padding: 24px 0 32px;
    background: url(../image/base_support_title.png) center center no-repeat rgba(203, 143, 230, 0.6);
    background-size: auto 71%;
}

.support .cont05-title p:nth-child(1) {
    transform: translate(0px, 0px);
}

.support .cont05-title p:nth-child(2) {
    transform: translate(0px, 22px);
}

.support .cont05-title p:nth-child(3) {
    transform: translate(0px, 22px);
}

.support .cont05-title p:nth-child(4) {
    transform: translate(0px, 11px);
}

.support .cont05-title p:nth-child(5) {
    transform: translate(0px, 0px);
}

.howtoplay.subpage .header .title-wrap {
    padding: 24px 0 32px;
    background: url(../image/base_howtoplay_title.png) center center no-repeat rgba(255, 222, 0, 0.6);
    background-size: auto 68%;
}

.howtoplay .cont03-title p:nth-child(1) {
    transform: translate(0px, 0px);
}

.howtoplay .cont03-title p:nth-child(2) {
    transform: translate(0px, 22px);
}

.howtoplay .cont03-title p:nth-child(3) {
    transform: translate(0px, 11px);
}

.howtoplay .cont03-title p:nth-child(4) {
    transform: translate(0px, 22px);
}

.howtoplay .cont03-title p:nth-child(5) {
    transform: translate(0px, 22px);
}

.howtoplay .cont03-title p:nth-child(6) {
    transform: translate(0px, 0px);
}

.sponsor.subpage .header .title-wrap {
    padding: 24px 0 32px;
    background: url(../image/base_sponsor_title.png) center center no-repeat rgba(202, 213, 224, 0.6);
    background-size: auto 68%;
}

.sponsor .cont07-title p:nth-child(1) {
    transform: translate(0px, 0px);
}

.sponsor .cont07-title p:nth-child(2) {
    transform: translate(0px, 22px);
}

.sponsor .cont07-title p:nth-child(3) {
    transform: translate(0px, 22px);
}

.sponsor .cont07-title p:nth-child(4) {
    transform: translate(0px, 11px);
}

.sponsor .cont07-title p:nth-child(5) {
    transform: translate(0px, 0px);
}

.chara-intro01 {
    background: url(../image/bg_chara01.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 64px 0;
}

/* iPad用CSS */
body.iPad .chara-intro01 {
    background: url(../image/bg_chara01.jpg) center top repeat;
    background-size: 160% auto;
}

.chara-intro01-inner {
    width: 800px;
    margin: 0 auto;
}

.subpage .catchcopy {
    margin: 0 0 48px;
    color: #333333;
    font-size: 2.4rem;
    font-weight: bold;
    text-align: center;
}

.chara-intro01 .img .chara {
    width: 280px;
    height: 448px;
}

.chara-intro01 .img .chara img {
    width: 280px;
    height: 448px;
}

.chara-intro01 .img .chara img.show {
    animation: charaIllstShow 300ms ease-out 0ms 1 normal both;
}

@keyframes charaIllstShow {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-40px);
    }
    70% {
        transform: translateY(0);
    }
    90% {
        transform: translateY(0) scale(103%, 97%);
    }
    100% {
        transform: translateX(0) scale(100%, 100%);
    }
}

.chara-intro01 .img .name {
    width: 111px;
    height: 42px;
    transform: translate(-8px, -30px);
}

.chara-intro01 .img .name img {
    width: 111px;
    height: 42px;
}

.chara-intro01 .text {
    display: flex;
    flex-flow: column nowrap;
    justify-content: flex-end;
    align-items: flex-end;
    flex-shrink: 0;
    width: 755px;
    height: 469px;
    background: url(../image/base_chara_text01.png) center top no-repeat;
    background-size: 755px 469px;
    transform: translateX(-100px);
    opacity: 0;
}

.chara-intro01 .img {
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    transform: translateX(100px);
    opacity: 0;
    pointer-events: none;
}

.chara-intro01 .img.showElem {
    transform: translateX(200px);
    transition: all 300ms ease-out;
    opacity: 1;
}

.chara-intro01 .text.showElem {
    transform: translateX(-150px);
    transition: all 300ms ease-out 150ms;
    opacity: 1;
}

.chara-intro01 .text .intro {
    width: 330px;
    font-size: 1.6rem;
    line-height: 1.5;
    transform: translate(-57px, -41px);
}

.chara-intro01 .text .intro > span {
    font-weight: bold;
}

.chara-intro01 .text .thumbs {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    gap: 0 10px;
    transform: translate(-52px, -22px);
}

.chara-intro01 .text .thumbs img {
    width: 64px;
    height: 64px;
    cursor: pointer;
    transition: all 150ms ease-out;
}

.chara-intro01 .text .thumbs img:hover {
    filter: brightness(1.1);
}

.chara-intro02 {
    background: url(../image/bg_chara02.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 64px 0;
}

/* iPad用CSS */
body.iPad .chara-intro02 {
    background: url(../image/bg_chara02.jpg) center top repeat;
    background-size: 160% auto;
}

.chara-intro02-inner {
    width: 800px;
    margin: 0 auto;
}

.chara-intro02 .img .chara {
    width: 280px;
    height: 448px;
}

.chara-intro02 .img .chara img {
    width: 280px;
    height: 448px;
}

.chara-intro02 .img .chara img.show {
    animation: charaIllstShow 300ms ease-out 0ms 1 normal both;
}

.chara-intro02 .img .name {
    width: 112px;
    height: 42px;
    transform: translate(240px, -30px);
}

.chara-intro02 .img .name img {
    width: 112px;
    height: 42px;
}

.chara-intro02 .text {
    display: flex;
    flex-flow: column nowrap;
    justify-content: flex-end;
    align-items: flex-start;
    flex-shrink: 0;
    width: 755px;
    height: 469px;
    background: url(../image/base_chara_text02.png) center top no-repeat;
    background-size: 755px 469px;
    transform: translateX(86px);
    opacity: 0;
}

.chara-intro02 .img {
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    transform: translateX(-126px);
    opacity: 0;
    pointer-events: none;
}

.chara-intro02 .img .chara img[data-chara-illust02="illust08"] {
    position: relative;
    right: -40px;
}

.chara-intro02 .img.showElem {
    transform: translateX(-226px);
    transition: all 300ms ease-out;
    opacity: 1;
}

.chara-intro02 .text.showElem {
    transform: translateX(136px);
    transition: all 300ms ease-out 150ms;
    opacity: 1;
}

.chara-intro02 .text .intro {
    width: 330px;
    font-size: 1.6rem;
    line-height: 1.5;
    transform: translate(57px, -59px);
}

.chara-intro02 .text .intro > span {
    font-weight: bold;
}

.chara-intro02 .text .thumbs {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    gap: 0 10px;
    transform: translate(52px, -22px);
}

.chara-intro02 .text .thumbs img {
    width: 64px;
    height: 64px;
    cursor: pointer;
    transition: all 150ms ease-out;
}

.chara-intro02 .text .thumbs img:hover {
    filter: brightness(1.1);
}

.howto-gamedrive {
    padding: 0 0 40px;
    background: #999999;
    color: #ffffff;
}

.howto-gamedrive::before {
    display: block;
    height: 20px;
    margin: 0 0 40px;
    background: #FFCA00;
    content: "";
}

.howto-gamedrive .title {
    margin: 0 0 32px;
    font-size: 3rem;
    text-align: center;
}

.howto-gamedrive .text01 {
    margin: 0 0 32px;
    font-size: 2.4rem;
    text-align: center;
}

.howto-gamedrive .text02 {
    width: 700px;
    margin: 0 auto;
    font-size: 1.8rem;
    line-height: 1.5;
    text-align: left;
}

.banner-wrap {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 68px;
    padding: 40px 0;
    background: #EEEEEE;
}

.banner-wrap img {
    transition: transform 150ms ease-out;
}

.banner-wrap img:hover {
    transform: scale(110%);
}

.banner03-wrap {
    display: block;
    width: 700px;
    margin: 0 auto 64px;
}

.banner03-wrap img {
    width: 700px;
    transition: transform 200ms ease-out;
}

.banner03-wrap img:hover {
    transform: scale(105%);
}

.banner03-wrap.waitingElem {
    transform: translateY(50px);
}

.banner03-wrap.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.btn-goto-noticeTop {
    display: block;
    width: 330px;
    height: 60px;
    margin: 0 auto 64px;
}

.btn-goto-noticeTop a {
    display: block;
    width: 330px;
    height: 60px;
    background: url(../image/btn_goto_noticeTop.png) center top no-repeat;
    background-size: 330px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-goto-noticeTop a:hover {
    transform: scale(105%);
}

.btn-goto-noticeTop.waitingElem {
    transform: translateY(50px);
}

.btn-goto-noticeTop.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.btn-goto-supportTop {
    display: block;
    width: 330px;
    height: 60px;
    margin: 0 auto 64px;
}

.btn-goto-supportTop a {
    display: block;
    width: 330px;
    height: 60px;
    background: url(../image/btn_goto_supportTop.png) center top no-repeat;
    background-size: 330px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-goto-supportTop a:hover {
    transform: scale(105%);
}

.btn-goto-supportTop.waitingElem {
    transform: translateY(50px);
}

.btn-goto-supportTop.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.notice-detail {
    position: relative;
    width: 700px;
    margin: 0 auto 72px;
    background: #6D87D1;
    border: 5px solid #4E72D6;
    border-radius: 15px;
}

.notice-detail .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin: 12px 16px 8px;
}

.notice-detail .label {
    width: 100px;
    height: 25px;
    margin: 0 8px 0 0;
    line-height: 17px;
    border: 3px solid #ffffff;
    border-radius: 13px;
    color: #ffffff;
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
}

.notice-detail .label.red, .contents.cont05 .faq-list li .label.red {
    background: #D56161;
}

.notice-detail .label.yellow, .contents.cont05 .faq-list li .label.yellow {
    background: #E6B100;
}

.notice-detail .label.green, .contents.cont05 .faq-list li .label.green {
    background: #34A33D;
}

.notice-detail .label.blue, .contents.cont05 .faq-list li .label.blue {
    background: #4D96FA;
}

.notice-detail .label.pink, .contents.cont05 .faq-list li .label.pink {
    background: #FA7AD3;
}

.notice-detail .date {
    color: #ffffff;
    font-size: 1.8rem;
}

.notice-detail .heading {
    margin: 0 24px 16px;
    height: 54px;
    color: #ffffff;
    font-size: 1.8rem;
    line-height: 1.5;
    overflow: hidden;
}

.notice-detail .main-text {
    padding: 24px 56px;
    background: #ffffff;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    color: #000000;
    font-size: 1.8rem;
    line-height: 1.5;
}

.faq-menu {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    width: 500px;
    height: 60px;
    margin: 64px auto;
    padding: 0 0 4px;
    background: rgba(204, 151, 230, 1);
    border: 5px solid #ffffff;
    border-radius: 30px;
    color: #ffffff;
    font-size: 1.8rem;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.faq-menu p {
    position: relative;
    cursor: pointer;
}

.faq-menu p:not( :last-child )::after {
    display: inline-block;
    margin: 0 8px;
    content: "｜";
    cursor: default;
}

.faq-menu p a {
    color: #ffffff;
    transition: color 150ms ease-out;
}

.faq-menu p a:hover {
    color: #ffea99;
}

.special.subpage .faq-menu {
    width: 530px;
    background: #10D0B2;
}

.faq-list-with-subList li .btn-faq-open {
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 0;
    width: 60px;
    height: 60px;
    background: url(../image/btn_faq_open.png) center top no-repeat;
    background-size: 60px 60px;
    cursor: pointer;
    transition: transform 150ms ease-out;
}

/*.faq-list-with-subList li:hover .btn-faq-open {
	transform: scale(110%);
}*/

.faq-list-with-subList li .btn-faq-close {
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 0;
    width: 60px;
    height: 60px;
    background: url(../image/btn_faq_close.png) center top no-repeat;
    background-size: 60px 60px;
    cursor: pointer;
    transition: transform 150ms ease-out;
}

/*.faq-list-with-subList li:hover .btn-faq-close {
	transform: scale(110%);
}*/

.faq-list-with-subList li .btn-faq-detail {
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 0;
    width: 60px;
    height: 60px;
    background: url(../image/btn_faq_detail.png) center top no-repeat;
    background-size: 60px 60px;
    transition: transform 150ms ease-out;
}

/*.faq-list-with-subList li:hover .btn-faq-detail {
	transform: scale(110%);
}*/

.faq-list-with-subList {
    width: 700px;
    margin: 0 auto 72px;
}

.faq-list-with-subList li {
    position: relative;
    width: 700px;
    margin: 0 0 8px;
    padding: 12px 0 0;
    background: #FFFFFF;
    border: 5px solid #CC97E6;
    border-radius: 15px;
    cursor: pointer;
}

.faq-list-with-subList li > a {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.faq-list-with-subList li > .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 0 40px;
    padding: 0 16px;
}

.faq-list-with-subList li .group02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin: 0 0 8px;
}

.faq-list-with-subList li .label {
    width: 100px;
    height: 25px;
    margin: 0 8px 0 0;
    line-height: 17px;
    border: 3px solid #ffffff;
    border-radius: 13px;
    color: #ffffff;
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
}

.faq-list-with-subList li .label.red, .contents.cont05 .faq-list li .label.red {
    background: #D36D6D;
}

.faq-list-with-subList li .label.yellow, .contents.cont05 .faq-list li .label.yellow {
    background: #F0CC69;
}

.faq-list-with-subList li .label.green, .contents.cont05 .faq-list li .label.green {
    background: #54A28D;
}

.faq-list-with-subList li .label.blue, .contents.cont05 .faq-list li .label.blue {
    background: #4D96FA;
}


.notice-detail .label.red, .contents.cont05 .faq-list li .label.red {
    background: #D56161;
}

.notice-detail .label.yellow, .contents.cont05 .faq-list li .label.yellow {
    background: #E6B100;
}

.notice-detail .label.green, .contents.cont05 .faq-list li .label.green {
    background: #34A33D;
}

.notice-detail .label.blue, .contents.cont05 .faq-list li .label.blue {
    background: #4D96FA;
}

.notice-detail .label.pink, .contents.cont05 .faq-list li .label.pink {
    background: #FA7AD3;
}


.faq-list-with-subList li .heading {
    margin: 0 0 12px;
    height: 54px;
    color: #333333;
    font-size: 1.8rem;
    line-height: 1.5;
    overflow: hidden;
}

.faq-list-subList {
    position: relative;
    padding: 16px 16px 16px 56px;
    background: #ffffff;
    font-size: 1.8rem;
    line-height: 1.5;
}

.faq-list-subList .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 0 40px;
}

.faq-list-subList a {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.faq-list-subList:last-child {
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.support-help-wrap {
    width: 100%;
    padding: 64px 0;
    background: url(../image/bg_support_help.jpg) center top no-repeat;
    background-size: cover;
}

.support-contact-wrap {
    width: 100%;
    padding: 64px 0;
    background: rgba(221, 213, 255, 0.38);
}

.support-contact-wrap li {
    list-style-type: disc;
}

.support-contact-wrap .text ul {
    margin: 0 0 0 24px;
}

.support-help-wrap .text,
.support-contact-wrap .text {
    width: 700px;
    margin: 0 auto 56px;
    font-size: 1.8rem;
    line-height: 1.5;
}

.btn-goto-help {
    display: block;
    width: 330px;
    height: 60px;
    margin: 0 auto;
}

.btn-goto-help a {
    display: block;
    width: 330px;
    height: 60px;
    background: url(../image/btn_goto_help.png) center top no-repeat;
    background-size: 330px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-goto-help a:hover {
    transform: scale(105%);
}

.btn-goto-contact {
    display: block;
    width: 330px;
    height: 60px;
    margin: 0 auto;
}

.btn-goto-contact a {
    display: block;
    width: 330px;
    height: 60px;
    background: url(../image/btn_goto_contact.png) center top no-repeat;
    background-size: 330px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-goto-contact a:hover {
    transform: scale(105%);
}

.support-detail {
    position: relative;
    width: 700px;
    margin: 0 auto 72px;
    background: #F1EDF5;
    border: 5px solid #CC97E6;
    border-radius: 15px;
}

.howtoplay .support-detail {
    border-color: #f3a865;
}

.support-detail.help {
    background: #ffffff;
}

.support-detail.help .heading {
    position: relative;
    margin: 24px 40px 0;
    font-size: 2.6rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    height: auto;
    overflow: inherit;
}

.support-detail.help .heading::after {
    display: block;
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 100%;
    height: 5px;
    background: #CC97E6;
    border-radius: 3px;
    content: "";
}

.support-detail.help .main-text {
    padding: 36px 40px;
}

.support-detail.help .main-text .bold {
    font-weight: bold;
}

.color-C17DE0 {
    color: #C17DE0;
}

.color-CC1111 {
    color: #CC1111;
}

.cube-wrap {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 8px;
}

.cube-wrap .cube {
    width: 16px;
    height: 16px;
    border-radius: 2px;
    background: #e1d8ff;
}

.support-detail .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin: 12px 16px 8px;
}

.support-detail .label {
    width: 130px;
    height: 25px;
    margin: 0 8px 0 0;
    line-height: 17px;
    border: 3px solid #ffffff;
    border-radius: 13px;
    color: #ffffff;
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
}

.support-detail .label.red, .contents.cont05 .faq-list li .label.red {
    background: #D36D6D;
}

.support-detail .label.yellow, .contents.cont05 .faq-list li .label.yellow {
    background: #F0CC69;
}

.support-detail .label.green, .contents.cont05 .faq-list li .label.green {
    background: #54A28D;
}

.support-detail .label.blue, .contents.cont05 .faq-list li .label.blue {
    background: #4D96FA;
}

.support-detail .date {
    color: #ffffff;
    font-size: 1.8rem;
}

.support-detail .heading {
    margin: 0 24px 16px;
    height: 54px;
    color: #333333;
    font-size: 1.8rem;
    line-height: 1.5;
    overflow: hidden;
}

.support-detail .main-text {
    padding: 24px 56px;
    background: #ffffff;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    color: #000000;
    font-size: 1.8rem;
    line-height: 1.5;
}

.howtoplay-detail-wrap {
    width: 100%;
    margin: 64px auto;
}

.howtoplay-detail-wrap .inner {
    width: 700px;
    margin: 0 auto;
}

.howtoplay-detail-wrap .screenshot-image {
    height: 270px;
}

.howtoplay-detail-wrap .scroll-wrap {
    border-top: 10px solid #f3a865;
    border-bottom: 10px solid #f3a865;
}

.howtoplay-detail-wrap .waitingElem.left {
    transform: translate(-100px, 0);
    transition: transform ease-out 300ms;
}

.howtoplay-detail-wrap .waitingElem.left.showElem {
    transform: translate(0, 0);
}

.howtoplay-detail-wrap .waitingElem.right {
    transform: translate(100px, 0);
    transition: transform ease-out 300ms;
}

.howtoplay-detail-wrap .waitingElem.right.showElem {
    transform: translate(0, 0);
}

.howtoplay-detail-wrap .img02 {
    position: relative;
    z-index: 3;
}

.howtoplay-detail-wrap .img03 {
    position: relative;
    z-index: 2;
    margin-top: -34px;
}

.howtoplay-detail-wrap .img04 {
    margin-top: -36px;
}

.howtoplay-detail-wrap .img05 {
    position: relative;
    z-index: 1;
}

.howtoplay-detail-wrap .img06 {
    margin-top: -38px;
}

.plain-text {
    font-size: 1.8rem;
    font-weight: bold;
    color: #BC0102;
    line-height: 1.5;
    text-align: center;
}

.plain-text.plain-text01 {
    position: absolute;
    bottom: 28px;
    left: 0;
    right: 0;
    z-index: 11;
    margin: auto;
}

.plain-text.plain-text02 {
    color: #007462;
    margin: 0 0 50px;
}

.plain-text.plain-text03 {
    color: #a55500;
    margin: 0 0 32px;
}

.plain-text.plain-text04 {
    margin: -76px 0 66px;
}

.label.red {
    background: #D56161 !important;
}

.label.yellow {
    background: #E6B100 !important;
}

.label.green {
    background: #34A33D !important;
}

.label.blue {
    background: #4D96FA !important;
}

.label.pink {
    background: #FA7AD3 !important;
}

.label.gray {
    background: #909090 !important;
}

.contents.cont07 {
    width: 100%;
    background: url(../image/bg09.jpg) center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
    padding: 1px 0;
}

/* iPad用CSS */
body.iPad .contents.cont07 {
    background: url(../image/bg09.jpg) center center repeat;
    background-size: 130% auto;
}

.cont07-wrap {
    width: 800px;
    margin: 0 auto;
}

.cont07-title {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    gap: 0 3px;
    margin: 50px 0;
    font-family: "Mochiy Pop One", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.cont07-title .square-grayL {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    padding: 0 0 3px;
    background: #91949b;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3.5rem;
}

.cont07-title .square-white {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #ffffff;
    border: 1px solid #91949b;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #333333;
    font-size: 3rem;
}

.cont07-title .square-gray {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    background: #91949b;
    border: 1px solid #91949b;
    border-radius: 5px;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    color: #ffffff;
    font-size: 3rem;
}

.cont07-title .deco {
    position: relative;
    width: 38px;
    height: 30px;
    background: #91949b;
    border: 1px solid #91949b;
    border-radius: 5px;
    border-bottom-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    transform: translateY(13px);
}

.cont07-title .deco span {
    position: absolute;
    right: -1px;
    bottom: -17px;
    width: 26px;
    height: 16px;
    background: #91949b;
    border: 1px solid #91949b;
    border-radius: 5px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
}

.contents.cont07 .catchcopy {
    margin: 64px 0 40px;
}

.page-description {
    font-size: 2.4rem;
    line-height: 1.5;
}

.sponsor-list {
    width: 800px;
}

.sponsor-list li {
    position: relative;
    width: 100%;
    background: #ffffff;
    border: 5px solid #91949b;
    color: #333333;
    font-size: 1.8rem;
    line-height: 1.5;
}

.sponsor-list li:not(:last-child) {
    margin-bottom: 8px;
}

.sponsor-list li .group02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: flex-start;
    position: relative;
    padding: 18px 20px 18px 20px;
    background: #bdc3d0;
    color: #fff;
    line-height: 1.5;
}

.sponsor-list li .group02 .icon {
    width: 24px;
    height: 24px;
    margin-right: 20px;
    transform: translateY(3px);
}

.sponsor-list li .group02 .icon img {
    width: 24px;
    height: 24px;
}

.sponsor-list li .group02 .heading {
    flex: 1 1;
    font-weight: bold;
    padding: 0 58px 0 0;
}

.sponsor-list li .group02 .btn-sponsor-detail {
    display: block;
    width: 40px;
    height: 40px;
    margin: auto;
    background: url(../image/arrow_sponsor.png) no-repeat center top;
    background-size: 40px 40px;
    transition: transform 150ms ease-out;
    position: absolute;
    top: 0;
    right: 18px;
    bottom: 0;
}

.sponsor-list li:hover .group02 .btn-sponsor-detail {
    transform: scale(1.2);
}

.sponsor-list li .detail {
    padding: 12px 30px 12px 50px;
}

.sponsor-list li a {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.btn-more {
    display: block;
    width: 330px;
    height: 60px;
    margin: 0 auto;
}

.btn-more a {
    display: block;
    width: 330px;
    height: 60px;
    background: url(../image/btn_more.png) center top no-repeat;
    background-size: 330px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-more a:hover {
    transform: scale(105%);
}

.btn-goto-specialTop {
    display: block;
    width: 330px;
    height: 60px;
    margin: 0 auto;
}

.btn-goto-specialTop a {
    display: block;
    width: 330px;
    height: 60px;
    background: url(../image/btn_goto_specialTop.png) center top no-repeat;
    background-size: 330px 60px;
    cursor: pointer;
    transition: transform 200ms ease-out;
}

.btn-goto-specialTop a:hover {
    transform: scale(105%);
}

.campaign-list {
    width: 700px;
    margin: 0 auto 72px;
}

.campaign-list.waitingElem {
    transform: translateY(50px);
}

.campaign-list.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}

.campaign-list li {
    position: relative;
    width: 700px;
    margin: 0 0 8px;
    padding: 12px 16px;
    background: #edf5f0;
    border: 5px solid #0eb26d;
    border-radius: 15px;
    font-size: 1.8rem;
}

.campaign-list li > a {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.campaign-list li .group01 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 0 40px;
}

.campaign-list li .group02 {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin: 0 0 8px;
}

.campaign-list li .label {
    width: 130px;
    height: 25px;
    margin: 0 8px 0 0;
    line-height: 17px;
    border: 3px solid #ffffff;
    border-radius: 13px;
    color: #ffffff;
    font-size: 1.4rem;
    text-align: center;
    white-space: nowrap;
}

.campaign-list li .heading {
    height: 54px;
    color: #333333;
    font-size: 1.8rem;
    line-height: 1.5;
    overflow: hidden;
}

.campaign-list li .date {
    margin: 0 0 12px;
    font-weight: bold;
}

.campaign-list li .text {
    margin: 0 0 16px;
    line-height: 1.5;
}

.campaign-list li .banner {
    text-align: center;
}

.campaign-list li .btn-arrow {
    display: block;
    flex-shrink: 0;
    position: relative;
    z-index: 0;
    width: 60px;
    height: 60px;
    background: url(../image/arrow_campaign.png) center top no-repeat;
    background-size: 60px 60px;
    transition: transform 150ms ease-out;
}

.campaign-list li:hover .btn-arrow {
    transform: scale(120%);
}

.campaign-list li.waitingElem {
    transform: translateY(50px);
}

.campaign-list li.showElem {
    transform: translateY(0px);
    transition: all 300ms ease-out;
}


/* スマホ・タブレット用CSS */
@media ( max-width: 800px ) {

    body, .main, .header, .footer, .fv {
        overflow-x: hidden;
    }

    .only-sp {
        display: block !important;
    }

    .only-pc {
        display: none !important;
    }

    /********************
	main
********************/
    /* ローディング */
    .loading {
        position: fixed;
        top: 0;
        left: 0;
        z-index: 1000;
        width: 100%;
        height: 100%;
        opacity: 1;
    }

    .loading.is-hidden {
        display: block !important;
        opacity: 0;
        pointer-events: none;
        transition: all 300ms ease-out;
    }

    .loading .chara01 {
        position: absolute;
        top: 0;
        left: -86px;
        right: 0;
        bottom: 0;
        z-index: 1;
        width: 110px;
        height: 124px;
        margin: auto;
    }

    .contents.cont06 .chara01 {
        width: 110px;
        height: 124px;
        transform: translate(-80px, -166px);
    }

    .loading .chara01 img,
    .contents.cont06 .chara01 img {
        width: 110px;
        height: 124px;
    }

    @keyframes loadingChara {
        0% {
            transform: translateY(0) scale(100%, 100%);
        }
        50% {
            transform: translateY(-20px) scale(100%, 100%);
        }
        70% {
            transform: translateY(0) scale(100%, 100%);
        }
        80% {
            transform: translateY(-5px) scale(103%, 93%);
        }
        100% {
            transform: translateY(0) scale(100%, 100%);
        }
    }

    .loading .chara02 {
        position: absolute;
        top: 0;
        left: 0;
        right: -86px;
        bottom: 0;
        z-index: 1;
        width: 110px;
        height: 124px;
        margin: auto;
    }

    .contents.cont06 .chara02 {
        width: 110px;
        height: 124px;
        transform: translate(80px, -166px);
    }

    .loading .chara02 img,
    .contents.cont06 .chara02 img {
        width: 110px;
        height: 124px;
    }

    .loading .overlay {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0;
        width: 100%;
        height: 100%;
        background: #FFF0FA;
    }

    .header, .main, .footer {
        position: relative;
    }

    .fv {
        position: relative;
        width: 100%;
        height: 620px;
        background: url(../image/bg01_sp.jpg) center top no-repeat;
        background-attachment: fixed;
        background-size: 110% auto;
    }

    .fv-inner-sp {
        width: 375px;
    }

    .gloNav-sp {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 300;
        width: 100%;
        margin: auto;
        padding: 64px 0 40px;
        background: linear-gradient(to bottom, #FC81B1, #C40062);
        opacity: 0;
        pointer-events: none;
    }

    .gloNav-sp.is-show {
        animation: boyoyon01 300ms linear 0ms 1 normal both;
        pointer-events: auto;
    }

    .gloNav-sp-links01 {
        width: 72%;
        margin: 0 auto 40px;
        font-size: 1.8rem;
    }

    .gloNav-sp-links01 li {
        margin: 0 0 12px;
        padding: 0 0 8px;
        border-bottom: 1px solid #ffffff;
        color: #ffffff;
    }

    .gloNav-sp-links01 li.current {
        background-color: #AA336A;
        border-bottom: 3px solid #AA336A;
        padding: 8px 0;
    }

    .gloNav-sp-links01 li::before {
        display: inline-block;
        position: relative;
        width: 12px;
        height: 12px;
        margin: 0 12px;
        background: url(../image/menu_circle.png) center top no-repeat;
        background-size: 12px 12px;
        content: "";
    }

    .gloNav-sp-links01 li a {
        color: #ffffff;
    }

    .gloNav-sp-links02 {
        width: 72%;
        margin: 0 auto;
        padding: 0 0 0 32px;
        font-size: 1.4rem;
        list-style-type: disc;
    }

    .gloNav-sp-links02 li {
        margin: 0 0 12px;
        color: #ffffff;
        white-space: nowrap;
    }

    .gloNav-sp-links02 li a {
        color: #ffffff;
    }

    .gloNav-sp-bg {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 250;
        width: 100%;
        height: 100%;
        margin: auto;
        backdrop-filter: blur(5px);
    }

    .navBtn {
        position: fixed;
        top: 12px;
        right: 12px;
        z-index: 350;
        width: 70px;
        height: 50px;
        background: linear-gradient(to bottom, #FC81B1, #C40062);
        border: 2px solid #ffffff;
        border-radius: 25px;
        cursor: pointer;
    }

    .navBtn > span {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 30px;
        height: 4px;
        margin: auto;
        background: #ffffff;
    }

    .navBtn > span:nth-child(1) {
        position: absolute;
        top: -22px;
        left: 0;
        right: 0;
        bottom: 0;
        transition: transform 150ms ease-out, top 150ms ease-out;
    }

    .navBtn.open > span:nth-child(1) {
        top: 0;
        transform: rotate(-45deg);
    }

    .navBtn > span:nth-child(2) {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        transition: transform 150ms ease-out;
    }

    .navBtn.open > span:nth-child(2) {
        transform: rotate(45deg);
    }

    .navBtn > span:nth-child(3) {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: -22px;
        opacity: 1;
        transition: opacity 150ms ease-out;
    }

    .navBtn.open > span:nth-child(3) {
        opacity: 0;
    }

    .fv .logo {
        position: absolute;
        top: 30px;
        left: 0;
        right: 0;
        z-index: 100;
        width: 250px;
        height: 150px;
        margin: auto;
        opacity: 0;
    }

    .fv.is-show .logo.anime {
        animation: boyoyon01 500ms ease-in-out 0ms 1 normal both;
    }

    @keyframes boyoyon01 {
        0% {
            opacity: 0;
            transform: scale(50%);
        }
        40% {
            opacity: 1;
            transform: scale(100%);
        }
        70% {
            opacity: 1;
            transform: scale(94%);
        }
        100% {
            opacity: 1;
            transform: scale(100%);
        }
    }

    .fv .logo img {
        width: 100%;
        height: 100%;
    }

    .fv .object .keyboard {
        position: absolute;
        top: 368px;
        left: 0;
        right: 0;
        z-index: 10;
        width: 235px;
        height: 114px;
        margin: auto;
        background: url(../image/object_top_keyboard.png) center top no-repeat;
        background-size: 235px 114px;
    }

    .fv .object .chara01 {
        position: absolute;
        top: 175px;
        left: -130px;
        right: 0;
        z-index: 20;
        width: 120px;
        height: 192px;
        margin: auto;
        background: url(../image/fv_chara01.png) center top no-repeat;
        background-size: 120px 192px;
        transform-origin: center bottom;
        opacity: 0;
    }

    .fv.is-show .chara01.anime {
        animation: fvChara01 300ms linear 700ms 1 normal both;
    }

    @keyframes fvChara01 {
        0% {
            transform: translate(-50px, 0);
            opacity: 0;
        }
        50% {
            transform: translate(-10px, -30px);
            opacity: 1;
        }
        80% {
            transform: translate(0px, 0px) scale(105%, 96%);
            opacity: 1;
        }
        100% {
            transform: translate(0px, 0px) scale(100%, 100%);
            opacity: 1;
        }
    }

    .fv .object .chara02 {
        position: absolute;
        top: 173px;
        left: 0;
        right: -134px;
        z-index: 20;
        width: 120px;
        height: 193px;
        margin: auto;
        background: url(../image/fv_chara02.png) center top no-repeat;
        background-size: 120px 193px;
        transform-origin: center bottom;
        opacity: 0;
    }

    .fv.is-show .chara02.anime {
        animation: fvChara02 300ms linear 1000ms 1 normal both;
    }

    @keyframes fvChara02 {
        0% {
            transform: translate(50px, 0);
            opacity: 0;
        }
        50% {
            transform: translate(10px, -30px);
            opacity: 1;
        }
        80% {
            transform: translate(0px, 0px) scale(105%, 96%);
            opacity: 1;
        }
        100% {
            transform: translate(0px, 0px) scale(100%, 100%);
            opacity: 1;
        }
    }

    .fv .object .deco01 {
        position: absolute;
        top: -183px;
        left: -214px;
        right: 0;
        bottom: 0;
        z-index: 0;
        width: 192px;
        height: 360px;
        margin: auto;
        background: url(../image/object_top_left.png) center top no-repeat;
        background-size: 192px 360px;
    }

    .fv.is-show .object .deco01.main-deco.anime {
        animation: loopfvDeco 3000ms linear 0ms infinite normal both;
    }

    @keyframes loopfvDeco {
        0% {
            transform: translateY(0);
        }
        20% {
            transform: translateY(-5px);
        }
        80% {
            transform: translateY(5px);
        }
        100% {
            transform: translateY(0);
        }
    }

    .fv .object .deco02 {
        position: absolute;
        top: 0;
        left: 0;
        right: -278px;
        bottom: -50px;
        z-index: 0;
        width: 249px;
        height: 360px;
        margin: auto;
        background: url(../image/object_top_right.png) center top no-repeat;
        background-size: 249px 360px;
    }

    .fv.is-show .object .deco02.main-deco.anime {
        animation: loopfvDeco 3000ms linear 500ms infinite normal both;
    }

    .fv .object .left-deco {
        position: absolute;
        top: -228px;
        left: -216px;
        right: 0;
        bottom: 0;
        z-index: 0;
        width: 156px;
        height: 36px;
        margin: auto;
        opacity: 0;
        transform-origin: left bottom;
    }

    .fv .object .left-deco.deco01 {
        background: url(../image/object_top_left_deco01.png) center top no-repeat;
        background-size: 156px 36px;
    }

    .fv .object .left-deco.deco02 {
        background: url(../image/object_top_left_deco02.png) center top no-repeat;
        background-size: 156px 36px;
    }

    .fv .object .left-deco.deco03 {
        background: url(../image/object_top_left_deco03.png) center top no-repeat;
        background-size: 156px 36px;
    }

    .fv .object .left-deco.deco04 {
        background: url(../image/object_top_left_deco04.png) center top no-repeat;
        background-size: 156px 36px;
    }

    .fv.is-show .object .left-deco.deco01.anime {
        animation: fvLeftDeco 3200ms linear 0ms infinite normal both;
    }

    .fv.is-show .object .left-deco.deco02.anime {
        animation: fvLeftDeco 3200ms linear 800ms infinite normal both;
    }

    .fv.is-show .object .left-deco.deco03.anime {
        animation: fvLeftDeco 3200ms linear 1600ms infinite normal both;
    }

    .fv.is-show .object .left-deco.deco04.anime {
        animation: fvLeftDeco 3200ms linear 2400ms infinite normal both;
    }

    @keyframes fvLeftDeco {
        0% {
            transform: translateY(0px) scale(0%);
            opacity: 0;
        }
        33% {
            transform: translateY(-20px) scale(100%);
            opacity: 1;
        }
        66% {
            transform: translateY(-80px) scale(100%);
            opacity: 1;
        }
        100% {
            transform: translateY(-100px) scale(0%);
            opacity: 0;
        }
    }

    .fv .object .right-deco {
        position: absolute;
        top: -186px;
        left: 0;
        right: -301px;
        bottom: 0;
        z-index: 0;
        width: 76px;
        height: 70px;
        margin: auto;
        opacity: 0;
        transform-origin: right bottom;
    }

    .fv .object .right-deco.deco01 {
        background: url(../image/object_top_right_deco01.png) center top no-repeat;
        background-size: 76px 70px;
    }

    .fv .object .right-deco.deco02 {
        background: url(../image/object_top_right_deco02.png) center top no-repeat;
        background-size: 76px 70px;
    }

    .fv .object .right-deco.deco03 {
        background: url(../image/object_top_right_deco03.png) center top no-repeat;
        background-size: 76px 70px;
    }

    .fv .object .right-deco.deco04 {
        background: url(../image/object_top_right_deco04.png) center top no-repeat;
        background-size: 76px 70px;
    }

    .fv .object .right-deco.deco05 {
        background: url(../image/object_top_right_deco05.png) center top no-repeat;
        background-size: 76px 70px;
    }

    .fv .object .right-deco.deco06 {
        background: url(../image/object_top_right_deco06.png) center top no-repeat;
        background-size: 76px 70px;
    }

    .fv.is-show .object .right-deco.deco01.anime {
        animation: fvRightDeco 4800ms linear 0ms infinite normal both;
    }

    .fv.is-show .object .right-deco.deco02.anime {
        animation: fvRightDeco 4800ms linear 800ms infinite normal both;
    }

    .fv.is-show .object .right-deco.deco03.anime {
        animation: fvRightDeco 4800ms linear 1600ms infinite normal both;
    }

    .fv.is-show .object .right-deco.deco04.anime {
        animation: fvRightDeco 4800ms linear 2400ms infinite normal both;
    }

    .fv.is-show .object .right-deco.deco05.anime {
        animation: fvRightDeco 4800ms linear 3200ms infinite normal both;
    }

    .fv.is-show .object .right-deco.deco06.anime {
        animation: fvRightDeco 4800ms linear 4000ms infinite normal both;
    }

    @keyframes fvRightDeco {
        0% {
            transform: translate(0px, 0px) scale(0%);
            opacity: 0;
        }
        25% {
            transform: translate(-50px, -50px) scale(100%);
            opacity: 1;
        }
        50% {
            transform: translate(0px, -100px) scale(100%);
            opacity: 1;
        }
        75% {
            transform: translate(-50px, -150px) scale(0%);
            opacity: 0;
        }
        100% {
            transform: translate(-50px, -150px) scale(0%);
            opacity: 0;
        }
    }

    .fv .object .bottom {
        position: absolute;
        bottom: 0px;
        left: 0;
        right: 0;
        z-index: 10;
        width: 100%;
        height: 100px;
        margin: auto;
        background: url(../image/object_top_bottom.png) center bottom no-repeat;
        background-size: 240% auto;
    }

    .btn-game-start {
        position: absolute;
        bottom: 55px;
        left: 0;
        right: 0;
        z-index: 200;
        width: 350px;
        height: 90px;
        margin: auto;
        background: url(../image/btn_game_start.png) center top no-repeat;
        background-size: 350px 90px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .contents.cont06 .btn-game-start {
        position: relative;
        bottom: 0;
        margin: 0;
    }

    .btn-game-start:hover {
        transform: scale(110%);
    }

    .fv.is-show .btn-game-start.anime {
        animation: fvBtnGamestart 500ms linear 1300ms 1 normal backwards;
    }

    @keyframes fvBtnGamestart {
        0% {
            transform: scale(50%);
            opacity: 0;
        }
        40% {
            transform: scale(130%);
            opacity: 1;
        }
        70% {
            transform: scale(90%);
            opacity: 1;
        }
        90% {
            transform: scale(105%);
            opacity: 1;
        }
        100% {
            transform: scale(100%);
            opacity: 1;
        }
    }

    .campaign-banner {
        position: absolute;
        bottom: 157px;
        left: 0;
        right: 0;
        z-index: 30;
        width: 200px;
        margin: auto;
    }

    .campaign-banner img {
        width: 200px;
    }

    .contents {
        position: relative;
    }

    .contents.cont01 {
        width: 100%;
        background: url(../image/bg02.jpg) center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding: 1px 0;
    }

    .cont01-wrap {
        width: 375px;
        margin: 0 auto;
    }

    .cont01-title {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 3px;
        margin: 40px 0;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .cont01-title .square-greenL {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        background: #10D0B2;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2.5rem;
    }

    .cont01-title .square-white {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #ffffff;
        border: 1px solid #10D0B2;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #333333;
        font-size: 2rem;
    }

    .cont01-title .square-green {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #10D0B2;
        border: 1px solid #10D0B2;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2rem;
    }

    .cont01-title .deco {
        position: relative;
        width: 30px;
        height: 22px;
        background: #10D0B2;
        border: 1px solid #10D0B2;
        border-radius: 5px;
        border-bottom-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        transform: translateY(13px);
    }

    .cont01-title .deco span {
        position: absolute;
        right: -1px;
        bottom: -11px;
        width: 20px;
        height: 10px;
        background: #10D0B2;
        border: 1px solid #10D0B2;
        border-radius: 5px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    }

    .contents.cont01 .play-video {
        position: relative;
        width: 370px;
        height: 352px;
        margin: 0 auto 50px;
        background: url(../image/frame_video_sp.png) center top no-repeat;
        background-size: 370px 352px;
    }

    .contents.cont01 .play-video.waitingElem {
        transform: translateY(50px);
    }

    .contents.cont01 .play-video.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .contents.cont01 .play-video .tentative {
        position: absolute;
        top: -18px;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
        width: 330px;
        height: 200px;
        background: #d4d4d4;
    }

    .contents.cont01 .play-video .tentative .parts-video-play {
        position: absolute;
        top: 0;
        left: 10px;
        right: 0;
        bottom: 0;
        width: 50px;
        height: 60px;
        margin: auto;
        background: url(../image/parts_video_play.png) center center no-repeat;
        background-size: 50px 60px;
        cursor: pointer;
        transition: transform 150ms ease-out;
    }

    .contents.cont01 .play-video .ui-parts {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        position: absolute;
        left: 0;
        right: 0;
        bottom: 6px;
        width: 360px;
        height: 42px;
        margin: auto;
    }

    .contents.cont01 .play-video .ui-parts > div {
        display: flex;
        flex-flow: row nowrap;
        align-items: center;
    }

    .contents.cont01 .play-video .ui-parts .parts-bar {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 45px;
        width: 360px;
        height: 3px;
        margin: auto;
        background: #ffffff;
    }

    .contents.cont01 .play-video .ui-parts .parts-bar .parts-seek {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 16px;
        height: 16px;
        margin: auto;
        background: #ffffff;
        border-radius: 10px;
    }

    .contents.cont01 .play-video .ui-parts .parts-video-play {
        display: inline-block;
        width: 23px;
        height: 28px;
        margin: 0 16px 0 20px;
        background: url(../image/parts_video_play.png) center center no-repeat;
        background-size: 23px 28px;
    }

    .contents.cont01 .play-video .ui-parts .parts-next-video {
        display: inline-block;
        width: 26px;
        height: 26px;
        margin: 0 16px 0 0;
        background: url(../image/parts_next_video.png) center center no-repeat;
        background-size: 26px 26px;
    }

    .contents.cont01 .play-video .ui-parts .parts-video-volume {
        display: inline-block;
        width: 42px;
        height: 32px;
        background: url(../image/parts_video_volume.png) center center no-repeat;
        background-size: 42px 32px;
    }

    .contents.cont01 .play-video .ui-parts .parts-video-setting {
        display: inline-block;
        width: 30px;
        height: 30px;
        margin: 0 16px 0 0;
        background: url(../image/parts_video_setting.png) center center no-repeat;
        background-size: 30px 30px;
    }

    .contents.cont01 .play-video .ui-parts .parts-video-fullscreen {
        display: inline-block;
        width: 26px;
        height: 26px;
        margin: 0 20px 0 0;
        background: url(../image/parts_video_fullscreen.png) center center no-repeat;
        background-size: 26px 26px;
    }

    .contents.cont01 .play-video .tentative .parts-video-play:hover {
        transform: scale(105%);
    }

    .btn-video-more {
        display: block;
        width: 240px;
        height: 40px;
        margin: 0 auto 40px;
    }

    .btn-video-more a {
        display: block;
        width: 240px;
        height: 40px;
        background: url(../image/btn_video_more.png) center top no-repeat;
        background-size: 240px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-video-more a:hover {
        transform: scale(105%);
    }

    .btn-video-more.waitingElem {
        transform: translateY(50px);
    }

    .btn-video-more.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .btn-goto-top {
        position: fixed;
        bottom: 24px;
        right: 16px;
        z-index: 200;
        width: 48px;
        height: 48px;
        background: url(../image/btn_goto_top.png) center top no-repeat;
        background-size: 48px 48px;
        cursor: pointer;
        opacity: 1;
        transition: transform 150ms ease-out, opacity 150ms ease-out;
    }

    .btn-goto-top:hover {
        transform: translateY(-5px);
    }

    .btn-goto-top.is-hidden {
        display: block !important;
        opacity: 0;
        pointer-events: none;
    }

    .contents.cont02 {
        width: 100%;
        background: url(../image/bg03_sp.jpg) center center repeat;
        background-attachment: fixed;
        background-size: 130% auto;
        padding: 1px 0;
    }

    .cont02-wrap {
        width: 375px;
        margin: 0 auto;
    }

    .cont02-title {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 3px;
        margin: 40px 0;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .cont02-title .square-blueL {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        background: #83B7EB;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2.5rem;
    }

    .cont02-title .square-white {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #ffffff;
        border: 1px solid #83B7EB;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #333333;
        font-size: 2rem;
    }

    .cont02-title .square-blue {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #83B7EB;
        border: 1px solid #83B7EB;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2rem;
    }

    .cont02-title .deco {
        position: relative;
        width: 30px;
        height: 22px;
        background: #83B7EB;
        border: 1px solid #83B7EB;
        border-radius: 5px;
        border-bottom-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        transform: translateY(13px);
    }

    .cont02-title .deco span {
        position: absolute;
        right: -1px;
        bottom: -11px;
        width: 20px;
        height: 10px;
        background: #83B7EB;
        border: 1px solid #83B7EB;
        border-radius: 5px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    }

    .contents.cont02 .notice-list {
        width: 350px;
        margin: 0 auto 40px;
    }

    .contents.cont02 .notice-list li {
        width: 350px;
        height: 120px;
        margin: 0 0 8px;
        padding: 6px 8px 0;
        background: #6D87D1;
        border: 3px solid #4E72D6;
        border-radius: 8px;
    }

    .contents.cont02 .notice-list li.waitingElem {
        transform: translateY(50px);
    }

    .contents.cont02 .notice-list li.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .contents.cont02 .notice-list li .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 0 16px;
    }

    .contents.cont02 .notice-list li .group02 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: center;
        margin: 0 0 8px;
    }

    .contents.cont02 .notice-list li .label {
        width: 100px;
        height: 25px;
        margin: 0 8px 0 0;
        line-height: 17px;
        border: 3px solid #ffffff;
        border-radius: 13px;
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
        white-space: nowrap;
    }

    .contents.cont02 .notice-list li .label.red, .contents.cont05 .faq-list li .label.red {
        background: #D36D6D;
    }

    .contents.cont02 .notice-list li .label.yellow, .contents.cont05 .faq-list li .label.yellow {
        background: #F0CC69;
    }

    .contents.cont02 .notice-list li .label.green, .contents.cont05 .faq-list li .label.green {
        background: #54A28D;
    }

    .contents.cont02 .notice-list li .label.blue, .contents.cont05 .faq-list li .label.blue {
        background: #4D96FA;
    }

    .contents.cont02 .notice-list li .date {
        color: #ffffff;
        font-size: 1.5rem;
    }

    .contents.cont02 .notice-list li .heading {
        height: 64px;
        color: #ffffff;
        font-size: 1.5rem;
        line-height: 1.5;
        overflow: hidden;
    }

    .contents.cont02 .notice-list li .btn-notice-detail {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 40px;
        height: 40px;
        background: url(../image/btn_notice_detail.png) center top no-repeat;
        background-size: 40px 40px;
        transition: transform 150ms ease-out;
    }

    .contents.cont02 .notice-list li .btn-notice-detail:hover {
        transform: scale(110%);
    }

    .btn-notice-list {
        display: block;
        width: 240px;
        height: 40px;
        margin: 0 auto 40px;
    }

    .btn-notice-list a {
        display: block;
        width: 240px;
        height: 40px;
        background: url(../image/btn_notice_list.png) center top no-repeat;
        background-size: 240px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-notice-list a:hover {
        transform: scale(105%);
    }

    .btn-notice-list.waitingElem {
        transform: translateY(50px);
    }

    .btn-notice-list.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .contents.cont03 {
        width: 100%;
        background: url(../image/bg04.jpg) center top no-repeat;
        background-size: cover;
        padding: 1px 0;
    }

    .howtoplay .contents.cont03 {
        background-attachment: scroll;
    }

    .cont03-wrap {
        width: 100%;
        margin: 0 auto;
    }

    .cont03-title {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 3px;
        margin: 40px 0;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .cont03-title .square-orangeL {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        background: #F3A865;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2.5rem;
    }

    .cont03-title .square-white {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #ffffff;
        border: 1px solid #F3A865;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #333333;
        font-size: 2rem;
    }

    .cont03-title .square-orange {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #F3A865;
        border: 1px solid #F3A865;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2rem;
    }

    .cont03-title .deco {
        position: relative;
        width: 30px;
        height: 22px;
        background: #F3A865;
        border: 1px solid #F3A865;
        border-radius: 5px;
        border-bottom-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        transform: translateY(13px);
    }

    .cont03-title .deco span {
        position: absolute;
        right: -1px;
        bottom: -11px;
        width: 20px;
        height: 10px;
        background: #F3A865;
        border: 1px solid #F3A865;
        border-radius: 5px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    }

    .contents.cont03 .screenshot {
        display: flex;
        align-items: center;
        width: 100%;
        height: 260px;
        margin: 0 0 20px;
        background: url(../image/base_howtoplay_ss.png) center center no-repeat;
        background-size: cover;
    }

    .contents.cont03 .screenshot.waitingElem {
        transform: translateY(50px);
    }

    .contents.cont03 .screenshot.showElem {
        transform: translateY(0px);
        transition: all 150ms ease-out;
    }

    /*.contents.cont03 .screenshot.waitingElem .scroll-track {
	transform: translateX( 100px );
}

.contents.cont03 .screenshot.showElem .scroll-track {
	transform: translateX( 0px );
	transition: all 600ms ease-out 600ms;
}*/
    .contents.cont03 .screenshot .screenshot-image {
        height: 200px;
    }

    .scroll-wrap {
        width: 100%;
        overflow: hidden;
    }

    .scroll-track {
        display: flex;
        flex-flow: row nowrap;
        width: max-content;
        animation: infiniteScroll 20s linear infinite;
    }

    @keyframes infiniteScroll {
        0% {
            transform: translateX(0);
        }
        100% {
            transform: translateX(calc(-100% / 2));
        }
    }

    .catchcopy .text01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        left: 0;
        width: 300px;
        height: 60px;
        margin: 0 auto 10px;
        background: url(../image/base_text01.png) center top no-repeat;
        background-size: 300px 60px;
        color: #ffffff;
        font-size: 1.6rem;
        transform: translateX(-55px);
    }

    .catchcopy .text01.showElem {
        animation: boyoyon01 500ms ease-in-out 0ms 1 normal both;
    }

    .catchcopy .text01 span {
        transform: rotate(-3deg);
    }

    .catchcopy .text02 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        right: 0;
        width: 330px;
        height: 72px;
        margin: 0 auto 20px;
        padding: 0 0 6px;
        background: url(../image/base_text02.png) center top no-repeat;
        background-size: 330px 72px;
        color: #ffffff;
        font-size: 1.6rem;
        transform: translateX(60px);
    }

    .catchcopy .text02.showElem {
        animation: boyoyon01 500ms ease-in-out 250ms 1 normal both;
    }

    .catchcopy .text03 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        width: 360px;
        height: 140px;
        line-height: 1.5;
        margin: 0 auto 32px;
        padding: 0 20px 7px;
        background: url(../image/base_text03.png) center top no-repeat;
        background-size: 360px 140px;
        color: #ffffff;
        font-size: 1.6rem;
        transform: translateX(60px);
    }

    .btn-howtoplay-detail {
        display: block;
        width: 240px;
        height: 40px;
        margin: 0 auto 40px;
    }

    .btn-howtoplay-detail a {
        display: block;
        width: 240px;
        height: 40px;
        background: url(../image/btn_howtoplay_detail.png) center top no-repeat;
        background-size: 240px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-howtoplay-detail a:hover {
        transform: scale(105%);
    }

    .btn-howtoplay-detail.waitingElem {
        transform: translateY(50px);
    }

    .btn-howtoplay-detail.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .contents.cont04 {
        width: 100%;
        background: url(../image/bg05_sp.jpg) 0% 100% repeat;
        background-attachment: fixed;
        background-size: 100%;
        padding: 1px 0;
    }

    .cont04-wrap {
        width: 375px;
        margin: 0 auto;
    }

    .cont04-title {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 3px;
        margin: 40px 0;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .cont04-title .square-pinkL {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        background: #FA7D7D;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2.5rem;
    }

    .cont04-title .square-white {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #ffffff;
        border: 1px solid #FA7D7D;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #333333;
        font-size: 2rem;
    }

    .cont04-title .square-pink {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #FA7D7D;
        border: 1px solid #FA7D7D;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2rem;
    }

    .cont04-title .deco {
        position: relative;
        width: 30px;
        height: 22px;
        background: #FA7D7D;
        border: 1px solid #FA7D7D;
        border-radius: 5px;
        border-bottom-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        transform: translateY(13px);
    }

    .cont04-title .deco span {
        position: absolute;
        right: -1px;
        bottom: -11px;
        width: 20px;
        height: 10px;
        background: #FA7D7D;
        border: 1px solid #FA7D7D;
        border-radius: 5px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    }

    .contents.cont04 .chara-wrap {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: flex-end;
        gap: 0 8px;
        margin: 0 auto 50px;
    }

    .contents.cont04 .chara-wrap .chara01, .contents.cont04 .chara-wrap .chara02 {
        display: flex;
        flex-flow: column nowrap;
        width: 180px;
    }

    .contents.cont04 .chara-wrap .chara02 {
        align-items: flex-end;
    }

    .contents.cont04 .chara-wrap .chara01 .serif {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        width: 150px;
        height: 98px;
        padding: 0 0 5px;
        background: url(../image/balloon_chara01.png) center center no-repeat;
        background-size: 150px 98px;
        color: #FF8396;
        font-size: 1.5rem;
        line-height: 1.5;
        transform: translate(10px, 10px);
        transform-origin: right bottom;
    }

    .contents.cont04 .chara-wrap .chara01 .img img {
        width: 180px;
        height: 220px;
    }

    .contents.cont04 .chara-wrap .chara01.showElem .serif {
        animation: boyoyon01 300ms linear 1100ms 1 normal both;
    }

    .contents.cont04 .chara-wrap .chara01.showElem .img {
        animation: fvChara01 300ms linear 500ms 1 normal both;
    }

    @keyframes fvChara01 {
        0% {
            transform: translate(-50px, 0);
            opacity: 0;
        }
        50% {
            transform: translate(-10px, -30px);
            opacity: 1;
        }
        80% {
            transform: translate(0px, 0px) scale(105%, 96%);
            opacity: 1;
        }
        100% {
            transform: translate(0px, 0px) scale(100%, 100%);
            opacity: 1;
        }
    }

    .contents.cont04 .chara-wrap .chara02 .serif {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        width: 150px;
        height: 89px;
        padding: 0 0 11px 15px;
        background: url(../image/balloon_chara02.png) center center no-repeat;
        background-size: 150px 89px;
        color: #409DFF;
        font-size: 1.5rem;
        line-height: 1.5;
        transform: translate(80px, 2px);
        transform-origin: left bottom;
    }

    .contents.cont04 .chara-wrap .chara02 .img img {
        width: 180px;
        height: 223px;
    }

    .contents.cont04 .chara-wrap .chara02.showElem .serif {
        animation: boyoyon01 300ms linear 1400ms 1 normal both;
    }

    .contents.cont04 .chara-wrap .chara02.showElem .img {
        animation: fvChara02 300ms linear 800ms 1 normal both;
    }

    .btn-chara-intro {
        display: block;
        width: 240px;
        height: 40px;
        margin: 0 auto 40px;
    }

    .btn-chara-intro a {
        display: block;
        width: 240px;
        height: 40px;
        background: url(../image/btn_chara_intro.png) center top no-repeat;
        background-size: 240px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-chara-intro a:hover {
        transform: scale(105%);
    }

    .btn-chara-intro.waitingElem {
        transform: translateY(50px);
    }

    .btn-chara-intro.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .contents.cont05 {
        width: 100%;
        background: url(../image/bg06_sp.jpg) center center repeat;
        background-attachment: fixed;
        background-size: 130% auto;
        padding: 1px 0;
    }

    .support.help.subpage .contents.cont05 {
        background: url(../image/bg08.jpg) center top repeat;
        background-attachment: scroll;
        background-size: 130% auto;
    }

    .cont05-wrap {
        width: 375px;
        margin: 0 auto;
    }

    .cont05-title {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 3px;
        margin: 40px 0;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .cont05-title .square-purpleL {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        background: #C17DE0;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2.5rem;
    }

    .cont05-title .square-white {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #ffffff;
        border: 1px solid #C17DE0;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #333333;
        font-size: 2rem;
    }

    .cont05-title .square-purple {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #C17DE0;
        border: 1px solid #C17DE0;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2rem;
    }

    .cont05-title .deco {
        position: relative;
        width: 30px;
        height: 22px;
        background: #C17DE0;
        border: 1px solid #C17DE0;
        border-radius: 5px;
        border-bottom-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        transform: translateY(13px);
    }

    .cont05-title .deco span {
        position: absolute;
        right: -1px;
        bottom: -11px;
        width: 20px;
        height: 10px;
        background: #C17DE0;
        border: 1px solid #C17DE0;
        border-radius: 5px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    }

    .contents.cont05 .faq-list {
        width: 350px;
        margin: 0 auto 40px;
    }

    .contents.cont05 .faq-list li {
        width: 350px;
        height: 120px;
        margin: 0 0 8px;
        padding: 6px 8px 0;
        background: #FFFFFF;
        border: 3px solid #CC97E6;
        border-radius: 8px;
    }

    .contents.cont05 .faq-list li .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 0 16px;
    }

    .contents.cont05 .faq-list li .group02 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: center;
        margin: 0 0 8px;
    }

    .contents.cont05 .faq-list li .label {
        width: 130px;
        height: 25px;
        margin: 0 8px 0 0;
        line-height: 17px;
        border: 3px solid #ffffff;
        border-radius: 13px;
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
        white-space: nowrap;
    }

    .contents.cont05 .faq-list li .heading {
        height: 64px;
        color: #333333;
        font-size: 1.5rem;
        line-height: 1.5;
        overflow: hidden;
    }

    .contents.cont05 .faq-list li .btn-faq-detail {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 40px;
        height: 40px;
        background: url(../image/btn_faq_detail.png) center top no-repeat;
        background-size: 40px 40px;
        transition: transform 150ms ease-out;
    }

    .contents.cont05 .faq-list li .btn-faq-detail:hover {
        transform: scale(110%);
    }

    .contents.cont05 .faq-list li.waitingElem {
        transform: translateY(50px);
    }

    .contents.cont05 .faq-list li.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .btn-here-support {
        display: block;
        width: 240px;
        height: 40px;
        margin: 0 auto 40px;
    }

    .btn-here-support a {
        display: block;
        width: 240px;
        height: 40px;
        background: url(../image/btn_here_support.png) center top no-repeat;
        background-size: 240px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-here-support a:hover {
        transform: scale(105%);
    }

    .btn-here-support.waitingElem {
        transform: translateY(50px);
    }

    .btn-here-support.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .contents.cont06 {
        width: 100%;
        background: url(../image/bg07.jpg) center top no-repeat;
        background-size: cover;
        padding: 1px 0;
    }

    .cont06-wrap {
        width: 375px;
        margin: 0 auto;
    }

    .contents.cont06 .footer-logo {
        width: 188px;
        height: auto;
        margin: 40px auto 4px;
    }

    .contents.cont06 .footer-logo img {
        width: 100%;
        height: 100%;
    }

    .btn-toppage {
        display: block;
        width: 160px;
        height: 30px;
        margin: 0 auto 72px;
    }

    .btn-toppage a {
        display: block;
        width: 160px;
        height: 30px;
        background: url(../image/btn_toppage.png) center top no-repeat;
        background-size: 160px 30px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-toppage a:hover {
        transform: scale(105%);
    }

    .contents.cont06 .footer-links {
        display: flex;
        flex-flow: column wrap;
        justify-content: flex-start;
        align-items: center;
        width: 375px;
        margin: -16px auto 40px;
    }

    .contents.cont06 .footer-links li {
        position: relative;
        width: 50%;
        margin: 0 0 16px;
        text-align: center;
    }

    .contents.cont06 .footer-links li:not( :last-child )::after {
        display: none;
        margin: 0 16px;
        color: #ffffff;
        content: "｜";
    }

    .contents.cont06 .footer-links li a {
        color: #ffffff;
        font-size: 1.5rem;
        transition: color 150ms ease-out;
    }

    .contents.cont06 .footer-links li a:hover {
        color: #ffea99;
    }

    .footer {
        padding: 40px 0 16px;
        background: #2D2D2D;
    }

    .footer .footer-inner {
        width: 375px;
        margin: 0 auto;
    }

    .footer .c4on-logo {
        width: 230px;
        height: auto;
        margin: 0 0 32px 20px;
    }

    .footer .c4on-logo img {
        width: 100%;
        height: auto;
    }


    .footer .copyright {
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
    }

    .sns-icons {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        gap: 0 20px;
        margin: 0 0 32px 24px;
    }

    .sns-icons li {
        width: 60px;
        height: 60px;
        transition: transform 150ms ease-out;
    }

    .sns-icons li.icon-x a {
        display: block;
        width: 60px;
        height: 60px;
        background: url(../image/icon_x.png) center center no-repeat;
        background-size: 60px 60px;
    }

    .sns-icons li.icon-youtube a {
        display: block;
        width: 60px;
        height: 60px;
        background: url(../image/icon_youtube.png) center center no-repeat;
        background-size: 60px 60px;
    }

    .sns-icons li.icon-facebook a {
        display: block;
        width: 60px;
        height: 60px;
        background: url(../image/icon_facebook.png) center center no-repeat;
        background-size: 60px 60px;
    }

    .sns-icons li:hover {
        transform: scale(110%);
    }

    .footer .footer-links01 {
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-end;
        margin: 0 0 16px;
        padding: 0 24px;
        color: #ffffff;
        font-size: 1.6rem;
    }

    .footer .footer-links01 li {
        margin-bottom: 12px;
    }

    .footer .footer-links01 li:first-child::before {
        margin: 0 8px;
        color: #ffffff;
        content: "・";
    }

    .footer .footer-links01 li::before {
        margin: 0 8px;
        color: #ffffff;
        content: "・";
    }

    .footer .footer-links01 li::after {
        display: none;
        margin: 0 16px;
        color: #ffffff;
        content: "・";
    }

    .footer .footer-links02 {
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-end;
        margin: 0 0 32px;
        padding: 0 24px;
        color: #ffffff;
        font-size: 1.6rem;
    }

    .footer .footer-links02 li {
        margin-bottom: 12px;
    }

    .footer .footer-links02 li:first-child::before {
        margin: 0 8px;
        color: #ffffff;
        content: "・";
    }

    .footer .footer-links02 li::before {
        margin: 0 8px;
        color: #ffffff;
        content: "・";
    }

    .footer .footer-links02 li::after {
        display: none;
        margin: 0 16px;
        color: #ffffff;
        content: "｜";
    }

    .footer .footer-links01 a, .footer .footer-links02 a {
        color: #ffffff;
        transition: color 150ms ease-out;
    }

    .footer .footer-links01 a:hover, .footer .footer-links02 a:hover {
        color: #ffea99;
    }

    /* 下層ページ */
    .subpage .header {
        background: url(../image/bg01.jpg) center top no-repeat;
        background-size: 130% auto;
    }

    .subpageHeader-inner {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        width: 100%;
        margin: 0 auto;
        padding: 8px 0;
    }

    .subpageHeader-inner .logo {
        width: 188px;
        height: auto;
    }

    .subpageHeader-inner .logo:hover {
        animation: boyoyon02 500ms linear 0ms 1 normal both;
    }

    @keyframes boyoyon02 {
        0% {
            transform: scale(100%);
        }
        30% {
            transform: scale(110%);
        }
        60% {
            transform: scale(100%);
        }
        80% {
            transform: scale(103%);
        }
        100% {
            transform: scale(100%);
        }
    }

    .subpageHeader-inner .logo img {
        width: 100%;
        height: 100%;
    }

    .chara.subpage .header .title-wrap {
        padding: 24px 0 32px;
        background: url(../image/base_chara_title.png) center center no-repeat rgba(255, 190, 155, 0.7);
        background-size: auto 55%;
    }

    .special.subpage .header .title-wrap {
        padding: 24px 0 32px;
        background: url(../image/base_special_title.png) center center no-repeat rgba(91, 244, 191, 0.6);
        background-size: auto 46%;
    }

    .notice.subpage .header .title-wrap {
        padding: 24px 0 32px;
        background: url(../image/base_notice_title.png) center center no-repeat rgba(170, 210, 250, 0.6);
        background-size: auto 46%;
    }

    .support.subpage .header .title-wrap {
        padding: 24px 0 32px;
        background: url(../image/base_support_title.png) center center no-repeat rgba(203, 143, 230, 0.6);
        background-size: auto 47%;
    }

    .howtoplay.subpage .header .title-wrap {
        padding: 24px 0 32px;
        background: url(../image/base_howtoplay_title.png) center center no-repeat rgba(255, 222, 0, 0.6);
        background-size: auto 45%;
    }

    .chara .cont04-title p:nth-child(1) {
        transform: translate(0px, 0px);
    }

    .chara .cont04-title p:nth-child(2) {
        transform: translate(0px, 22px);
    }

    .chara .cont04-title p:nth-child(3) {
        transform: translate(0px, 11px);
    }

    .chara .cont04-title p:nth-child(4) {
        transform: translate(0px, 22px);
    }

    .chara .cont04-title p:nth-child(5) {
        transform: translate(0px, 22px);
    }

    .chara .cont04-title p:nth-child(6) {
        transform: translate(0px, 11px);
    }

    .chara .cont04-title p:nth-child(7) {
        transform: translate(0px, 0px);
    }

    .chara-intro01 {
        background: url(../image/bg_chara01.jpg) center top repeat;
        background-attachment: fixed;
        background-size: 1000px auto;
        padding: 64px 0 0;
    }

    .chara-intro01-inner {
        width: 375px;
        margin: 0 auto;
    }

    .subpage .catchcopy {
        margin: 0 0 48px;
        color: #333333;
        font-size: 2rem;
        line-height: 1.5;
        text-align: center;
    }

    .chara-intro01 .img .chara {
        width: 160px;
        height: 257px;
    }

    .chara-intro01 .img .chara img {
        width: 100%;
        height: auto;
    }

    .chara-intro01 .img .chara img.show {
        animation: charaIllstShow 300ms ease-out 0ms 1 normal both;
    }

    @keyframes charaIllstShow {
        0% {
            transform: translateY(0);
        }
        50% {
            transform: translateY(-40px);
        }
        70% {
            transform: translateY(0);
        }
        90% {
            transform: translateY(0) scale(103%, 97%);
        }
        100% {
            transform: translateX(0) scale(100%, 100%);
        }
    }

    .chara-intro01 .text .name {
        width: 80px;
        height: auto;
        transform: translate(-76px, -73px);
    }

    .chara-intro01 .text .name img {
        width: 100%;
        height: auto;
    }

    .chara-intro01 .text {
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-end;
        align-items: flex-end;
        width: 370px;
        height: 230px;
        background: url(../image/base_chara_text01.png) center top no-repeat;
        background-size: 100% 100%;
        transform: translate(30px, -216px);
        opacity: 0;
    }

    .chara-intro-wrap01 {
        width: 375px;
        margin: 0 auto -135px;
    }

    .chara-intro-text01 {
        width: 88%;
        font-size: 1.6rem;
        line-height: 2;
        transform: translate(29px, -220px);
    }

    .chara-intro-text02 {
        width: 88%;
        font-size: 1.6rem;
        line-height: 2;
        transform: translate(29px, -215px);
    }

    .chara-intro-text01 > span,
    .chara-intro-text02 > span {
        font-weight: bold;
    }

    .chara-intro01 .img {
        position: relative;
        z-index: 1;
        transform: translateX(0px);
        opacity: 0;
        pointer-events: none;
    }

    .chara-intro01 .img .chara img[data-chara-illust01="illust06"] {
        position: relative;
        left: -16px;
    }

    .chara-intro01 .img.showElem {
        transform: translateX(30px);
        transition: all 300ms ease-out;
        opacity: 1;
    }

    .chara-intro01 .text.showElem {
        transform: translate(0px, -216px);
        transition: all 300ms ease-out 150ms;
        opacity: 1;
    }

    .chara-intro01 .text .intro {
        font-size: 1.8rem;
        line-height: 1.5;
        transform: translate(-83px, -59px);
    }

    .chara-intro01 .text .thumbs {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        gap: 0 10px;
        transform: translate(-29px, -61px);
    }

    .chara-intro01 .text .thumbs img {
        width: 50px;
        height: 50px;
        cursor: pointer;
        transition: all 150ms ease-out;
    }

    .chara-intro01 .text .thumbs img:hover {
        filter: brightness(1.1);
    }

    .chara-intro-wrap01 {
        width: 375px;
        margin: 0 auto -135px;
    }

    .chara-intro-wrap02 {
        width: 375px;
        margin: 0 auto -135px;
    }

    .chara-intro02 {
        background: url(../image/bg_chara02.jpg) center top repeat;
        background-attachment: fixed;
        background-size: 1000px auto;
        padding: 64px 0 0;
    }

    .chara-intro02-inner {
        width: 375px;
        margin: 0 auto;
    }

    .chara-intro02 .img .chara {
        width: 160px;
        height: 257px;
    }

    .chara-intro02 .img .chara img {
        width: 100%;
        height: auto;
    }

    .chara-intro02 .img .chara img.show {
        animation: charaIllstShow 300ms ease-out 0ms 1 normal both;
    }

    .chara-intro02 .text .name {
        width: 80px;
        height: auto;
        transform: translate(73px, -74px);
    }

    .chara-intro02 .text .name img {
        width: 100%;
        height: auto;
    }

    .chara-intro02 .text {
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-end;
        align-items: flex-start;
        width: 370px;
        height: 230px;
        background: url(../image/base_chara_text02.png) center top no-repeat;
        background-size: 100% 100%;
        transform: translate(-33px, 41px);
        opacity: 0;
    }

    .chara-intro02 .img {
        position: relative;
        z-index: 1;
        transform: translate(221px, -228px);
        opacity: 0;
        pointer-events: none;
    }

    .chara-intro02 .img .chara img[data-chara-illust02="illust11"] {
        position: relative;
        right: -16px;
    }

    .chara-intro02 .img.showElem {
        transform: translate(191px, -228px);
        transition: all 300ms ease-out;
        opacity: 1;
    }

    .chara-intro02 .text.showElem {
        transform: translate(3px, 41px);
        transition: all 300ms ease-out 150ms;
        opacity: 1;
    }

    .chara-intro02 .text .intro {
        font-size: 1.8rem;
        line-height: 1.5;
        transform: translate(83px, -59px);
    }

    .chara-intro02 .text .thumbs {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        gap: 0 10px;
        transform: translate(30px, -62px);
    }

    .chara-intro02 .text .thumbs img {
        width: 50px;
        height: 50px;
        cursor: pointer;
        transition: all 150ms ease-out;
    }

    .chara-intro02 .text .thumbs img:hover {
        filter: brightness(1.1);
    }

    .howto-gamedrive {
        padding: 0 0 40px;
        background: #999999;
        color: #ffffff;
    }

    .howto-gamedrive::before {
        display: block;
        height: 20px;
        margin: 0 0 40px;
        background: #FFCA00;
        content: "";
    }

    .howto-gamedrive .title {
        margin: 0 0 32px;
        font-size: 3rem;
        text-align: center;
    }

    .howto-gamedrive .text01 {
        margin: 0 0 32px;
        font-size: 2.4rem;
        text-align: center;
    }

    .howto-gamedrive .text02 {
        width: 700px;
        margin: 0 auto;
        font-size: 1.8rem;
        line-height: 1.5;
        text-align: left;
    }

    .banner-wrap {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 68px;
        padding: 40px 0;
        background: #EEEEEE;
    }

    .banner-wrap img {
        transition: transform 150ms ease-out;
    }

    .banner-wrap img:hover {
        transform: scale(110%);
    }

    .msg-canNotPlay {
        width: 375px;
        height: 74px;
        margin: -156px auto 16px;
        padding: 10px 0;
        line-height: 1.5;
        font-size: 1.6rem;
        color: #ffffff;
        background: linear-gradient(to bottom, #FFE5B4, #CB0000);
        border-top: 3px solid #ffffff;
        border-bottom: 3px solid #ffffff;
        text-align: center;
    }

    .fv .msg-canNotPlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: -410px;
        z-index: 15;
        margin: auto;
    }

    .banner03-wrap {
        display: block;
        width: 350px;
        margin: 0 auto 64px;
    }

    .banner03-wrap img {
        width: 350px;
        transition: transform 200ms ease-out;
    }

    .banner03-wrap img:hover {
        transform: scale(105%);
    }

    .banner03-wrap.waitingElem {
        transform: translateY(50px);
    }

    .banner03-wrap.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .notice-detail {
        position: relative;
        width: 350px;
        margin: 0 auto 72px;
        background: #6D87D1;
        border: 3px solid #4E72D6;
        border-radius: 8px;
    }

    .notice-detail .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: center;
        margin: 8px;
    }

    .notice-detail .label {
        width: 100px;
        height: 25px;
        margin: 0 8px 0 0;
        line-height: 17px;
        border: 3px solid #ffffff;
        border-radius: 13px;
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
        white-space: nowrap;
    }

    .notice-detail .label.red, .contents.cont05 .faq-list li .label.red {
        background: #D36D6D;
    }

    .notice-detail .label.yellow, .contents.cont05 .faq-list li .label.yellow {
        background: #F0CC69;
    }

    .notice-detail .label.green, .contents.cont05 .faq-list li .label.green {
        background: #54A28D;
    }

    .notice-detail .label.blue, .contents.cont05 .faq-list li .label.blue {
        background: #4D96FA;
    }

    .notice-detail .date {
        color: #ffffff;
        font-size: 1.5rem;
    }

    .notice-detail .heading {
        margin: 0 16px 12px;
        height: 64px;
        color: #ffffff;
        font-size: 1.5rem;
        line-height: 1.5;
        overflow: hidden;
    }

    .notice-detail .main-text {
        padding: 20px 28px;
        background: #ffffff;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
        color: #000000;
        font-size: 1.5rem;
        line-height: 1.5;
    }

    .btn-goto-noticeTop {
        display: block;
        width: 220px;
        height: 40px;
        margin: 0 auto 64px;
    }

    .btn-goto-noticeTop a {
        display: block;
        width: 220px;
        height: 40px;
        background: url(../image/btn_goto_noticeTop.png) center top no-repeat;
        background-size: 220px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-goto-noticeTop a:hover {
        transform: scale(105%);
    }

    .btn-goto-noticeTop.waitingElem {
        transform: translateY(50px);
    }

    .btn-goto-noticeTop.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .faq-menu {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        width: 340px;
        height: 50px;
        margin: 40px auto;
        padding: 0 0 4px;
        background: rgba(204, 151, 230, 1);
        border: 3px solid #ffffff;
        border-radius: 30px;
        color: #ffffff;
        font-size: 1.5rem;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .faq-menu p {
        position: relative;
        cursor: pointer;
    }

    .faq-menu p:not( :last-child )::after {
        display: inline-block;
        margin: 0 8px;
        content: "｜";
        cursor: default;
    }

    .special.subpage .faq-menu {
        width: 370px;
        background: #10D0B2;
        font-size: 1.4rem;
        white-space: nowrap;
    }

    .special.subpage .faq-menu p:not( :last-child )::after {
        margin: 0 2px;
    }

    .faq-list-with-subList li .btn-faq-open {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 60px;
        height: 60px;
        background: url(../image/btn_faq_open.png) center top no-repeat;
        background-size: 60px 60px;
        cursor: pointer;
        transition: transform 150ms ease-out;
    }

    .support-help-wrap .text, .support-contact-wrap .text {
        width: 340px;
        margin: 0 auto 56px;
        font-size: 1.6rem;
        line-height: 1.5;
    }

    .btn-goto-help,
    .btn-goto-contact,
    .btn-more,
    .btn-goto-specialTop {
        display: block;
        width: 220px;
        height: 40px;
        margin: 0 auto;
    }

    .btn-goto-help a {
        display: block;
        width: 220px;
        height: 40px;
        background: url(../image/btn_goto_help.png) center top no-repeat;
        background-size: 220px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-goto-contact a {
        display: block;
        width: 220px;
        height: 40px;
        background: url(../image/btn_goto_contact.png) center top no-repeat;
        background-size: 220px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-more a {
        display: block;
        width: 220px;
        height: 40px;
        background: url(../image/btn_more.png) center top no-repeat;
        background-size: 220px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-goto-specialTop a {
        display: block;
        width: 220px;
        height: 40px;
        background: url(../image/btn_goto_specialTop.png) center top no-repeat;
        background-size: 220px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .faq-list-with-subList li .btn-faq-open {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 40px;
        height: 40px;
        background: url(../image/btn_faq_open.png) center top no-repeat;
        background-size: 40px 40px;
        cursor: pointer;
        transition: transform 150ms ease-out;
    }

    .faq-list-with-subList li .btn-faq-close {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 40px;
        height: 40px;
        background: url(../image/btn_faq_close.png) center top no-repeat;
        background-size: 40px 40px;
        cursor: pointer;
        transition: transform 150ms ease-out;
    }

    .faq-list-with-subList li .btn-faq-detail {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 40px;
        height: 40px;
        background: url(../image/btn_faq_detail.png) center top no-repeat;
        background-size: 40px 40px;
        transition: transform 150ms ease-out;
    }

    .faq-list-with-subList {
        width: 350px;
        margin: 0 auto 72px;
    }

    .faq-list-with-subList li {
        position: relative;
        width: 350px;
        margin: 0 0 8px;
        padding: 6px 0 0;
        background: #FFFFFF;
        border: 3px solid #CC97E6;
        border-radius: 8px;
        cursor: pointer;
    }

    .faq-list-with-subList li > a {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
    }

    .faq-list-with-subList li > .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 0 16px;
        padding: 0 8px;
    }

    .faq-list-with-subList li .group02 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: center;
        margin: 0 0 8px;
    }

    .faq-list-with-subList li .label {
        width: 100px;
        height: 25px;
        margin: 0 8px 0 0;
        line-height: 17px;
        border: 3px solid #ffffff;
        border-radius: 13px;
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
        white-space: nowrap;
    }

    .faq-list-with-subList li .label.red, .contents.cont05 .faq-list li .label.red {
        background: #D36D6D;
    }

    .faq-list-with-subList li .label.yellow, .contents.cont05 .faq-list li .label.yellow {
        background: #F0CC69;
    }

    .faq-list-with-subList li .label.green, .contents.cont05 .faq-list li .label.green {
        background: #54A28D;
    }

    .faq-list-with-subList li .label.blue, .contents.cont05 .faq-list li .label.blue {
        background: #4D96FA;
    }

    .faq-list-with-subList li .heading {
        margin: 0 0 12px;
        height: 64px;
        color: #333333;
        font-size: 1.5rem;
        line-height: 1.5;
        overflow: hidden;
    }

    .faq-list-subList {
        position: relative;
        padding: 12px 8px 12px 28px;
        background: #ffffff;
        font-size: 1.5rem;
        line-height: 1.5;
    }

    .faq-list-subList .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 0 16px;
    }

    .faq-list-subList a {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
    }

    .faq-list-subList:last-child {
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
    }

    .support-detail {
        position: relative;
        width: 350px;
        margin: 0 auto 72px;
        background: #F1EDF5;
        border: 3px solid #CC97E6;
        border-radius: 8px;
    }

    .support-detail .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: center;
        margin: 8px;
    }

    .support-detail .label {
        width: 130px;
        height: 25px;
        margin: 0 8px 0 0;
        line-height: 17px;
        border: 3px solid #ffffff;
        border-radius: 13px;
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
        white-space: nowrap;
    }

    .support-detail .label.red, .contents.cont05 .faq-list li .label.red {
        background: #D36D6D;
    }

    .support-detail .label.yellow, .contents.cont05 .faq-list li .label.yellow {
        background: #F0CC69;
    }

    .support-detail .label.green, .contents.cont05 .faq-list li .label.green {
        background: #54A28D;
    }

    .support-detail .label.blue, .contents.cont05 .faq-list li .label.blue {
        background: #4D96FA;
    }

    .support-detail .date {
        color: #ffffff;
        font-size: 1.5rem;
    }

    .support-detail .heading {
        margin: 0 16px 12px;
        height: 64px;
        color: #333333;
        font-size: 1.5rem;
        line-height: 1.5;
        overflow: hidden;
    }

    .support-detail.help .heading {
        margin: 20px 16px 0;
        font-size: 1.8rem;
        font-weight: bold;
        display: flex;
        align-items: center;
        height: auto;
    }

    .support-detail .main-text {
        padding: 20px 28px;
        background: #ffffff;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
        color: #000000;
        font-size: 1.5rem;
        line-height: 1.5;
    }

    .btn-goto-supportTop {
        display: block;
        width: 220px;
        height: 40px;
        margin: 0 auto 64px;
    }

    .btn-goto-supportTop a {
        display: block;
        width: 220px;
        height: 40px;
        background: url(../image/btn_goto_supportTop.png) center top no-repeat;
        background-size: 220px 40px;
        cursor: pointer;
        transition: transform 200ms ease-out;
    }

    .btn-goto-supportTop a:hover {
        transform: scale(105%);
    }

    .btn-goto-supportTop.waitingElem {
        transform: translateY(50px);
    }

    .btn-goto-supportTop.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .howtoplay-detail-wrap .inner {
        width: 360px;
        margin: 0 auto;
    }

    .howtoplay-detail-wrap .screenshot-image {
        height: 200px;
    }

    .howtoplay-detail-wrap .scroll-wrap {
        border-top: 5px solid #f3a865;
        border-bottom: 5px solid #f3a865;
    }

    .howtoplay-detail-wrap .img02 {
        position: relative;
        z-index: 3;
    }

    .howtoplay-detail-wrap .img03 {
        position: relative;
        z-index: 2;
        margin-top: -20px;
    }

    .howtoplay-detail-wrap .img04 {
        margin-top: -18px;
    }

    .howtoplay-detail-wrap .img05 {
        position: relative;
        z-index: 1;
    }

    .howtoplay-detail-wrap .img06 {
        margin-top: -20px;
    }

    .support-detail.help .heading::after {
        display: block;
        position: absolute;
        bottom: -6px;
        left: 0;
        width: 100%;
        height: 3px;
        background: #CC97E6;
        border-radius: 3px;
        content: "";
    }

    .support-detail.help .main-text {
        padding: 24px 18px;
    }

    .support-detail.help .main-text .sp-help-heading {
        font-size: 1.7rem !important;
    }

    .support.help.subpage .catchcopy {
        margin: 40px 0 32px !important;
    }

    .support.help.subpage .support-detail.help {
        margin-top: 0 !important;
    }

    .cube-wrap {
        gap: 4px;
    }

    .cube-wrap .cube {
        width: 10px;
        height: 10px;
        border-radius: 2px;
    }

    .plain-text {
        font-size: 1.5rem;
        font-weight: bold;
        color: #BC0102;
        line-height: 1.5;
        text-align: center;
    }

    .plain-text.plain-text01 {
        position: absolute;
        bottom: 12px;
        left: 0;
        right: 0;
        z-index: 11;
        margin: auto;
    }

    .plain-text.plain-text02 {
        color: #007462;
        margin: 0 0 32px;
        padding: 0 16px;
        text-align: left;
    }

    .plain-text.plain-text03 {
        color: #a55500;
        margin: 0 0 32px;
    }

    .plain-text.plain-text04 {
        margin: 0 0 52px;
    }

    .subpage .contents.cont06 .msg-canNotPlay {
        margin-bottom: 50px;
    }

    .sponsor.subpage .header .title-wrap {
        padding: 24px 0 32px;
        background: url(../image/base_sponsor_title.png) center center no-repeat rgba(202, 213, 224, 0.6);
        background-size: auto 40%;
    }

    .contents.cont07 {
        width: 100%;
        background: url(../image/bg09.jpg) center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding: 1px 0;
    }

    .cont07-wrap {
        width: 375px;
        margin: 0 auto;
    }

    .cont07-title {
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        gap: 0 3px;
        margin: 50px 0;
        font-family: "Mochiy Pop One", sans-serif;
        font-weight: 400;
        font-style: normal;
    }

    .cont07-title .square-grayL {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        padding: 0 0 3px;
        background: #91949b;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2.5rem;
    }

    .cont07-title .square-white {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #ffffff;
        border: 1px solid #91949b;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #333333;
        font-size: 2rem;
    }

    .cont07-title .square-gray {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 24px;
        height: 24px;
        padding: 0 0 3px;
        background: #91949b;
        border: 1px solid #91949b;
        border-radius: 5px;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        color: #ffffff;
        font-size: 2rem;
    }

    .cont07-title .deco {
        position: relative;
        width: 30px;
        height: 22px;
        background: #91949b;
        border: 1px solid #91949b;
        border-radius: 5px;
        border-bottom-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
        transform: translateY(13px);
    }

    .cont07-title .deco span {
        position: absolute;
        right: -1px;
        bottom: -11px;
        width: 20px;
        height: 10px;
        background: #91949b;
        border: 1px solid #91949b;
        border-radius: 5px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        box-shadow: 5px 5px 1px rgba(0, 0, 0, 0.3);
    }

    .contents.cont07 .catchcopy {
        margin: 50px 0 20px;
    }

    .page-description {
        padding: 0 20px;
        font-size: 1.6rem;
        line-height: 1.5;
    }

    .sponsor-list {
        width: 375px;
        margin-top: 40px !important;
    }

    .sponsor-list li {
        position: relative;
        width: 94%;
        margin: auto;
        background: #ffffff;
        border: 5px solid #91949b;
        color: #333333;
        font-size: 1.6rem;
        line-height: 1.5;
    }

    .sponsor-list li:not(:last-child) {
        margin-bottom: 8px;
    }

    .sponsor-list li .group02 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: flex-start;
        position: relative;
        padding: 10px;
        background: #bdc3d0;
        color: #fff;
        line-height: 1.5;
    }

    .sponsor-list li .group02 .icon {
        width: 16px;
        height: 16px;
        margin-right: 10px;
    }

    .sponsor-list li .group02 .icon img {
        width: 16px;
        height: 16px;
    }

    .sponsor-list li .group02 .heading {
        flex: 1 1;
        font-weight: bold;
        padding: 0 57px 0 0;
    }

    .sponsor-list li .group02 .btn-sponsor-detail {
        display: block;
        width: 40px;
        height: 40px;
        margin: auto;
        background: url(../image/arrow_sponsor.png) no-repeat center top;
        background-size: 40px 40px;
        transition: transform 150ms ease-out;
        right: 12px;
    }

    .sponsor-list li:hover .group02 .btn-sponsor-detail {
        transform: scale(1.2);
    }

    .sponsor-list li .detail {
        padding: 10px 20px 10px 40px;
    }

    .sponsor-list li a {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
    }

    .campaign-list {
        width: 360px;
        margin: 0 auto 72px;
    }

    .campaign-list.waitingElem {
        transform: translateY(50px);
    }

    .campaign-list.showElem {
        transform: translateY(0px);
        transition: all 300ms ease-out;
    }

    .campaign-list li {
        position: relative;
        width: 360px;
        margin: 0 0 8px;
        padding: 6px 8px;
        background: #edf5f0;
        border: 3px solid #0eb26d;
        border-radius: 8px;
        font-size: 1.5rem;
    }

    .campaign-list li > a {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
    }

    .campaign-list li .group01 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: space-between;
        align-items: center;
        gap: 0 16px;
    }

    .campaign-list li .group02 {
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        align-items: center;
        margin: 0 0 8px;
    }

    .campaign-list li .label {
        width: 130px;
        height: 25px;
        margin: 0 8px 0 0;
        line-height: 17px;
        border: 3px solid #ffffff;
        border-radius: 13px;
        color: #ffffff;
        font-size: 1.4rem;
        text-align: center;
        white-space: nowrap;
    }

    .campaign-list li .heading {
        height: 54px;
        color: #333333;
        font-size: 1.8rem;
        line-height: 1.5;
        overflow: hidden;
    }

    .campaign-list li .date {
        margin: 0 0 12px;
    }

    .campaign-list li .text {
        margin: 0 0 16px;
        line-height: 1.5;
    }

    .campaign-list li .banner {
        text-align: center;
    }

    .campaign-list li .btn-arrow {
        display: block;
        flex-shrink: 0;
        position: relative;
        z-index: 0;
        width: 40px;
        height: 40px;
        background: url(../image/arrow_campaign.png) center top no-repeat;
        background-size: 40px 40px;
        transition: transform 150ms ease-out;
    }

}

/* スマホ・タブレット用CSS end */

