@charset "utf-8";/* CSS Document */html {    scroll-behavior: smooth;}body {    background-color: #000;    width: 100%;}* a {     text-decoration: none;}* img {     width: 100%;    height: auto;}* ul {    padding-left: 0;}/*　▼オープニングアニメーション設定▼　*/#loading-screen {    position: fixed;    top: 0;    left: 0;    width: 100%;    height: 100%;    background: linear-gradient(to bottom right, #000000, #1a1a1a, #333333);    display: flex;    justify-content: center;    align-items: center;    z-index: 9999;    opacity: 1;    visibility: visible;    transition: opacity 0.8s ease-out, visibility 0.8s ease-out;}#loading-screen.hidden {    opacity: 0;    visibility: hidden;    pointer-events: none;}#all-wrap {    opacity: 0;    visibility: hidden;    transition: opacity 1s ease-in, visibility 1s ease-in;}#all-wrap.visible {    opacity: 1;    visibility: visible;}/* グリッチコンテナ - ロゴの実際のサイズに合わせて調整してください */.glitch-container {    position: relative;    width: 360px; /* ロゴの幅に合わせて調整 */    height: 245px; /* ロゴの高さに合わせて調整 */    overflow: hidden; /* グリッチで飛び出す部分を隠す */}/* 基本のロゴスタイル */.glitch-logo {    position: absolute;    width: 100%;    height: 100%;    top: 0;    left: 0;    opacity: 1;    /* transition: none !important; /* グリッチアニメーション中はtransitionを無効化 */}/* グリッチ効果のためのクローンロゴ */.glitch-logo.clone {    /* デフォルトのクローンは非表示 */    opacity: 0;}/* クローンロゴ1 (赤チャネル風) */.glitch-logo.clone:nth-child(2) {    animation:         glitch-translate 1s infinite alternate-reverse, /* 位置と透明度のグリッチ */        glitch-scale 0.5s infinite alternate; /* 短いスケールの揺らぎ */    filter: hue-rotate(0deg) contrast(1.8) brightness(1.5); /* 赤みがかった強調 */    transform: translate(0, 0); /* 初期位置のリセット */    opacity: 0; /* 初期は非表示 */}/* クローンロゴ2 (青チャネル風) */.glitch-logo.clone:nth-child(3) {    animation:         glitch-translate 1s infinite alternate-reverse, /* 位置と透明度のグリッチ */        glitch-scale 0.5s infinite alternate; /* 短いスケールの揺らぎ */    filter: hue-rotate(240deg) contrast(1.8) brightness(1.5); /* 青みがかった強調 */    transform: translate(0, 0); /* 初期位置のリセット */    opacity: 0; /* 初期は非表示 */}/* グリッチアニメーションのキーフレーム *//* 位置と透明度をランダムに変化させるメインのグリッチ */@keyframes glitch-translate {    0% { transform: translate(0, 0); opacity: 0; }    2% { transform: translate(-2px, 2px); opacity: 0.8; }    4% { transform: translate(4px, -4px); opacity: 0.2; }    6% { transform: translate(-3px, 3px); opacity: 0.9; }    8% { transform: translate(5px, -5px); opacity: 0.4; }    10% { transform: translate(-1px, 1px); opacity: 0.7; }    12% { transform: translate(2px, -2px); opacity: 0.3; }    14% { transform: translate(-4px, 4px); opacity: 0.6; }    16% { transform: translate(3px, -3px); opacity: 0.1; }    18% { transform: translate(-5px, 5px); opacity: 0.8; }    20% { transform: translate(0, 0); opacity: 0.2; } /* 短い間隔で大きく変化 */    /* 以降、必要に応じてさらに多くのステップを追加して、不規則性を増す */    25% { transform: translate(2px, -1px); opacity: 0.5; }    30% { transform: translate(-1px, 3px); opacity: 0.8; }    35% { transform: translate(3px, -2px); opacity: 0.3; }    40% { transform: translate(-2px, 4px); opacity: 0.7; }    45% { transform: translate(1px, -3px); opacity: 0.2; }    50% { transform: translate(-4px, 1px); opacity: 0.9; }    55% { transform: translate(3px, -4px); opacity: 0.4; }    60% { transform: translate(-1px, 2px); opacity: 0.6; }    65% { transform: translate(2px, -3px); opacity: 0.1; }    70% { transform: translate(-3px, 1px); opacity: 0.8; }    75% { transform: translate(1px, -2px); opacity: 0.3; }    80% { transform: translate(-2px, 3px); opacity: 0.7; }    85% { transform: translate(3px, -1px); opacity: 0.2; }    90% { transform: translate(-1px, 4px); opacity: 0.9; }    95% { transform: translate(2px, -4px); opacity: 0.5; }    100% { transform: translate(0, 0); opacity: 0; }}/* 短いズームやシャープネスの変化 */@keyframes glitch-scale {    0%, 100% { transform: scale(1); filter: brightness(1); }    50% { transform: scale(1.02); filter: brightness(1.2) contrast(1.5); }}/* 各グリッチクローンに異なる開始遅延と持続時間を設定して、ランダム感を出す */.glitch-logo.clone:nth-child(2) {    animation-delay: 0s, 0.1s; /* glitch-translate, glitch-scale */    animation-duration: 1.5s, 0.4s;}.glitch-logo.clone:nth-child(3) {    animation-delay: 0.05s, 0.2s; /* glitch-translate, glitch-scale */    animation-duration: 1.6s, 0.5s;}/* アニメーション中は基本ロゴを透明にするか、わずかに残すか調整 */.glitch-logo:not(.clone) {    animation: glitch-base-fade 1.5s infinite alternate-reverse; /* 基本ロゴの透明度を揺らす */}@keyframes glitch-base-fade {    0%, 100% { opacity: 1; }    50% { opacity: 0.8; }}/*　▲オープニングアニメーション設定▲　*/ #all-wrap {    width: 100%;    position: relative;}#main section {    min-height: 100vh;     background-size: cover;    background-position: center;     display: flex;    justify-content: center;    align-items: center;    flex-direction: column;    box-sizing: border-box;     padding: 80px 40px;    color: #fff;    text-align: center;    position: relative;    overflow: hidden; }section h1 {    display: block;    width: 100%;    color: #d4d9dc;    text-align: center;    font-size: 72px;    margin: 24px auto;    font-family: ff-scala-jewel-saphyr, sans-serif;    font-weight: 400;    font-style: normal;    letter-spacing: 0.3em;    text-shadow: 2px 2px 10px #1f0f01,    -2px 2px 10px #1f0f01,    2px -2px 10px #1f0f01,    -2px -2px 10px #1f0f01;}#main #mv {    background-image: url("../img/top-img.jpg");    height: 0;    padding-bottom: 138.75%;    background-size: cover;    background-position: center;    background-repeat: no-repeat;    position: relative;}#mv .logo-date {    width: 400px;    height: auto;    display: block;    position: absolute;    top: 50px;    left: 80px;    text-align: center;}.sale-date {    margin-top: 24px;}p.date {    font-size: 28px;    color: #000;    font-family: zen-antique, sans-serif;font-weight: 400;font-style: normal;    text-align: center;    line-height: 1em;    margin: 24px auto;}p.staff {    font-size: 18px;    line-height: 1.3em;    color: #000;    font-family: zen-antique, sans-serif;font-weight: 400;font-style: normal;}span.staff-small {    font-size: 16px;}/* フェードインアニメーションの初期状態 */.fade-in-target {    opacity: 0;    transform: translateY(50px); /* 下から50pxの位置に配置 */    transition: opacity 1s ease-out, transform 1s ease-out; /* アニメーションの時間を設定 */}/* フェードインアニメーションの最終状態 */.fade-in-target.is-visible {    opacity: 1;    transform: translateY(0);}#main #news {    background: linear-gradient(30deg,rgba(0, 0, 0, 1) 30%, rgba(84, 0, 0, 1) 100%);    background-size: 200% 200%; /* 要素よりも大きくする */    padding: 24px;    justify-content: flex-start;    min-height: 70vh;    /* アニメーションを適用 */    animation: gradientShift 10s ease infinite alternate;}@keyframes gradientShift {    0% {        background-position: 0% 50%; /* 開始位置 */    }    100% {        background-position: 100% 50%; /* 終了位置 */    }}/*  setting news-slick-slide */    .news-list-slider-container {        width: 90%;        margin: 0 auto;    }.news-list-slider li {    position: relative;    font-size: 0;}.news-list-slider li p {    position: absolute;    bottom: 0;    left: 0;    height: 36px;    background: #787878;    padding-left: 6px;    color: #fff;    width: 100%;                box-sizing: border-box;    margin: 0;    font-size: 14px;    font-weight: 100;    display: flex;    align-items: center;}.news-list-slider li img {    width: 100%;    display: block; }span.date {    font-weight: 700;}span.news-contents {    text-align: left;    line-height: 1em;    padding-left: 6px;}.news-list-slider-container li:nth-child(n+2) {    margin-left: 12px;}    /* Slickのデフォルト矢印スタイルをリセット */    .slick-prev,    .slick-next {        font-size: 0;        line-height: 0;        position: absolute;        top: 50%;        display: block;        width: auto;        height: auto;        padding: 0;        transform: translate(0, -50%);        cursor: pointer;        color: transparent;        border: none;        outline: none;        background: transparent;    }    .slick-prev:before,    .slick-next:before {        content: '' !important;    }    /* カスタムアロー画像用のスタイル */    .slick-prev img,    .slick-next img {        width: 40px;        height: auto;        display: block;    }    /* 必要に応じて矢印の位置を調整 */    .slick-prev {        left: -50px;    }    .slick-next {        right: -40px;    }#main #story {    background-image: url("../img/story-bg.jpg");    background-attachment: fixed;     z-index: 1;    padding: 40px 0 180px 0;}#story p {    max-width: 900px;    color: #fff;    text-shadow: 2px 2px 10px #000,        -2px 2px 10px #000,        2px -2px 10px #000,        -2px -2px 10px #000;    font-size: 18px;    line-height: 2.3em;    font-family: zen-antique, sans-serif;    font-weight: 400;    font-style: normal;    text-align: left;}#main #character {    background-image: url("../img/chr-bg.png");    background-size: contain;    background-position: center;    background-repeat: no-repeat;    z-index: 2;    height: 0;     padding-bottom: 86.875%;    margin-top: -200px;    margin-bottom: -200px;    position: relative;}.chr-wrap {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    display: flex;    flex-direction: column;    justify-content: center;    align-items: center;}#main #character h1 {    width: 100%;}.chr-g {    max-width: 1000px;    margin: 0 auto;    position: relative;    z-index: 1;    padding-top: 100px;}.chr-g::before {    content: "";    background-image: url("../img/chr-obj.png");    background-repeat: no-repeat;    background-position: center center;    background-size: contain;    position: absolute;    top: 0;    left: -250px;    width: 100%;    height: 100%;    z-index: -1;}.chr-tmb-wrap {    display: flex;    flex-wrap: wrap;    justify-content: center;    align-items: center;    gap: 12px 0;    width: 40%;    position: absolute;    top: 15%;    right: 1%;    z-index: 3;}.chr-tmb-wrap img {    width: 33%;}.character-details {    position: relative; /* 子要素のabsolute配置の基準にする */    min-height: 500px; /* ここを適切な高さに調整する */    /* 例: 表示される可能性のある最も背の高いキャラクターコンテンツの高さより少し大きく設定 */}.character-details img {    position: relative;    z-index: 2;    display: block;    width: 100%;    height: auto;}.chr-g button {    background: transparent;    border: 1px solid #fff;    color: #fff;    padding: 12px 60px;    text-align: center;    font-size: 24px;    position: absolute;    bottom: 60px;    right: 200px;    cursor: pointer;    z-index: 3;    font-family: zen-antique, sans-serif;    font-weight: 400;    font-style: normal;}/* マウスオーバー時のスタイルも同様に .chr-g button:hover に変更 */.chr-g button:hover {    animation: border-blur-animation 0.6s ease-in-out;}/* アニメーションのキーフレームは変更なし */@keyframes border-blur-animation {    0% {        border-color: transparent;        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);    }    50% {        border-color: transparent;        box-shadow: 0 0 10px 3px rgba(255, 255, 255, 0.7);    }    100% {        border-color: #fff;        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);    }}.character-content {    opacity: 0; /* 透明 */    visibility: hidden; /* マウスイベントなどを受け付けないようにする */    transition: opacity 0.8s ease-out, visibility 0.8s ease-out; /* アニメーションの時間とイージング */    position: absolute; /* 重ねて表示するために必要、または適切な配置方法を選択 */    width: 100%; /* 親要素の幅に合わせる */    top: 0; /* 親要素の同じ位置に配置 */    left: 0;}.character-content.active {    opacity: 1; /* 不透明 */    visibility: visible; /* 見える状態にする */    position: relative; /* 他の要素の配置に影響するように戻す、または適切な配置方法を選択 */}.chr-tmb {    cursor: pointer;    filter: brightness(0.5);    opacity: 1;}.chr-tmb.active {    filter: brightness(1);    opacity: 1;}.mfp-bg {    background: rgba(0, 0, 0, 0.8); /* 少し濃いめの黒 */}.mfp-iframe-scaler iframe {    background: transparent;}#main #gallery {    background: linear-gradient(30deg,rgba(0, 0, 0, 1) 30%, rgba(92, 92, 92, 1) 100%);    background-size: 200% 200%; /* 要素よりも大きくする */    z-index: 1;    margin-top: 80px;    animation: gradientShift 10s ease infinite alternate;}.gallery {    display: flex;    flex-wrap: wrap;    gap: 12px; /* サムネイル間の間隔 */    justify-content: center;     align-items: flex-start;    max-width: 1000px;  }  .gallery a {    flex: 0 0 auto;    width: 31%;    height: auto;    display: flex;     justify-content: center;    align-items: center;     overflow: hidden;  }  .gallery a img {    width: 100%;     height: 100%;    object-fit: cover;    display: block;  }#main #spec {    background-image: url("../img/spec-bg.jpg");    background-attachment: fixed;    z-index: 4;}canvas {            display: block;            position: absolute;            top: 0;            left: 0;            width: 100%;            height: 100%;            z-index: -1; /* 他のコンテンツの下に表示 */        }#spec .spec-inner {    max-width: 1200px;    margin: 0 auto;    display: flex;    flex-wrap: wrap;    justify-content: space-between;    align-items: center;    column-gap: 12px;}#spec .spec-list {    width: 49%;    display: flex;    flex-wrap: nowrap;    justify-content: flex-start;    align-items: center;    font-size: 14px;    text-align: left;    font-family: "zen-antique", sans-serif;    font-weight: 400;    font-style: normal;    margin-bottom: 1em;}#spec .s-title {    width: 25%;    color: goldenrod;}#spec .spec-item {    width: 74%;    color: azure;}footer {    background: #210000;    padding: 36px 0;    position: relative;    z-index: 1;}footer a {    width: 150px;    display: block;    margin: 0 auto;}footer a img {    width: 100%;    transition: all ease .3s;}footer a img:hover {    filter: hue-rotate(90deg);}/*   スクロールしたらページトップに戻る   */#page-top {    position: fixed;    right: 20px;    bottom: 20px;    z-index: 100;    opacity: 0;    visibility: hidden;    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;    cursor: pointer;}#page-top.is-active {    opacity: 1;    visibility: visible;}#page-top img {    width: 70%;    height: auto;}#page-top.is-fixed-above-footer {    position: absolute;}#special-bonus-banner {    position: fixed;    bottom: 2%;    left: 1%;    z-index: 99;    width: 20%;    height: auto;    opacity: 0;    visibility: hidden;    transform: translateX(-100%);    transition: opacity 0.5s ease-out, transform 0.5s ease-out, visibility 0.5s;}#special-bonus-banner.is-active {    opacity: 1;    visibility: visible;    transform: translateX(0);}#special-bonus-banner a {    display: block;    width: 100%;}#special-bonus-banner img {    width: 100%;    height: auto;    transition: transform 0.3s ease-in-out; }#special-bonus-banner a:hover img {    transform: scale(1.1);}/*--------------------        特典css---------------------*/#special-main  {    background: linear-gradient(45deg, rgba(6, 9, 27, 1) 0%, rgba(28, 42, 83, 1) 50%, rgba(26, 44, 120, 1) 100%);    background-size: 400% 400%;    animation: special-bg 3s ease infinite;    position: relative;    overflow: hidden;}#SparksCanvas {    display: block;    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    z-index: 0;    pointer-events: none;}@keyframes special-bg {  0% {    background-position: 0% 50%;  }  50% {    background-position: 100% 50%;  }  100% {    background-position: 0% 50%;  }}.special-wrap {    width: 100%;    position: relative;    z-index: 1;}.special-wrap h1 {    margin-bottom: 0;}.special-header {    width: 20%;    padding: 28px 0 0 36px;    position: relative;    z-index: 1;}.special-inner {    width: 80%;    margin: 0 auto;    position: relative;    z-index: 1;}.special-inner h2 {    font-size: 36px;    font-family: fot-chiaro-std, sans-serif;    font-weight: 700;    font-style: normal;    color: #000;    text-shadow: 1px 1px 10px #e71d10, -1px 1px 10px #e71d10, 1px -1px 10px #e71d10, -1px -1px 10px #e71d10;    text-align: center;}.special-inner ul li {    list-style: none;    opacity: 0;    transform: translateY(20px);    transition: opacity 0.6s ease-out, transform 0.6s ease-out;}.special-inner ul li.is-shown {    opacity: 1;    transform: translateY(0);}.special-inner ul {    display: flex;    flex-wrap: wrap;    margin: 48px auto;    padding: 0;    justify-content: space-between;    align-items: center;    row-gap: 24px;}.special-inner li {    width: 31%;}.special-inner li a {    display: block;    transition: all ease .3s;}.special-inner li img {    width: 100%;    margin-bottom: 12px;    transition: all ease .3s;}.special-inner li a:hover {    text-shadow: 1px 1px 10px #e71d10, -1px 1px 10px #e71d10, 1px -1px 10px #e71d10, -1px -1px 10px #e71d10;}.special-inner li img:hover {    transform: scale(0.95);}.special-inner li p.store {    font-family: zen-antique, sans-serif;    font-weight: 400;    font-style: normal;    font-size: 16px;    text-align: center;    color: aliceblue;}.special-inner li p.bonus-title {    font-family: zen-antique, sans-serif;    font-weight: 400;    font-style: normal;    font-size: 14px;    text-align: center;    color: aliceblue;}.special-inner ul.exclusive-bonus {    justify-content: center;    row-gap:48px;}.special-inner .exclusive-bonus li {    width: 80%;}.sp-note {    font-size: 14px;    color: yellow;    text-align: center;    font-family: "noto-sans-cjk-jp", sans-serif;    font-weight: 400;    font-style: normal;}ul.o-bonus {    margin-top: 24px;}/*///////////////////////*//*                       *//*    max-width:1024px   *//*                       *//*///////////////////////*/@media screen and (max-width: 1024px) {    #mv .logo-date {    width: 30%;    top: 1%;    left: 3%;}        .sale-date {    margin-top: 12px;}        section h1 {    font-size: 60px;    margin: 12px auto 24px auto;}        #main #news {    padding: 24px;    min-height: 24vh;}        #main #story {    padding: 0;    min-height: 50vh;}        #main #character {    margin-top: -150px;    margin-bottom: -260px;    min-height: 80vh;}        .chr-g {    padding-top: 0;    width: 85%;}        .chr-g::before {    left: -200px;    width: 90%;    height: 90%;}        .chr-tmb-wrap {    top: 3%;}    .chr-g button {    bottom: 47px;    right: 165px;}        #main #gallery {    min-height: 30vh;}        .gallery {    width: 90%;}        #main #spec {    min-height: 37vh;    padding: 24px 0;}        #spec .spec-inner {    width: 90%;}        #spec .spec-list {    margin-bottom: 0.5em;}    #special-bonus-banner {    bottom: 10%;    width: 30%;}}@media screen and (max-width: 769px) {    #mv .logo-date {    width: 35%;}        .sale-date {    margin-top: 6px;}        #main #news {    min-height: 47vh;}        section h1 {    font-size: 48px;    margin: 6px auto 12px auto;}        span.news-contents {    font-size: 12px;}        #main #story {    min-height: 100vh;    padding: 40px 0 180px 0;}        #story p {    font-size: 16px;    width: 90%;    margin: 0 auto;}        #main #character {    margin-top: -195px;    margin-bottom: -195px;}        .chr-g::before {    left: -150px;}        .character-details {    min-height: 410px;}        .chr-g button {    bottom: 29px;    padding: 6px 48px;    font-size: 20px;    right: 126px;}        #main #gallery {    min-height: 30vh;    padding: 80px 40px 46px;}        #main #spec {    min-height: 50vh;    padding: 24px 0 48px 0;}        .special-inner h2 {    font-size: 28px;}    .special-inner li {    width: 48%;}    #special-bonus-banner {    bottom: 5%;}}@media screen and (max-width: 430px) {    #main #mv {    padding-bottom: 0;    background-size: contain;    min-height: 64vh;}        p.staff {    font-size: 9px;    line-height: 1.2em;}        span.staff-small {    font-size: 10px;}        #main #news {    min-height: 46vh;}        section h1 {    font-size: 36px;}        .slick-prev {    left: -30px;}        .slick-prev img, .slick-next img {    width: 24px;}        .slick-next {    right: -18px;}        #page-top {    right: 0;}        #page-top img {    width: 60%;    height: auto;}        #main #story {    min-height: 100vh;    padding: 40px 0 150px 0;}        #story p {    font-size: 14px;}        #main #character {    background-size: cover;    margin-top: -115px;    margin-bottom: -45px;}        .chr-wrap {    top: 0%;    padding-top: 72px;}        .character-details {    min-height: 60vh;}        .chr-g::before {    left: -15px;    width: 50%;    height: 50%;    top: 23%;}     .chr-tmb-wrap {    flex-wrap: nowrap;    width: 100%;    top: 0%;    right: 0%;}           .chr-tmb-wrap img {    width: 20%;}        .character-content.active {    position: absolute;}        .character-content {    position: absolute;    width: 100%;    top: 23%;}        .chr-g button {    bottom: 50%;    padding: 6px 28px;    font-size: 16px;    right: 17%;}        .mfp-iframe-holder .mfp-content {    max-width: 400px;    min-height: 70vh;}        .gallery {    width: 100%;}        .gallery a {    width: 48%;}        #spec .spec-inner {    flex-direction: column;}        #spec .spec-list {    margin-bottom: 0.5em;    width: 100%;    align-items: flex-start;}        #spec .spec-list {    font-size: 14px;}     footer a {    width: 100px;}    .special-inner li {    width: 100%;}}@media screen and (max-width:376px) {    #main #mv {    min-height: 78vh;}        .special-inner li {    width: 100%;}}