@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:wght@500;700;900&family=Noto+Serif+JP:wght@400;500;700;900&display=swap");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.0.0/dist/css/yakuhanmp.css");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.0.0/dist/css/yakuhanjp.css");
/*/////////////////////////
 reset
//////////////////////////*/
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp.min.css");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp.min.css");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  border: 0; /*font-size: 100%;font: inherit;*/
  vertical-align: baseline;
  margin: 0;
  padding: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a, a:link, button {
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  outline: none !important;
  color: inherit;
}

a:hover, a:active {
  text-decoration: none;
}

b {
  font-weight: bold;
}

img,
svg {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

* {
  box-sizing: border-box;
  outline: 0;
}

img {
  image-rendering: -webkit-optimize-contrast;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

iframe {
  max-width: 100%;
  height: auto;
}

/* 
================================================================================
tag
================================================================================
*/
img {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  width: 100%;
  height: auto;
}

img,
input,
svg,
*:before,
*:after {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

a:hover img,
a:hover input {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
}

h1, h2, h3, h4, h5, h6 {
  text-align: left;
}

a, a:link, a:active, a:visited {
  color: inherit;
  text-decoration: none;
}

svg {
  width: 100%;
  height: auto;
}
svg g path {
  stroke: #404040;
  fill: #404040;
  stroke-width: 0.05;
  stroke-dashoffset: 0;
}

/* $break-point以下の時に@contentを適用 */
/* $break-point以上の時に@contentを適用 */
/* $break-point-min以上、$break-point-max以下の時に@contentを適用 */
@keyframes flash {
  0% {
    filter: brightness(1);
  }
  30% {
    filter: brightness(3);
  }
  100% {
    filter: brightness(1);
  }
}
@keyframes decoflash {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  20% {
    opacity: 1;
  }
  30% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  60% {
    opacity: 0;
  }
  70% {
    opacity: 0.5;
  }
  100% {
    opacity: 0.5;
  }
}
@keyframes snowAnimation {
  0% {
    transform: translateY(-100px);
  }
  100% {
    transform: translateY(30000px);
  }
}
@keyframes charaZoom {
  0% {
    opacity: 0;
    transform: scale(0.4);
  }
  20% {
    opacity: 2;
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes fall {
  0% {
    top: -50px;
  }
  100% {
    top: 100%;
  }
}
@keyframes onpuAnime {
  0% {
    transform: translate(0, 0%);
  }
  100% {
    transform: translate(0, -30%);
  }
}
@keyframes navPreorderArrowLoop {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  60% {
    -webkit-transform: translate3d(0, 0.4166666667rem, 0);
    transform: translate3d(0, 0.4166666667rem, 0);
  }
  70% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  80% {
    -webkit-transform: translate3d(0, 0.4166666667rem, 0);
    transform: translate3d(0, 0.4166666667rem, 0);
  }
  90% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes productPreorderArrowLoop {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  60% {
    -webkit-transform: translate3d(0.4166666667rem, 0, 0);
    transform: translate3d(0.4166666667rem, 0, 0);
  }
  70% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  80% {
    -webkit-transform: translate3d(0.4166666667rem, 0, 0);
    transform: translate3d(0.4166666667rem, 0, 0);
  }
  90% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes heroRoboIn {
  0% {
    opacity: 0;
    transform: translate3d(-50%, 20%, 0) scale3d(1, 1, 1);
    filter: brightness(8);
  }
  50% {
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale3d(1, 1, 1);
    filter: brightness(1);
  }
  100% {
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale3d(1, 1, 1);
    filter: brightness(1);
  }
}
@keyframes thunderTitleIn {
  0% {
    opacity: 0;
    transform: translate3d(-50%, -12.5rem, 0) scale(1, 0) rotate(0deg);
    filter: brightness(8);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -26.6666666667vw, 0) scale(1, 0) rotate(0deg);
    }
  }
  3% {
    opacity: 1;
    transform: translate3d(-40%, -9.375rem, 0) scale(1.8, 0.5) rotate(10deg);
    filter: brightness(1);
    @media screen and (max-width: 750px) {
      transform: translate3d(-40%, -20vw, 0) scale(1.8, 0.5) rotate(10deg);
    }
  }
  6% {
    opacity: 1;
    transform: translate3d(-60%, -15.625rem, 0) scale(0.8, 1.2) rotate(-10deg);
    filter: brightness(10);
    @media screen and (max-width: 750px) {
      transform: translate3d(-60%, -33.3333333333vw, 0) scale(0.8, 1.2) rotate(-10deg);
    }
  }
  9% {
    opacity: 1;
    transform: translate3d(-50%, -10.625rem, 0) scale(1.8, 0.2) rotate(10deg);
    filter: brightness(1);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -22.6666666667vw, 0) scale(1.8, 0.2) rotate(10deg);
    }
  }
  12% {
    opacity: 1;
    transform: translate3d(-40%, -14.375rem, 0) scale(0.2, 0.8) rotate(-10deg);
    filter: brightness(10);
    @media screen and (max-width: 750px) {
      transform: translate3d(-40%, -30.6666666667vw, 0) scale(0.2, 0.8) rotate(-10deg);
    }
  }
  100% {
    opacity: 1;
    transform: translate3d(-50%, -15.625rem, 0) scale(1, 1) rotate(0deg);
    filter: brightness(1);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -33.3333333333vw, 0) scale(1, 1) rotate(0deg);
    }
  }
}
@keyframes thunderTitleIn2 {
  0% {
    opacity: 0;
    transform: translate3d(-50%, -15.625rem, 0) scale3d(1.5, 0, 1) rotate(0deg);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -26.6666666667vw, 0) scale3d(1, 1, 1) rotate(0deg);
    }
  }
  70% {
    opacity: 1;
    transform: translate3d(-50%, -15.625rem, 0) scale3d(0.2, 0.1, 1) rotate(0deg);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -26.6666666667vw, 0) scale3d(1, 1, 1) rotate(0deg);
    }
  }
  100% {
    opacity: 1;
    transform: translate3d(-50%, -15.625rem, 0) scale3d(1, 1, 1) rotate(0deg);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -33.3333333333vw, 0) scale(1, 1) rotate(0deg);
    }
  }
}
/* 
================================================================================
sample
================================================================================
*/
div.sample {
  width: 200px;
  height: 200px;
}
body.sample div.sample {
  text-align: center;
}
div.sample:before {
  content: "";
  display: block;
  width: 300px;
  height: 150px;
  background: blue;
}
.sample-1 {
  width: 100px;
}

