/*
 * テキスト関連
 */
.text_main {
    text-align: left;
    font: normal normal normal 17px/28px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
    text-shadow: 0px 0px 10px #fff500;
    opacity: 1;
}
.text_main_lg {
    text-align: center;
    font: normal normal normal 60px/102px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
    text-shadow: 0px 0px 15px #f5ff00;
    opacity: 1;
}
.text_white {
    text-align: center;
    font: normal normal normal 20px/28px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
}
.text_warning {
    text-align: center;
    font: normal normal normal 18px/28px Hiragino Sans;
    letter-spacing: 0px;
    color: #fff500;
}
.font_Gothic {
    font-weight: bold;
    font-family: Hiragino Sans;
}
.text_sm {
    font-size: 0.75rem;
}

/*
 * ボタン関連
 */
button.button_main {
    /* Layout */
    width: 257px;
    height: 70px;

    /* UI */
    text-align: center;
    background: transparent linear-gradient(180deg, #ffce00 0%, #ff2424 100%) 0%
        0% no-repeat padding-box;
    border-radius: 17px;
    border: none;
    padding: 1rem;
}
button.button_arrive {
    /* Layout */
    width: 257px;
    height: 70px;

    /* UI */
    text-align: center;
    background: transparent linear-gradient(180deg, #00fff5 0%, #2446ff 100%) 0%
        0% no-repeat padding-box;
    border-radius: 17px;
    border: none;
    padding: 1rem;
}
button.button_boot {
    /* Layout */
    width: 257px;
    height: 70px;

    /* UI */
    text-align: center;
    background: transparent linear-gradient(180deg, #f9ff6a 0%, #ffba00 100%) 0%
        0% no-repeat padding-box;
    border-radius: 17px;
    border: none;
    padding: 1rem;
}
button.button_future {
    /* Layout */
    width: 257px;
    height: 70px;

    /* UI */
    text-align: center;
    background: transparent linear-gradient(180deg, #ffb100 0%, #ff0093 100%) 0%
        0% no-repeat padding-box;
    box-shadow: 0px 0px 20px #ffffff;
    border-radius: 17px;
    border: none;
    padding: 1rem;
    margin: 2rem 0;
}
button.button_past {
    /* Layout */
    width: 257px;
    height: 70px;

    /* UI */
    text-align: center;
    background: transparent linear-gradient(180deg, #35ac00 0%, #0e007b 100%) 0%
        0% no-repeat padding-box;
    box-shadow: 0px 0px 20px #ffffff;
    border-radius: 17px;
    border: none;
    padding: 1rem;
}
button span {
    font: normal normal normal 20px/34px Hiragino Sans;
    color: #ffffff;
    opacity: 1;
    margin: 2rem 0;
}

/*
 * ステップ
 */
.step {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    padding: 2rem 0;
    display: none;
    opacity: 0;
    transition: opacity 0.75s linear;
}
.step.visible {
    opacity: 1;
}

/*
 * ストーリーセクション
 */
.story {
    padding: 0 1rem;
}
.story * {
    user-select: none;
}
.story_img {
    vertical-align: middle;
    width: 100%;
}
.story_middle {
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-image: url("/images/story_middle.png");
    padding: 1rem 2rem;
}

/*
 * 指示テキストセクション
 */
.info {
    /* UI */
    background: transparent
        linear-gradient(
            270deg,
            rgba(168, 0, 0, 0.8) 0%,
            rgba(255, 0, 0, 0.8) 51%,
            rgba(168, 0, 0, 0.8) 100%
        )
        0% 0% no-repeat padding-box;
    opacity: 1;
    padding: 2rem 1rem;

    /* Text */
    text-align: center;
    font: normal normal normal 18px/28px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
}
.info_with_image {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
    gap: 10px;
}
.info_with_image img {
    width: 50px;
}

/*
 * フォームセクション
 */
.form {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap);
}

/*
 * インプットエリア
 */
.input {
    /* Layout */
    width: 326px;
    height: 63px;

    /* UI */
    background: #ffffff 0% 0% no-repeat padding-box;
    opacity: 1;
    border: none;

    /* Text */
    text-align: center;
    font: normal normal normal 20px/34px Hiragino Sans;
    letter-spacing: 0px;
    color: #ff0000;
    opacity: 1;
}
.text_incorrect {
    text-align: center;
    font: normal normal normal 20px/28px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
    font-weight: bold;
    letter-spacing: 3px;
    padding: 1rem;
    background-color: #000a;
    visibility: hidden;
}

/*
 * ラストステップ
 */
.last_step {
    position: relative;

    display: flex;
    flex-direction: column;
    gap: var(--gap);
    padding: 2rem 0;
    background-position-y: 100px;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-image: url("/images/background_last.png");
}
.last_step * {
    position: relative;
}
.last_step_top_bg {
    /* Layout */
    position: absolute;
    left: 0;
    width: 100%;
    height: 386px;

    /* UI */
    background: transparent
        linear-gradient(
            180deg,
            #00000000 0%,
            #000000d7 20%,
            #000000f3 81%,
            #00000000 100%
        )
        0% 0% no-repeat padding-box;
    opacity: 1;
}

/*
 * ナレーション
 */
.narration {
    /* UI */
    text-align: left;
    font: normal normal normal 17px/28px Hiragino Mincho Std;
    letter-spacing: 0px;
    color: #ffffff;
    text-shadow: 0px 0px 10px #000000;
    opacity: 1;
    padding: 5rem 2rem;

    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN",
        "Yu Mincho", "MS PMincho", serif;
}

/*
 * クリアセクション
 */
.clear {
    width: 100%;
    height: 100%;
    overflow-y: scroll;
    padding: 0;
    gap: 0;

    background-size: cover;
    background-attachment: fixed;
    background-position: top center;
    background-repeat: no-repeat;
}

div.clear_background:before,
div.B_step8_bg:before {
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    z-index: -1;
}
.clear_future_A_bg,
.clear_future_A_bg::before {
    background-image: url("/images/background_clear_future.png");
}
.clear_past_A_bg,
.clear_past_A_bg::before {
    background-image: url("/images/background_clear_past.png");
}
.clear_future_B_bg,
.clear_future_B_bg::before {
    background-image: url("/images/background_clear_past.png");
}
.clear_past_B_bg,
.clear_past_B_bg::before {
    background-image: url("/images/background_clear_B_past.png");
}
div.B_step8_bg:before {
    background-size: cover;
    background-image: url("/images/background_last.png");
}

.clear_head {
    /* Layout */
    height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;

    /* UI */
    box-shadow: 0px 0px 20px #ffffff;
    opacity: 1;

    /* Text */
    text-align: center;
    font: normal normal normal 39px/28px Hiragino Mincho Std;
    letter-spacing: 0px;
    color: #ffffff;
    text-shadow: 0px 0px 10px #fff500;
    opacity: 1;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN",
        "Yu Mincho", "MS PMincho", serif;
    vertical-align: middle;
}
.clear_head .text_sm {
    font: normal normal normal 23px/30px Hiragino Mincho Std;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN",
        "Yu Mincho", "MS PMincho", serif;
}
.clear_future {
    background: transparent
        linear-gradient(270deg, #ffb300de 0%, #ff0093de 100%) 0% 0% no-repeat
        padding-box;
}
.clear_past {
    background: transparent
        linear-gradient(270deg, #35ac00de 0%, #0e007bde 100%) 0% 0% no-repeat
        padding-box;
}

.fin_image {
    padding: 4rem 0;
}
.clear_narration {
    /* Layout */
    padding: 4rem 2rem;

    /* UI */
    background: #00000099 0% 0% no-repeat padding-box;
    opacity: 1;
    line-height: 2rem;

    /* Text */
    text-align: left;
    letter-spacing: 0px;
    color: #ffffff;
    opacity: 1;
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN",
        "Yu Mincho", "MS PMincho", serif;
}
.game_clear_x {
    padding: 2rem;
    background: #000000cc 0% 0% no-repeat padding-box;
    opacity: 1;
}
.game_clear_x img {
    cursor: pointer;
}
.game_clear_x img:hover {
    position: relative;
    opacity: 0.8;
    top: 1px;
}
.game_clear_x img:active {
    position: relative;
    opacity: 0.3;
    top: 2px;
}

.credit {
    background: #000000 0% 0% no-repeat padding-box;
    opacity: 1;

    /* Layout */
    padding: 3rem 1rem;

    /* UI */
    text-align: center;
    font: normal normal normal 13px/19px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
    opacity: 1;
}

.for_game_clear_player {
    width: 315px;
    height: 950.71px;
    margin: 0 auto;
    margin-top: 2rem;
    padding: 0 2.25rem;
    box-sizing: border-box;

    background-image: url("/images/for_game_clear_player_bg.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;

    text-align: center;
    font: normal normal normal 14px/30px Hiragino Sans;
    letter-spacing: 0px;
    color: #000000;
    opacity: 1;
    font-weight: bold;
}
.for_game_clear_player img {
    width: 230px;
    display: block;
    margin: 1rem auto;
}
.for_game_clear_player_title {
    position: relative;
    top: 8px;
    text-align: center;
    font: normal normal normal 15px/28px Hiragino Sans;
    letter-spacing: 0px;
    color: #ffffff;
    opacity: 1;
}

/*
 * 権限許可
 */
.allow_imgs {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}
.allow_imgs img {
    width: 150px;
}