.sample-2 {
  width: 200px;
}

.sample-3 {
  width: 300px;
}

@keyframes anim {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
/* 
================================================================================
class
================================================================================
*/
@media screen and (min-width: 750px) {
  .onlyPC {
    display: inline-block;
  }
}
@media screen and (max-width: 750px) {
  .onlyPC {
    display: none;
  }
}

@media screen and (min-width: 750px) {
  .onlySP {
    display: none;
  }
}
@media screen and (max-width: 750px) {
  .onlySP {
    display: inline-block;
  }
}

/* 
================================================================================
body
================================================================================
*/
html {
  font-size: 16px;
}
html.scrollMode_onepage {
  overflow: hidden;
}
@media screen and (min-width: 750px) and (max-width: 960px) {
  html {
    font-size: 1.65vw;
  }
}
@media screen and (max-width: 750px) {
  html {
    font-size: 2.5vw;
  }
}

body {
  font-family: YakuHanJP, "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.84;
  letter-spacing: 0.05rem;
  background: #ccc;
}
body.scrollMode_onepage {
  -webkit-overflow-scrolling: touch;
}
body.modal-active {
  /* when modal active */
  touch-action: none;
  -webkit-overflow-scrolling: none;
  overflow: hidden;
  /* Other browsers */
  overscroll-behavior: none;
}

/* 
================================================================================
maintenance
================================================================================
*/
#maintenanceContents {
  display: flex;
  height: calc(var(--vh, 1vh) * 100);
  align-content: center;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
}
#maintenanceContents h3 {
  margin-bottom: 3.125rem;
  color: #999;
}
#maintenanceContents p {
  text-align: center;
  font-size: 0.625rem;
  line-height: 1.4;
}

/* 
================================================================================
debugWrap
================================================================================
*/
#debugWrap {
  position: fixed;
  width: auto;
  height: auto;
  min-width: 0.625rem;
  min-height: 0.625rem;
  bottom: 0.625rem;
  left: 0.625rem;
  z-index: 999999;
  color: #ddd500;
  font-size: 0.875rem;
  font-weight: bold;
  background: rgba(0, 0, 0, 0.9);
}
#debugWrap .contents {
  padding: 1rem;
}

/* 
================================================================================
container,base
================================================================================
*/
#container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  flex-wrap: wrap;
  overflow: hidden;
}

/* 
================================================================================
sample
================================================================================
*/
div.sample {
  width: 200px;
  height: 200px;
}
body.sample div.sample {
  text-align: center;
}
div.sample:before {
  content: "";
  display: block;
  width: 300px;
  height: 150px;
  background: blue;
}
.sample-1 {
  width: 100px;
}

.sample-2 {
  width: 200px;
}

.sample-3 {
  width: 300px;
}

@keyframes anim {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
@keyframes tenmetsu {
  0% {
    opacity: 0.1;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.1;
  }
}
#pcBook,
#spBook {
  display: none;
}

body.is-pc #pcBook {
  display: block;
}

body.is-sp #spBook {
  display: block;
}

#bookWrap #book {
  width: 1628px;
  height: 566px;
}
#bookWrap #book .turn-page {
  background-color: white;
}
#bookWrap #book .loader {
  visibility: hidden;
  width: 24px;
  height: 24px;
  display: block;
  position: absolute;
  top: 238px;
  left: 188px;
}
#bookWrap #book .turn-page-wrapper {
  max-height: 100%;
}
#bookWrap #book .turn-page-wrapper img {
  width: 100%;
  object-fit: cover;
}
#bookWrap .booknavi {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  margin-top: 3rem;
}
#bookWrap .booknavi li {
  display: flex;
  text-align: center;
  justify-content: center;
  align-items: center;
  margin: 0 1em;
}
#bookWrap .booknavi li span {
  position: relative;
  display: block;
  padding: 1.2em 4em;
  cursor: pointer;
  background-color: #f4e74a;
  color: #000;
  font-size: 1rem;
  font-weight: bold;
  line-height: 1;
}
#bookWrap .booknavi li span::before {
  content: "";
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  background: url(../img/common/icon_arrow_r.svg);
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
}
#bookWrap .booknavi li span:hover {
  background-color: #ffd800;
}
#bookWrap .booknavi li span.deactive {
  opacity: 0.2;
}
#bookWrap .booknavi li:first-child span {
  padding-left: 5em;
}
#bookWrap .booknavi li:first-child span::before {
  transform: translate(0, -50%) scale(-1, 1);
  left: 1.5625rem;
}
#bookWrap .booknavi li:last-child span {
  padding-right: 5em;
}
#bookWrap .booknavi li:last-child span::before {
  right: 1.5625rem;
}
#bookWrap .booknavi li#pageCount {
  min-width: 3em;
  margin: 0 2em;
  height: 100%;
}


#extra{
  position: fixed;
  right: 1em;
  bottom:1em;
  font-size: 0.8rem;
  z-index: 10000;
  
  letter-spacing: 0.05em; /* 文字間を微調整 */
  writing-mode: vertical-rl;
  line-height: 1.6;
   font-family: "Noto Sans", sans-serif;
  
}
/* 
================================================================================
sample
================================================================================
*/
div.sample {
  width: 200px;
  height: 200px;
}
body.sample div.sample {
  text-align: center;
}
div.sample:before {
  content: "";
  display: block;
  width: 300px;
  height: 150px;
  background: blue;
}
.sample-1 {
  width: 100px;
}

.sample-2 {
  width: 200px;
}

.sample-3 {
  width: 300px;
}

@keyframes anim {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}