/* Google Fonts 読み込み */
@import url('https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700;800&family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Zen+Kaku+Gothic+Antique:wght@300;400;500;700;900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap');

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:where([hidden]:not([hidden='until-found'])){display:none!important}:where(html){-webkit-text-size-adjust:none;color-scheme:dark light}@media (prefers-reduced-motion:no-preference){:where(html:focus-within){scroll-behavior:smooth}}:where(body){line-height:1.5;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased}:where(input,button,textarea,select){font:inherit;color:inherit}:where(textarea){resize:vertical;resize:block}:where(button,label,select,summary,[role='button'],[role='option']){cursor:pointer}:where(:disabled){cursor:not-allowed}:where(label:has(>input:disabled),label:has(+input:disabled)){cursor:not-allowed}:where(button){border-style:solid}:where(a){color:inherit;text-underline-offset:.2ex}:where(ul,ol){list-style:none}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(img,picture,svg){max-inline-size:100%;block-size:auto}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word}:where(h1,h2,h3){line-height:calc(1em + 0.5rem)}:where(hr){border:none;border-block-start:1px solid;color:inherit;block-size:0;overflow:visible}:where(:focus-visible){outline:3px solid Highlight;outline-offset:2px;scroll-margin-block:10vh}:where(.visually-hidden:not(:focus-within,:active)){clip-path:inset(50%)!important;height:1px!important;width:1px!important;overflow:hidden!important;position:absolute!important;white-space:nowrap!important;border:0!important}


body {
  color: #000000;
  font-family: "Noto Serif JP", "Roboto", serif;
  background:#FFFFFF;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  word-wrap: break-word;
}


.wrap {
  background-blend-mode: lighten;
  z-index: 1100;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  text-align: center;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.wrap:before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000000;
  transform: translate(0, 0);
  transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) .6s;
  content: '';
}
.wrap img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;

  max-width: 300px;
  width: 40%;
  height: auto;

  animation-name:fadeIn,movelogo;
  animation-duration:1s,1.5s;
  animation-timing-function:ease-in-out, ease-out;
  animation-delay:0s, 2s;
  animation-iteration-count:1,1;
  animation-direction:normal,normal;
  animation-fill-mode:backwards,forwards;


}
.wrap.active {
  -webkit-transition: all 3s ease;
  -moz-transition: all 3s ease;
  -o-transition: all 3s ease;
  transition: all 3s ease;
}

.wrap.active:before {
  transform: translate(-100%, 0);
}
.wrap.active img {
  display: none;
}

.maincontent{
  overflow:hidden;
}


.scrollm{
  text-align:center;
  position:fixed;
  bottom:5vw;
  right:3%;
  z-index:5;
}

.mouses{
  width:22px;
  height:38px;
  margin:0 auto;
  position:relative;
  background:#eeeeee linear-gradient(transparent 0%, transparent 50%,#333333 50%, #333333 100%);
  background-size:100% 200%;
  border-radius:100px;
  animation: colorSlide 5s linear infinite, nudgeMouse 5s ease-out infinite;
}

.mouses:before,
.mouses:after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  right:0;
  left:0;
  margin:auto;
}

.mouses:before{
  width:16px;
  height:32px;
  background-color:#eeeeee;
  border-radius:100px;
}

.mouses:after{
  background:#333333;
  width:5px;
  height:5px;
  border-radius:100%;
  animation:trackBallSlide 5s linear infinite;
}

.mousestx{

  font-family:'Roboto',sans-serif;
  font-size:0.8em;
  font-weight:bold;
  color:#333333;
  animation:colorText 5s ease-out infinite,nudgeText 5s ease-out infinite;
}

/* Animations */
@keyframes colorSlide{
  0% {
    background-position: 0% 100%;
  }
  20% {
    background-position: 0% 0%;
  }
  21% {
    background-color: #88969e;
  }
  29.99% {
    background-color: #333333;
    background-position: 0% 0%;
  }
  30% {
    background-color: #88969e;
    background-position: 0% 100%;
  }
  50% {
    background-position: 0% 0%;
  }
  51% {
    background-color: #88969e;
  }
  59% {
    background-color: #333333;
    background-position: 0% 0%;
  }
  60% {
    background-color: #88969e;
    background-position: 0% 100%;
  }
  80% {
    background-position: 0% 0%;
  }
  81% {
    background-color: #88969e;
  }
  90%, 100% {
    background-color: #333333;
  }
}

@keyframes colorText{
  21% {
    color: #88969e;
  }
  30% {
    color: #333333;
  }
  51% {
    color: #88969e;
  }
  60% {
    color: #333333;
  }
  81% {
    color: #88969e;
  }
  90% {
    color: #333333;
  }
} 

@keyframes trackBallSlide{
  0%{
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  6%{
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  14%{
    opacity: 0;
    transform: scale(0.4) translateY(30px);
  }
  15%, 19%{
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  28%, 29.99%{
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  30%{
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  36%{
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  44%{
    opacity: 0;
    transform: scale(0.4) translateY(30px);
  }
  45%, 49%{
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  58%, 59.99%{
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
  60%{
    opacity: 1;
    transform: scale(0.9) translateY(-10px);
  }
  66%{
    opacity: 1;
    transform: scale(0.9) translateY(5px);
  }
  74%{
    opacity: 0;
    transform: scale(0.4) translateY(30px);
  }
  75%, 79%{
    opacity: 0;
    transform: scale(0.4) translateY(-10px);
  }
  88%, 100%{
    opacity: 1;
    transform: scale(1) translateY(-10px);
  }
}
@keyframes nudgeMouse{
  0%{
    transform: translateY(0);
  }
  20%{
    transform: translateY(8px);
  }
  30%{
    transform: translateY(0);
  }
  50%{
    transform: translateY(8px);
  }
  60%{
    transform: translateY(0);
  }
  80%{
    transform: translateY(8px);
  }
  90%{
    transform: translateY(0);
  }
}
@keyframes nudgeText {
  0%{
    transform: translateY(0);
  }
  20%{
    transform: translateY(2px);
  }
  30%{
    transform: translateY(0);
  }
  50%{
    transform: translateY(2px);
  }
  60%{
    transform: translateY(0);
  }
  80%{
    transform: translateY(2px);
  }
  90%{
    transform: translateY(0);
  }
}


/* header */

#header{
  width:90%;
  margin:0 auto;
  display:flex;
  justify-content: space-between;
  align-items: center;
  padding:1em 0;
  font-family:'Noto Sans JP',sans-serif;
}

#header h1{
  width:15%;
  max-width:200px;
}

#header .mainnav{
  width:60%;
}

#header .mainnav ul{
  display:flex;
  justify-content: flex-end;
}

#header .mainnav ul li{
  font-weight:900;
  padding:0 1em;
}

.disable a{
  pointer-events:none;
  opacity:.3;
}

#header .mainnav ul li a{
  text-decoration:none;
  -webkit-transition: all .3s ease;
  -moz-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
  cursor:pointer;
}

#header .mainnav ul li a:hover{
  text-decoration:none;
  color:#666;
}

@media screen and (max-width: 640px) {
  #header{
    width:95%;
  }
  #header .mainnav ul li{
    font-size:2.9vw;
    padding:0 1vw;
  }

}

/* intro */
/* ------------------ */

#intro{
  position:relative;
  padding:5vw 0 0 0;
}

#intro .nlogo-hft{
  width:40%;
  max-width:500px;
  margin:0 auto;
}

#intro .nmlg{
  width:50%;
  max-width:700px;
  margin:-1.5vw auto 1vw auto;
  position:relative;
  z-index:2;
}

#intro .nmlgb{
  width:40%;
  margin:0 auto;
  max-width:450px;
}

#intro .nlogo-htb{
  width:40%;
  margin:-3.5vw auto 0 auto;
  max-width:450px;
}

#intro .ld{
  width:50%;
  max-width:700px;
  margin:0 auto;
  position:absolute;
  top:20%;
  left:0;
  right:0;
  z-index:3;
}

#intro .ld .ld01{
  padding-bottom:3vw;
}



#intro .int-t{
  text-align:center;
  padding:1em 0;
  font-size:1.4em;
  line-height:1.8;
}


.fadeIn {
  opacity: 0;
  transform: translateY(50px);
}

.fadeIn.is-active {
  opacity: 1;
  transform: translateY(0);
  transition: all 1s cubic-bezier(0.22, 1, 0.36, 1);
}




@media screen and (min-width: 1300px) {
  #intro{
    position:relative;
    padding:10em 0 10em 0;
  }
  #intro .nmlg{
    margin:-1.5em auto 1em auto;
  }

  #intro .nlogo-htb{
    margin:-3em auto 0 auto;
  }
}

@media screen and (max-width: 640px) {
  #intro{
    position:relative;
    padding:50vw 0 20vw 0;
  }
  #intro .int-t{
    text-align:center;
    padding:1em 0;
    font-size:3.5vw;
    line-height:1.8;
  }

  #intro .ld{
    top:35%;
  }
}



/* movie */
/* ------------------ */
#movie{
  position:relative;
  padding:0;
  width:100%;
  height:100vh;
  margin-top:-20vw;
}



#movie .coming_video{
  width:100%;
  height:auto;
  position:absolute;
  top:50%;
  left:50%;
  z-index:1;
  transform:translate(-50%, -50%);
}


#movie .js-modal-video{
  position:absolute;
  top:calc(100% / 1.5);
  right:5%;
  z-index:2;
  color:#FFFFFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight:900;
  -webkit-transition: all .3s ease;
  -moz-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
  background:rgba(0,0,0,1);
  padding:1em 1em 1em 3em;
  border-radius:10px;
  line-height:1;
  cursor:pointer;
}

#movie .js-modal-video:before{
  content:'';
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20version%3D%221.1%22%20id%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2079%2079%22%20style%3D%22enable-background%3Anew%200%200%2079%2079%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3Anone%3Bstroke%3A%23FFFFFF%3Bstroke-miterlimit%3A10%3B%7D%3C%2Fstyle%3E%3Ccircle%20class%3D%22st0%22%20cx%3D%2239.5%22%20cy%3D%2239.5%22%20r%3D%2239%22%2F%3E%3Cpolygon%20class%3D%22st0%22%20points%3D%2261.78%2C41%2026.11%2C20.41%2026.11%2C61.59%20%22%2F%3E%3C%2Fsvg%3E');
  background-repeat:no-repeat;
  background-position:center center;
  width:30px;
  height:40px;
  display:block;
  position:absolute;
  top:5px;
  left:10px;
  -webkit-transition: all .3s ease;
  -moz-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}

#movie .js-modal-video:hover{
  color:#000000;
  background:rgba(255,255,255,1);
}

#movie .js-modal-video:hover:before{
  content:'';
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20version%3D%221.1%22%20id%3D%22%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2079%2079%22%20style%3D%22enable-background%3Anew%200%200%2079%2079%3B%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%20type%3D%22text%2Fcss%22%3E%20.st0%7Bfill%3Anone%3Bstroke%3A%23000000%3Bstroke-miterlimit%3A10%3B%7D%3C%2Fstyle%3E%3Ccircle%20class%3D%22st0%22%20cx%3D%2239.5%22%20cy%3D%2239.5%22%20r%3D%2239%22%2F%3E%3Cpolygon%20class%3D%22st0%22%20points%3D%2261.78%2C41%2026.11%2C20.41%2026.11%2C61.59%20%22%2F%3E%3C%2Fsvg%3E');
}


@media screen and (min-width: 1500px) {
  #movie{
    margin-top:0;
  }

  #movie .js-modal-video{
    top:calc(100vh / 1.3);
    right:5%;
  }

}

@media screen and (max-width: 1000px) {
  #movie .js-modal-video{
    top:calc(100vh / 1.65);
    right:5%;
  }

}

@media screen and (max-width: 640px) {
  #movie .js-modal-video{
    top:calc(100vh / 1.8);
    right:5%;
    font-size:3vw;
  }
  #movie .js-modal-video:before{
    width:15%;
    height:30px;
    top:1.5vw;
    left:10px;
  }

}

@media screen and (max-width: 480px) {
  #movie{
    margin-top:0;
  }
  #movie .js-modal-video{
    top:calc(100vh / 1.9);
    right:5%;
    font-size:3vw;
  }
  #movie .js-modal-video:before{
    width:15%;
    height:30px;
    top:0.5vw;
    left:10px;
  }

}

/* tcontents */
/* ------------------ */
#tcontents{
  position:relative;
  padding:5em 0;
}

#tcontents ul{

}

#tcontents ul li{
  color:#FFFFFF;
  text-align:left;
  padding:1em 5em;
  font-size:1.4em;
  line-height:1.8;
  padding-top:20vw;
  margin:.2em 0;
  position:relative;
}



#tcontents ul li .tcslide{
  width:100%;
  height:100%;
  background:rgba(0,0,0,1);
  position:absolute;
  top:0;
  left:-100%;
  z-index:2;
  opacity:1;
}

#tcontents ul li.ct01{
  background:url(../images/tcontents_bg01.jpg) no-repeat center top;
  background-size:100% auto;
}

#tcontents ul li.ct02{
  background:url(../images/tcontents_bg02.jpg?=231011) no-repeat center top;
  background-size:100% auto;
}

#tcontents ul li.ct03{
  background:url(../images/tcontents_bg03.jpg) no-repeat center top;
  background-size:100% auto;
}

#tcontents ul li.ct04{
  background:url(../images/tcontents_bg04.jpg?=231011) no-repeat center top;
  background-size:100% auto;
}
#tcontents ul li .ld{
  display:flex;
  flex-wrap: wrap;
  flex-direction: column-reverse;
}
#tcontents ul li h2{
  font-weight:500;
  letter-spacing:.1em;
  padding:.2em 0 .2em 0;
}

#tcontents ul li p{
  font-size:70%;
  line-height:1.6;
}

#tcontents ul li .subt{
  font-family:'Noto Sans JP', sans-serif;
  font-weight:900;
  font-size:90%;
  line-height:1.4;
  background:rgba(255,255,255,.6);
  color:#000;
  text-align:right;
  padding:0.1em 1em;
  width:40%;
  margin:0 auto 0 0;
}

#tcontents ul li .soon{
  background:rgba(255,255,255,.3);
  font-family:'Noto Sans JP', sans-serif;
  font-weight:900;
  font-size:2vw;
  border-radius:100%;
  text-alirgn:center;
  width:20vw;
  height:20vw;
  display:flex;
  justify-content: center;
  align-items: center;
  position:absolute;
  top:-2%;
  right:10%;
}

#tcontents ul li.active .soon{
  background:rgba(255,255,255,.7);
  font-size:2vw;
}

#tcontents ul li a{
  text-decoration:none;
  display:block;
  color:#000000;
}

@media screen and (min-width: 1500px) {

  #tcontents ul li .soon{
    font-size:1.4em;
  }

}

@media screen and (max-width: 900px) {
  #tcontents ul li{
    padding:1em 5vw;
    font-size:1.4em;
    line-height:1.8;
    padding-top:calc(100% / 5.5);
    margin:.2em 0;
    position:relative;
  }

  #tcontents ul li .soon{
    font-size:2.5vw;
    width:25vw;
    height:25vw;
  }

}

@media screen and (max-width: 640px) {
  #tcontents ul li{
    font-size:3vw;
    padding-top:calc(100% / 3);
  }

  #tcontents ul li.ct01{
    background:url(../images/tcontents_bg01_sp.jpg) no-repeat center top;
    background-size:100% auto;
  }

  #tcontents ul li.ct02{
    background:url(../images/tcontents_bg02_sp.jpg) no-repeat center top;
    background-size:100% auto;
  }

  #tcontents ul li.ct03{
    background:url(../images/tcontents_bg03_sp.jpg) no-repeat center top;
    background-size:100% auto;
  }

  #tcontents ul li.ct04{
    background:url(../images/tcontents_bg04_sp.jpg) no-repeat center top;
    background-size:100% auto;
  }
}

@media screen and (max-width: 480px) {
  #tcontents{
    padding:0;
  }

  #tcontents ul li .soon{
    right:5%;
  }
}


/* logo */
/* ------------------ */
#logo{
  position:relative;
  padding-bottom:0;
}

#logo .lg{
  width:40%;
  margin:0 auto;
  padding-bottom:1em;
}

#logo .lg-t{
  text-align:center;
  padding:1em 0;
  font-size:1.4em;
  line-height:1.8;
}

@media screen and (max-width: 640px) {
  #logo .lg-t{
    padding:1em 0;
    font-size:3vw;
  }

}

/* charactor */
/* ------------------ */
#charactor{
  position:relative;
  padding:10vw 0 0 0;
  background:#efefef;
  margin-top:-15vw;
}




@keyframes purun {
  0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
  15%  { transform: scale(0.9, 0.9) translate(0%, 5%); }
  30%  { transform: scale(1.3, 0.8) translate(0%, 10%); }
  50%  { transform: scale(0.8, 1.3) translate(0%, -10%); }
  70%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
  100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
}

#charactor .nazepiyo2{
  width:30%;
  height:calc(100% / 3);
  padding-top:20vw;
  margin:0 auto;
  text-align:center;
}

#charactor.purun .nazepiyo2{
  animation: purun 0.8s linear 0s infinite;
}



#charactor .nazepiyo2 path.st0 {
  fill:none;
  stroke:none;
  stroke-width:2px;
  stroke-dasharray:1000px;
}
/*口*/
#charactor .nazepiyo2 path.st1 {
  fill:none;
  stroke:none;
  stroke-width:2px;
  stroke-dasharray:1000px;
}
/*目の背景*/
#charactor .nazepiyo2 circle.st2 {
  fill:none;
  stroke:none;
  stroke-width:2px;
  stroke-dasharray:1000px;
}
/*輪郭*/
#charactor .nazepiyo2 path.st3 {
  fill:none;
  stroke:#000000;
  stroke-width:2px;
  stroke-dasharray:1000px;
}
/*輪郭*/
#charactor .nazepiyo2 path.st4 {
  fill:none;
  stroke:#000000;
  stroke-width:2px;
  stroke-dasharray:1000px;
}


#charactor .cht-t{
  text-align:center;
  padding:0;
  font-size:1.4em;
  line-height:1.8;
}

#charactor .piyotaro{
  width:100%;
  margin:3vw auto 0 auto;
  padding-top:calc(100% / 1.1);
  position:reltive;
  z-index:2;
}

#charactor .piyotaro:after{
  content:'';
  background:url(../images/grass.svg) repeat-x center bottom;
  background-size:auto 100%;
  height:5vw;
  width:100%;
  position:absolute;
  bottom:0;
  left:0;
  display:block;
}

#charactor .piyotaro .nazetaro{
  width:20%;
  margin:0 auto;
  position:absolute;
  bottom:0;
  left:30%;
}

#charactor .piyotaro .nazetaro .nazeil{

}

#charactor .piyotaro .nazetaro .nazenm{
  position:absolute;
  top:5vw;
  left:-2vw;
  font-family:'Noto Sans JP', sans-serif;
  font-weight:900;
  font-size:1.4em;
}

#charactor .piyotaro .nazepiyo{
  width:15%;
  margin:0 auto;
  position:absolute;
  bottom:0;
  left:47%;
}

#charactor .piyotaro .nazepiyo .nazepiyonm{
  position:absolute;
  top:0;
  right:-10vw;
  font-family:'Noto Sans JP', sans-serif;
  font-weight:900;
  font-size:1.4em;
}

@media screen and (min-width: 1000px) {
  #charactor{
    position:relative;
    padding:5em 0 0 0;
    background:#efefef;
    margin-top:-15vw;
  }
  #charactor .nazepiyo2{
    padding-top:0;
    height:calc(100% / 3);
  }

  #charactor .piyotaro{

    margin:3vw auto 0 auto;
    padding-top:calc(100% / 2);
  }

  #charactor .cht-t{
    text-align:center;
    padding:1em 0;
    font-size:1.4em;
    line-height:1.8;
  }

  #charactor .piyotaro .nazetaro .nazenm{
    top:5vw;
    left:0;
    font-size:1.4em;
  }

  #charactor .piyotaro .nazepiyo .nazepiyonm{
    top:0;
    right:-8vw;
    font-size:1.4em;
  }

}

@media screen and (max-width: 900px) {
  #charactor .piyotaro .nazetaro{
    width:27%;
    left:26%;
  }

  #charactor .piyotaro .nazepiyo{
    width:17%;
    left:48%;
  }

  #charactor .piyotaro .nazetaro .nazenm{
    position:absolute;
    top:5vw;
    left:-2vw;
    font-size:3vw;
  }

  #charactor .piyotaro .nazepiyo .nazepiyonm{
    position:absolute;
    top:0;
    right:-13vw;
    font-size:3vw;
  }


}

@media screen and (max-width: 640px) {
  #charactor .nazepiyo2{
    width:40%;
    height:calc(100% / 2);
    margin:0 auto;
    padding-top:20vw;
  }
  #charactor .cht-t{
    font-size:3vw;
  }

  #charactor .piyotaro{
    width:100%;
    margin:3vw auto 0 auto;
    padding-top:calc(100% / 2);
    position:reltive;
    z-index:2;
  }

}

@media screen and (max-width: 480px) {
  #charactor .nazepiyo2{
    width:40%;
    height:calc(100% / 3);
    margin:0 auto;
    padding-top:20vw;
  }
  #charactor .piyotaro{
    padding-top:calc(100% / 1);
  }

}

/* histroy */
/* ------------------ */

#history{
  background:#000000;
  color:#FFFFFF;
}

#history .odometer.odometer-auto-theme, .odometer.odometer-theme-default {
  font-family: 'Nanum Myeongjo', serif; !important;
  line-height: 1em !important;
}
#history .odometer-formatting-mark {
  display: none !important;
}
#history .odometer.odometer-auto-theme .odometer-value, .odometer.odometer-theme-default .odometer-value {
  text-align: inherit !important;
}


.history-wrapper-content{




}

.history-wrapper-content .yearmap{
  position: absolute;
    top: 2em;
    left: 40vw;
    z-index: 99;
    width: 50vw;
    font-family:sans-serif;
    font-size:16px;
    font-weight:500;
}

.history-wrapper-content .yearmap a{
  text-decoration:none;
  -webkit-transition: all .3s ease;
  -moz-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}

.history-wrapper-content .yearmap a:hover{
  color:#999999;
}

.history-wrapper-content .yearmap .ymap-t{
  position: absolute;
  top:-1.5em;
  left:-0.5em;
}

.history-wrapper-content .yearmap .ymap-s{
  position: absolute;
  top:-1.5em;
  left:10%;
}

.history-wrapper-content .yearmap .ymap-h{
  position: absolute;
  top:-1.5em;
  left:66%;
}

.history-wrapper-content .yearmap .ymap-r{
  position: absolute;
  top:-1.5em;
  right:-0.5em;
}

.history-wrapper-content .yearmap .ymap-100{
  position: absolute;
  top:0.5em;
  left:-1em;
  font-weight:800;
  opacity:.3;
}

.history-wrapper-content .yearmap .ymap-0{
  position: absolute;
  top:0.5em;
  right:-1em;
  font-weight:800;
  opacity:.3;
}

.history-wrapper-content .yearmap .ymsvg-pc{
  display:block;
}

.history-wrapper-content .yearmap .ymsvg-sp{
  display:none;
}

.history-wrapper-content .yearmap svg {
    
}
.history-wrapper-content .yearmap svg .mask {
    width: 0;
}

.history-wrapper-content .yearmap svg .mask2 {
    width: 0;
}


.history-wrapper-content .scrollContainer {
    overscroll-behavior: none;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
 
}
.history-wrapper-content .section {
    height: 95vh;
    margin-top:5vw;
}
.history-wrapper-content .section.start-content {
    flex: 0 0 100vw;
}
.history-wrapper-content .caption h2 {
    font-size: clamp(4rem, 6vw, 10rem);
    text-transform: uppercase;
    line-height: 1;
    letter-spacing: -1px;

}
.history-wrapper-content .caption p {
    
    font-size: clamp(0.8rem, 4vw, 1.5rem);
}

.history-wrapper-content .single-images {
    position:relative;
    width: 30rem;
    height: 50rem;
    overflow:hidden;
}

.history-wrapper-content .single-images img{
    position:relative;
    width: 100%;
    height: 100%;
}
.history-wrapper-content .double-images {
    position: relative;
    width: 90rem;
    display: flex;
}
.history-wrapper-content .double-images.type-01 {
    margin: 10rem 0;
}
.history-wrapper-content .double-images.type-01 figure:first-child {
    flex-basis: 60rem;
    flex-shrink: 0;
    height: 80vh;
}
.history-wrapper-content .double-images.type-01 figure:last-child {
¥
    height: 50vh;
    position: absolute;
    bottom: -4rem;
    right: -26rem;
    top: auto;
}
.history-wrapper-content .double-images.type-02 figure:first-child {
    flex-basis: 90rem;
    flex-shrink: 0;
    height: 100vh;
}
.history-wrapper-content .double-images.type-02 figure:last-child {
    height: 50vh;
    position: absolute;
    bottom: -4rem;
    right: -26rem;
    top: auto;
}
.history-wrapper-content .triple-images {
    position: relative;

    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10rem 0;
}
.history-wrapper-content .triple-images figure {
    width: 50rem;
    height: 50rem;
}
.history-wrapper-content .triple-images figure:first-child {
    width: 50vh;
    height: 50vh;
    padding-bottom: 100%;
}
.history-wrapper-content .triple-images figure:first-child img {
    width: 100%;
    height: 100%;
}
.history-wrapper-content .triple-images figure:nth-child(2) {
    width: 35vh;
    height: 35vh;
    position: absolute;
    top: -35%;
    right: -20%;
}

.history-wrapper-content .triple-images.double figure:nth-child(2) {
    width: 40vh;
    height: 20rem;
    position: absolute;
    top:auto;
    left:-25%;
    bottom: -50%;
    right: auto;
}
.history-wrapper-content .triple-images figure:nth-child(2) img {
    width: 100%;
    height: 100%;
}
.history-wrapper-content .triple-images figure:nth-child(3) {
    width: 40vh;
    height: 20rem;
    position: absolute;
    bottom: -50%;
    left: -25%;
}
.history-wrapper-content .triple-images figure:nth-child(3) img {
    width: 100%;
    height: 100%;
}
.history-wrapper-content figure {
    width: 100%;
    position: relative;
    overflow: hidden;
}
.history-wrapper-content figure.start-image {
    width: 50%;
    height: 100%;
}
.history-wrapper-content figure.start-image img {
    width: 140%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
}
.history-wrapper-content figure.last-image {
    position:relative;
    width: 40rem;
    height: 50rem;
    display:flex;
    align-items: center;
    margin-right:10rem;

}

.history-wrapper-content figure.last-image img{
    position:relative;
    width: 70%;
    height: auto;
}

.history-wrapper-content figure img {
    width: 140%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
}
.history-wrapper-content .start-chapter .caption {
    width: 50%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding-left: 10vw;
    margin-bottom: 15rem;
}
.history-wrapper-content .start-chapter .caption h2 {
    font-size: clamp(3rem, 6vw, 6rem);
    text-transform: uppercase;
    line-height: 1;
    width:100%;
}
.history-wrapper-content .start-chapter .caption p {
    max-width: 100rem;
    padding-left: 0;
    font-size: clamp(1.5rem, 4vw, 2rem);
}
.history-wrapper-content .chapters {
    height: 100%;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    padding: 0 10vw;
}
.history-wrapper-content .chapters.c01 .caption {
    padding-left: 20rem;
}
.history-wrapper-content .chapters.c02 {
    padding: 0 10vw;
}
.history-wrapper-content .chapters.c02 .caption {
    padding-left: 20rem;
    width: max-content;
    margin-top: 10rem;
}

.history-wrapper-content .chapters.c03 {
    padding: 0 10vw;
}
.history-wrapper-content .chapters.c03 .caption {
    width: max-content;
    margin-top: 0;
}

.history-wrapper-content .caption p.histline {
    padding-bottom:0.5rem;
}

.history-wrapper-content .caption p.prline {
    padding-top:1rem;
}

.history-wrapper-content .backto{
}

.history-wrapper-content .backto a{
  color:#000000;
  display:inline-block;
  background:#FFFFFF;
  padding:0.2em 1em;
  border-radius:10px;
  text-decoration:none;
  font-family:sans-serif;
  font-weight:600;
  font-size:clamp(1rem, 1vw, 1.5rem);
  -webkit-transition: all .3s ease;
  -moz-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}

.history-wrapper-content .backto a:hover{
  color:#FFFFFF;
  background:#000000;
}

.history-wrapper-content .item {
    width: 100%;
    height: 100%;
    display: flex;
    background: #000000;
}


.history-wrapper-content .caption p.histline.is-active{
  animation: fadeInLeft 1s;
  animation-fill-mode: backwards;
  -webkit-animation: fadeInLeft 1s;
  -webkit-animation-fill-mode: backwards;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.history-wrapper-content .caption p.prline.is-active{
  animation: fadeInRight 1s;
  animation-fill-mode: backwards;
  -webkit-animation: fadeInRight 1s;
  -webkit-animation-fill-mode: backwards;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}



@media screen and (min-width: 2500px) {
  .history-wrapper-content .yearmap .ymap-s{
    left:5.4vw;
  }
  .history-wrapper-content .yearmap .ymap-h{
    left:33.5vw;
  }
  .history-wrapper-content .yearmap .ymap-100{
    top:1.2em;
  }

  .history-wrapper-content .yearmap .ymap-0{
    top:1.2em;
  }
}

@media screen and (min-width: 1600px) and (max-width: 2499px) {

  .history-wrapper-content .yearmap .ymap-s{
    left:5.4vw;
  }
  .history-wrapper-content .yearmap .ymap-h{
    left:33.5vw;
  }

  .history-wrapper-content .yearmap .ymap-100{
    top:0.8em;
  }

  .history-wrapper-content .yearmap .ymap-0{
    top:0.8em;
  }
}

@media screen and (max-width: 1100px) {

  .history-wrapper-content figure.start-image img {
      height: 80%;
  }
  .history-wrapper-content .start-chapter .caption {
    justify-content: center;
  }
}


@media screen and (max-width: 800px) {
  .history-wrapper-content .yearmap .ymap-h{
    left:65%;
  }
  .history-wrapper-content figure.start-image img {
      height: 50%;
  }
}


@media screen and (max-width: 640px) {

  .history-wrapper-content .yearmap{
    position: absolute;
      top: 3em;
      left: 10vw;
      z-index: 99;
      width: 80vw;
      font-family:sans-serif;
      font-size:11px;
      font-weight:500;
  }

  .history-wrapper-content .yearmap .ymap-t{
    position: absolute;
    top:-2em;
    left:-5%;
  }

  .history-wrapper-content .yearmap .ymap-s{
    position: absolute;
    top:-2em;
    left:6.5vw;
  }

  .history-wrapper-content .yearmap .ymap-h{
    position: absolute;
    top:-2em;
    left:51vw;
  }

  .history-wrapper-content .yearmap .ymap-r{
    position: absolute;
    top:-2em;
    right:-5%;
  }

  .history-wrapper-content .yearmap .ymap-100{
    position: absolute;
    top:1em;
    left:-1em;
    font-weight:800;
    opacity:.3;
  }

  .history-wrapper-content .yearmap .ymap-0{
    position: absolute;
    top:1em;
    right:-1em;
    font-weight:800;
    opacity:.3;
  }

  .history-wrapper-content .yearmap .ymsvg-pc{
    display:none;
  }

  .history-wrapper-content .yearmap .ymsvg-sp{
    display:block;
  }

  .history-wrapper-content .scrollContainer {
    overscroll-behavior: none;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
  }
  .history-wrapper-content figure.start-image {
    width: 0;
    height: 100%;
  }

  .history-wrapper-content .start-chapter .caption {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    padding-left: 5vw;
    margin-bottom: 10rem;
  }

  .history-wrapper-content .start-chapter .caption h2 {
    font-size: clamp(3rem, 7vw, 10rem);
    text-transform: uppercase;
    line-height: 1;
  }

  .history-wrapper-content .single-images {
    position:relative;
    width: 15rem;
    height: 30rem;
    overflow:hidden;
    display:flex;
    align-items: center;
  }

  .history-wrapper-content .single-images img{
    position:relative;
    width: 100%;
    height: 100%;
  }

  .history-wrapper-content .triple-images {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10rem 0;
  }
  .history-wrapper-content .triple-images figure {
      width: 50rem;
      height: 50rem;
  }
  .history-wrapper-content .triple-images figure:first-child {
      width: 40vh;
      height: 40vh;
      padding-bottom: 100%;
  }
  .history-wrapper-content .triple-images figure:first-child img {
      width: 100%;
      height: 100%;
  }
  .history-wrapper-content .triple-images figure:nth-child(2) {
      width: 35vh;
      height: 25vh;
      position: absolute;
      top: -35%;
      right: -20%;
  }

  .history-wrapper-content .triple-images.double figure:nth-child(2) {
    width: 35vh;
    height: 25vh;
    position: absolute;
    top:auto;
    left:-20%;
    bottom: -55%;
    right: auto;
  }
  .history-wrapper-content .triple-images figure:nth-child(2) img {
      width: 100%;
      height: 100%;
  }
  .history-wrapper-content .triple-images figure:nth-child(3) {
      width: 35vh;
      height: 25vh;
      position: absolute;
      bottom: -55%;
      left: -20%;
  }
  .history-wrapper-content .triple-images figure:nth-child(3) img {
      width: 100%;
      height: 100%;
  }

  .history-wrapper-content figure.last-image {
    position:relative;
    width: 30rem;
    height: 40rem;
    display:flex;
    align-items: center;
    justify-content: center;
    margin-right:0;

  }
  .history-wrapper-content figure.last-image img{
    position:relative;
    width: 60%;
    height: auto;
}


}


/* book */
/* ------------------ */

#book{
  width:90%;
  margin:0 auto;
  max-width:1200px;
  padding-bottom:10em;
}

#book h2{
  font-size:clamp(.9rem, 2.9vw , 2rem);
  text-align:center;
  padding:5vw 0;
  font-weight:normal;
  line-height:1.8;
  position:relative;
  z-index:2;
}

#book .bkaf{
 position:relative;
 z-index:2;
}

#book .bkaf dt{
  padding:0 0 .5em 2em;
  font-size:clamp(.8rem, 2vw , 1.1rem);
}

#book .bkaf dd{
  background:#eaeaea;
  padding:2em;
  font-size:clamp(.8rem, 2vw , 1.1rem);
  line-height:1.8;
}

#book .bkcv{
  padding:5vw 0;
  position:relative;
}

#book .bkcv .bkimg{
  width:50%;
  margin:0 auto;
}

#book .bkcv .bknaze{
  position:absolute;
  top:15%;
  right:0;
  width:25%;
  height:auto;
}

#book .bkcv .bkpiyo{
  position:absolute;
  top:60%;
  left:5%;
  width:20%;
  height:auto;
}

#book .bkbf{
  padding:5vw 0;
  width:90%;
  margin:0 auto;
  font-size:clamp(.8rem, 2vw , 1.1rem);
  line-height:1.8;
}

#book .bkbf dt{

}

#book .bkbf dd{

}

#book .bkbf dd p{
  padding:1em 0;
}

#book .bkinfo{
  background:#eaeaea;
  width:90%;
  margin:0 auto;
  padding:2em;
  font-size:clamp(.7rem, 2vw , 1rem);
  line-height:1.8;
}

#book .bkinfo ol li{
  padding-bottom:1em;
}

#book .bkinfo ul li{
  line-height:2;
}

#book .sp{
  display:none;
}


@media screen and (min-width: 1000px) {
  #book{
    width:90%;
    margin:0 auto;
    max-width:1200px;

  }
  #book h2{
    padding:2em 0;
  }

  #book .bkcv{
    padding:3em 0;
  }

  #book .bkbf{
    padding:3em 0;
    width:80%;
  }

  #book .bkinfo{
    width:80%;
  }

}

@media screen and (max-width: 640px) {

  #book .sp{
    display:block;
  }

  #book .bkinfo{
    background:#eaeaea;
    width:90%;
  }
}

@media screen and (max-width: 480px) {
  #book h2{
    padding:10vw 0;
  }

  #book .bkaf dt{
    padding:0 0 .5em 0;
    text-align:center;
  }
}


/* challenge */
/* ------------------ */

#challenge{
  width:100%;
  margin:0 auto;
  background:#000000;
  text-align:center;
  font-family:"Roboto", "Noto Sans JP", sans-serif;
  color:#FFFFFF;
}

#challenge .inner{
  max-width:1000px;
  margin:0 auto;
}

#challenge h2{
  font-size:clamp(2rem, 3.5vw, 3.5rem);
  font-weight:800;
}

#challenge h3{
  font-size:clamp(1.2rem, 2.3vw, 2.3rem);
  font-weight:800;
}


#challenge img{
  display:block;
}

/* --hero---------------- */

#challenge #hero {
  position: relative;
  height: 100svh;
  min-height: 680px;
  overflow: hidden;
  isolation: isolate;
  background: #000;
  color: #fff;
}

#challenge #hero .hero-bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
}

#challenge #hero .hero-bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

#challenge #hero::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: radial-gradient(circle at 50% 45%, transparent 5%, rgba(0, 0, 0, .68) 100%);
  pointer-events: none;
}

#challenge #hero .hero-intro {
  position: absolute;
  z-index: 4;
  top: 42%;
  left: 50%;
  width: min(92vw, 1160px);
  text-align: center;
  display: grid;
  place-items: center;
  min-height: 5em;
}

#challenge #hero .hero-intro span,
#challenge #hero .lead span {
  display: block;
}

#challenge #hero .hero-intro span {
  color: #f5f5f5;
  font-size: clamp(1.25rem, 2.1vw, 2rem);
  font-weight: 800;
  line-height: 1.85;
  letter-spacing: .1em;
  text-shadow: 0 2px 24px rgba(255, 255, 255, .12);
  grid-area: 1 / 1;
  transform-origin: center center;
}

#challenge #hero .hero-intro .spv{
  display:none;
}

#challenge #hero .product-stage {
  position: absolute;
  z-index: 2;
  right: 24px;
  bottom: clamp(80px, 12vh, 150px);
  left: 24px;
  text-align: center;
}

#challenge #hero .mainimg {
  width: min(28vw, 300px);
  margin: 0 auto 16px;
  transform-origin: center 75%;
}

#challenge #hero .mainimg img {
  filter:none;
}

#challenge #hero h1 {
  margin: 0 0 14px;
  font-size: clamp(2rem, 5vw, 4rem);
  font-weight: 900;
  letter-spacing: .05em;
}

#challenge #hero .lead {
  margin: 0;
  font-size: clamp(.82rem, 1.1vw, 1.2rem);
  line-height: 1.9;
  letter-spacing: .06em;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  #challenge #hero {
    min-height: 640px;
  }

  #challenge #hero .mainimg {
    width: min(62vw, 240px);
    margin-bottom: 12px;
  }

  #challenge #hero .hero-intro {
    top: 40%;
  }

  #challenge #hero .hero-intro span {
    font-size: 1.08rem;
    line-height:1.9;
    font-weight: 700;
    letter-spacing: .045em;
  }

  #challenge #hero .hero-intro .spv{
    display:block;
  }

  #challenge #hero h1 {
    margin-bottom: 10px;
    font-size: 2rem;
  }

  #challenge #hero .lead {
    font-size: .7rem;
    line-height: 1.8;
    letter-spacing: .01em;
  }

  #challenge #hero .product-stage {
    bottom: 10vh;
  }
}

/* --introduction---------------- */
#challenge #introduction{
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
  box-sizing: border-box;
  padding: clamp(80px, 10vw, 160px);
  background: #333;
  color: #fff;
}

#challenge #introduction::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: linear-gradient(
    90deg,
    transparent 28%,
    rgba(51, 51, 51, .62) 52%,
    #333 72%
  );
  pointer-events: none;
}

#challenge #introduction .inner {
  position: relative;
  z-index: 2;
  width: min(58%, 900px);
  margin: 0 0 0 auto;
  transform: translateX(-clamp(60px, 6vw, 130px));
}

#challenge #introduction .lead {
  margin: 0;
  font-size: clamp(1rem, 1.25vw, 1.35rem);
  line-height: 2;
  text-align: left;
}

#challenge #introduction .lead span {
  display: block;
  margin-top: 1.15em;
}

#challenge #introduction .lead span:first-child {
  margin-top: 0;
  font-weight: 700;
}

#challenge #introduction .introduction-bg {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  overflow: visible;
  pointer-events: none;
}

#challenge #introduction .introduction-bg img {
  display: block;
  width: 50%;
  max-width: none;
  height: auto;
  object-fit: initial;
  object-position: left top;
  transform-origin: left center;
  will-change: transform, filter, opacity;
}


@media screen and (max-width: 767px) {
  #challenge #introduction {
    display: flex;
    align-items: flex-end;
    min-height: 100svh;
    padding: 72px 24px;
  }

  #challenge #introduction .inner {
    width: 100%;
    transform: none;
  }

  #challenge #introduction .introduction-bg {
    width: 100%;
  }

  #challenge #introduction .introduction-bg::after{
    position:absolute;
    inset:0;
    z-index:1;
    background:
      linear-gradient(
        90deg,
        #333 0%,
        rgba(51,51,51,0) 14%
      ),
      linear-gradient(
        0deg,
        #333 0%,
        rgba(51,51,51,0) 20%
      );
    content:"";
    pointer-events:none;
  }

  #challenge #introduction .introduction-bg img {
    width: 140%;
  }

  #challenge #introduction::after {
    background: linear-gradient(
      180deg,
      rgba(51, 51, 51, .15) 0%,
      rgba(51, 51, 51, .55) 48%,
      #333 100%
    );
  }

  #challenge #introduction .lead {
    font-size: .9rem;
    line-height: 1.9;
  }
}


/* --spec---------------- */
#challenge #spec{
  --spec-wash: 0;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(80px, 10vw, 160px) 0;
  background: #333;
  color: #000;
}

#challenge #spec::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  background: #fff;
  transform: scaleX(var(--spec-wash));
  transform-origin: left center;
}

#challenge #spec .inner{
  width: min(100% - 48px, 1100px);
  position: relative;
  z-index: 1;
}

#challenge #spec h2 {
  margin: 0;
  text-align: center;
}

#challenge #spec .spec{
  position: relative;
  margin: clamp(42px, 5vw, 80px) 0;
  padding: 0;
  --divider-progress: 0;
}

#challenge #spec .spec::before {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  content: "";
  background: #9b9393;
  transform: scaleY(var(--divider-progress));
  transform-origin: top;
}

#challenge #spec .spec .row{
  position: relative;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  font-size: clamp(.9rem, 1.4vw, 1.35rem);
}

#challenge #spec .spec .row:nth-child(odd){
  background:#f7f7f7;
}

#challenge #spec .spec dt,
#challenge #spec .spec dd {
  box-sizing: border-box;
  width: 50%;
  margin: 0;
  padding: .7em 1.2em;
}

#challenge #spec .spec dt {
  padding-right: 1.5em;
  text-align: right;
}

#challenge #spec .spec dd {
  padding-left: 1.5em;
  text-align: left;
}

#challenge #spec .spec .is-feature dt,
#challenge #spec .spec .is-feature dd {
  font-weight: 700;
}

#challenge #spec h3 {
  margin: clamp(70px, 9vw, 130px) 0 0;
  text-align: center;
}

#challenge #spec .mtf-img{
  width: min(100%, 820px);
  margin: 0 auto;
  padding: clamp(30px, 4vw, 60px) 0 0;
  overflow: hidden;
}

#challenge #spec .mtf-img img {
  display: block;
  width: 100%;
  height: auto;
}

@media screen and (max-width: 767px) {
  #challenge #spec .inner {
    width: min(100% - 32px, 1100px);
  }

  #challenge #spec .spec::before {
    left: 47%;
  }

  #challenge #spec .spec .row {
    font-size: .82rem;
  }

  #challenge #spec .spec dt,
  #challenge #spec .spec dd {
    padding: .85em .7em;
  }

  #challenge #spec .spec dt {
    width: 47%;
    padding-right: 1em;
  }

  #challenge #spec .spec dd {
    width: 53%;
    padding-left: 1em;
  }
}

/* --sample---------------- */

html{
  scrollbar-gutter:stable;
}

html.is-sample-modal-open,
body.is-sample-modal-open{
  overflow:hidden;
  overscroll-behavior:none;
}

#challenge .sample-modal__panel{
  overflow:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

#challenge #sample{
  padding:clamp(90px, 10vw, 160px) 0;
  background:#333;
  color:#fff;
}

#challenge #sample .inner{
  width:min(100% - 48px, 1280px);
  margin:0 auto;
}

#challenge #sample h2{
  margin:0;
  color:#fff;
  text-align:center;
}

#challenge #sample .imagesample{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(10px, 1.5vw, 24px);
  margin:clamp(42px, 6vw, 84px) 0 0;
  padding:0;
  list-style:none;
}

#challenge #sample .imagesample button{
  display:block;
  width:100%;
  padding:0;
  overflow:hidden;
  border:0;
  background:none;
  cursor:pointer;
}

#challenge #sample .imagesample img{
  display:block;
  width:100%;
  height:auto;
  transition:transform .7s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}

#challenge #sample .imagesample button:hover img,
#challenge #sample .imagesample button:focus-visible img{
  transform:scale(1.06);
  filter:brightness(1.12);
}

#challenge .sample-modal{
  box-sizing:border-box;
  width:min(100% - 48px, 1180px);
  max-height:calc(100svh - 48px);
  margin:auto;
  padding:0 !important;
  overflow:hidden !important;
  border:none !important;
  outline:none;
  box-shadow:none;
  background:transparent;

}


#challenge .sample-modal::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}

#challenge .sample-modal::backdrop{
  background:rgba(0,0,0,0);
  backdrop-filter:blur(0);
  transition:
    background .45s ease,
    backdrop-filter .45s ease;
}

#challenge .sample-modal.is-active::backdrop{
  background:rgba(0,0,0,.84);
  backdrop-filter:blur(8px);
}

#challenge .sample-modal__panel{
  box-sizing:border-box;
  max-height:calc(100svh - 48px);
  padding:clamp(24px, 4vw, 56px);
  background:#333;
  color:#fff;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:none;
}

#challenge .sample-modal__panel::-webkit-scrollbar{
  display:none !important;
  width:0 !important;
  height:0 !important;
}

/* カスタムスクロールバー */
#challenge .sample-modal{
    position:fixed;
    inset:0;
    height:fit-content;
    margin:auto;
}

#challenge .sample-modal__scrollbar{
  position:absolute;
  top:60px;
  right:12px;
  bottom:18px;
  z-index:5;
  width:3px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  opacity:0;
  transition:opacity .3s ease;
  pointer-events:none;
}

#challenge .sample-modal__panel.is-scrollable
+ .sample-modal__scrollbar{
  opacity:1;
}

#challenge .sample-modal__scrollbar-thumb{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  min-height:30px;
  border-radius:inherit;
  background:rgba(255,255,255,.72);
}

#challenge .sample-modal__panel::-webkit-scrollbar-thumb{
  border:2px solid #333;
  border-radius:999px;
  background:rgba(255,255,255,.48);
}

#challenge .sample-modal__panel::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,.78);
}

#challenge .sample-modal__close{
  position:absolute;
  top:18px;
  right:20px;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  background:none;
  color:#fff;
  cursor:pointer;
  z-index:10;
}

#challenge .sample-modal__close::before,
#challenge .sample-modal__close::after{
  position:absolute;
  top:50%;
  left:50%;
  width:26px;
  height:1px;
  background:currentColor;
  content:"";
  transform-origin:center;
}

#challenge .sample-modal__close::before{
  transform:translate(-50%, -50%) rotate(45deg);
}

#challenge .sample-modal__close::after{
  transform:translate(-50%, -50%) rotate(-45deg);
}

#challenge .sample-modal__body .sampleimgbox{
  display:grid;
  grid-template-columns:minmax(0, 1.45fr) minmax(250px, .55fr);
  gap:clamp(28px, 5vw, 76px);
  align-items:center;
}

#challenge .sample-modal__body .sample-img img{
  display:block;
  width:100%;
  height:auto;
}

#challenge .sample-modal__body .sample-cm{
  margin:1vw 0 0 0;
  color:#fff;
  text-align:left;
}

#challenge .sample-modal__body .sample-img img,
#challenge .sample-modal__body .sample-cm,
#challenge .sample-modal__close{
  will-change:transform, opacity, filter;
}

#challenge .sample-modal__body .sample-cm dt,
#challenge .sample-modal__body .sample-cm dd{
  text-align:left;
  font-family:
    "Noto Serif JP",
    serif;
}

#challenge .sample-modal__body .sample-cm dt{
  margin:0 0 .8em;
  font-size:clamp(1.1rem, 1.6vw, 1.55rem);
  color:#fff;
  font-weight:600;
}

#challenge .sample-modal__body .sample-cm dd{
  margin:0;
  font-size:clamp(.95rem, 1.2vw, 1.15rem);
  line-height:2;
  color:rgba(255,255,255,.9);
  font-weight:400;
}

@media screen and (max-width:999px){
  #challenge .sample-modal__panel{
    padding-top:72px;
  }

  #challenge .sample-modal__close{
    top:18px;
    right:20px;
  }
}

@media screen and (max-width:767px){
  #challenge #sample .inner{
    width:min(100% - 32px, 1280px);
  }

  #challenge #sample .imagesample{
    grid-template-columns:1fr;
    gap:16px;
  }

  #challenge .sample-modal{
    width:calc(100% - 24px);
    max-height:calc(100svh - 24px);
    overflow:hidden;
  }

  #challenge .sample-modal__panel{
    max-height:calc(100svh - 24px);
    padding:20px;
    overflow-x:hidden;
    overflow-y:auto;
  }

  #challenge .sample-modal__body .sampleimgbox{
    display:block;
  }

  #challenge .sample-modal__body .sample-cm{
    margin-top:24px;
  }

  #challenge .sample-modal__panel{
    padding:60px 20px 28px;
  }
}

/* --comp---------------- */
#challenge #comp{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(90px, 10vw, 160px) 0;
  background: #fff;
  color: #000;
}

#challenge #comp .comp-bg {
  position: absolute;
  z-index: 0;
  top: 8%;
  right: -3%;
  width: min(24vw, 420px);
  pointer-events: none;
}

#challenge #comp .comp-bg img {
  display: block;
  width: 100%;
  height: auto;
}

#challenge #comp .inner {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1180px);
}

#challenge #comp .comp-visual {
  position: relative;
  margin: clamp(40px, 6vw, 80px) auto 0;
  padding: clamp(100px, 12vw, 170px) 0 clamp(170px, 18vw, 250px);
}

#challenge #comp .lens-diagram {
  overflow: visible;
}

#challenge #comp svg {
  display: block;
  width: min(72%, 860px);
  height: auto;
  margin: 0 auto;
  overflow: visible;
}

#challenge #comp .st0 {
  fill: #557083;
}

#challenge #comp .st1,
#challenge #comp .st2 {
  fill: none;
  stroke: #557083;
  stroke-miterlimit: 10;
}

#challenge #comp .st2 {
  stroke-dasharray: 5 14 25 14;
}

#challenge #comp .st3 {
  fill: #fff;
  stroke: #557083;
  stroke-width: .7978616px;
  stroke-miterlimit: 10;
}

#challenge #comp .st4 {
  fill: #fff;
}

#challenge #comp .comp-visual .st3{
  stroke-width: .7978616px;
}

#challenge #comp .callout-dot {
  fill: #fff;
  stroke: #557083;
  stroke-width: 1.5px;
}

#challenge #comp .comp-text {
  position: absolute;
  width: min(28%, 310px);
  color: #557083;
}

#challenge #comp #text-g01 {
  left: clamp(240px, 27%, 380px);
  bottom: clamp(200px, 20vw, 280px);
}

#challenge #comp #text-g08 {
  right: clamp(50px, 5vw, 80px);
  bottom: clamp(200px, 20vw, 280px);
}

#challenge #comp #text-g10 {
  top: clamp(-5px, -1vw, 45px);
  left: 48%;
}

#challenge #comp .comp-text h3 {
  margin: 0 0 .55em;
  font-size: clamp(1.1rem, 1.8vw, 1.75rem);
  font-weight: 700;
  color:#557083;
  text-align:left;
}

#challenge #comp .comp-text dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .25em .45em;
  margin: 0;
  font-size: clamp(.95rem, 1.55vw, 1.5rem);
  line-height: 1.6;
}

#challenge #comp .comp-text dt,
#challenge #comp .comp-text dd {
  margin: 0;
  text-align:left;
}


@media screen and (max-width: 767px) {
  #challenge #comp{
    min-height:100svh;
    padding:0;
  }

  #challenge #comp .inner{
    box-sizing:border-box;
    display:block;
    flex-direction:column;
    width:min(100% - 32px, 1180px);
    min-height:0;
    padding:32px 0 0;
  }

  #challenge #comp h2{
    position:relative;
    z-index:2;
    margin:0;
    text-align:center;
  }

  /* 背景設計図は中央に小さく */
  #challenge #comp .comp-bg{
    top:0;
    right:auto;
    left:0;
    width:32vw;
    margin:0;
    opacity:.2;
  }

  #challenge #comp .comp-visual{
    flex:none;
    height:clamp(400px, 148vw, 920px);
    min-height:0;
    margin:0;
    padding:0;
  }

  /* 図を中央へ配置 */
  #challenge #comp svg{
    position:absolute;
    top:50%;
    left:50%;
    width:100%;
    margin:0;
    transform:translate(-50%, -50%);
  }

  /* PCと同じく、図の周囲に説明を置く */
  #challenge #comp .comp-text{
    position:absolute;
    width:48%;
    margin:0;
  }

  /* SVG上端より少し上。G10のコールアウト先に合わせる */
  #challenge #comp #text-g10{
    top:calc(50% - 52vw);
    left:48%;
  }

  /* SVG下端より少し下。G01・G08のコールアウト先に合わせる */
  #challenge #comp #text-g01{
    top:calc(50% + 12vw);
    bottom:auto;
    left:15vw;
  }

  #challenge #comp #text-g08{
    top:calc(50% + 12vw);
    left:65vw;
    right:auto;
    bottom:auto;
  }

  #challenge #comp .comp-text h3{
    margin-bottom:.4em;
    font-size:clamp(.66rem, 3.5vw, 1.45rem);
    line-height:1.35;
  }

  #challenge #comp .comp-text dl{
    gap:.15em .35em;
    font-size:clamp(.55rem, 3.2vw, 1.1rem);
    line-height:1.2;
  }
}



/* --technical---------------- */

#challenge #technical{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(90px, 10vw, 160px) 0;
  background: #333;
  color: #fff;
}

#challenge #technical .technical-bg {
  position: absolute;
  z-index: 0;
  top: 0;
  right: -5vw;
  width: min(32vw, 520px);
  pointer-events: none;
}

#challenge #technical .technical-bg img {
  display: block;
  width: 100%;
  height: auto;
}

#challenge #technical .inner {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1180px);
}

#challenge #technical .technical-bx{
  display: flex;
  align-items: center;
  gap: clamp(36px, 6vw, 100px);
  padding: clamp(70px, 5vw, 80px) 0;
}

#challenge #technical .technical-bx:nth-child(even){
  flex-direction: row-reverse;
}

#challenge #technical .technical-info,
#challenge #technical .technical-img {
  width: 50%;
}

#challenge #technical .technical-bx .technical-info h3{
  margin: 0 0 1em;
  font-size: clamp(1.35rem, 2vw, 2.2rem);
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
}

#challenge #technical .technical-bx .technical-info .lead{
  margin: 0;
  font-size: clamp(.95rem, 1.25vw, 1.35rem);
  line-height: 2;
  text-align: left;
}


#challenge #technical .technical-img {
  overflow: hidden;
}

#challenge #technical .technical-img img {
  display: block;
  width: 100%;
  height: auto;
  will-change: transform, filter;
}

@media screen and (max-width: 767px) {
  #challenge #technical {
    padding: 72px 0;
  }

  #challenge #technical .inner {
    width: min(100% - 32px, 1180px);
  }

  #challenge #technical .technical-bg {
    top: 2%;
    right: -22%;
    width: 62vw;
    opacity: .35;
  }

  #challenge #technical .technical-bx,
  #challenge #technical .technical-bx:nth-child(even) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
    padding: 56px 0;
  }

  #challenge #technical .technical-info,
  #challenge #technical .technical-img {
    width: 100%;
  }

  #challenge #technical .technical-info h3 {
    font-size: 1.3rem;
  }

  #challenge #technical .technical-info .lead {
    font-size: .9rem;
    line-height: 1.9;
  }
}


/* --prologue---------------- */

#challenge #prologue{

}

/* --prlg-header---------------- */
#challenge #prologue #prlg-header{
  position:relative;
  overflow:hidden;
  min-height:100svh;
  padding:clamp(56px, 6vw, 96px) 0 clamp(40px, 5vw, 72px);
  background:#fff;
  color:#1f1f1f;
  box-sizing:border-box;
}

#challenge #prologue #prlg-header .inner{
  position:relative;
  width:min(100% - 48px, 1440px);
  margin:0 auto;
}

#challenge #prologue #prlg-header h2{
  position:relative;
  z-index:1;
  margin:0;
  text-align:center;
}

#challenge #prologue #prlg-header .subtl{
  margin-bottom:.7em;
  font-size:clamp(1rem, 5vw, 1.8rem);
  font-weight:900;
  display:block;
}

#challenge #prologue #prlg-header .spv{
  display:none;
}

#challenge #prologue #prlg-header .mtl{
  font-size:clamp(2.2rem, 4.7vw, 4.5rem);
  font-weight:900;
  line-height:1.2;
  letter-spacing:.04em;
  display:block;
}

#challenge #prologue #prlg-header .txsm{
  margin:0 .1em;
  font-size:.62em;
  font-weight:900;
}

#challenge #prologue #prlg-header .subld{
  margin-top:1.2em;
  font-size:clamp(.9rem, 2.5vw, 2.2rem);
  font-weight:700;
}

#challenge #prologue #prlg-header .prlg-lens-strip{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:clamp(8px, 1vw, 18px);
  width:min(100%, 1320px);
  margin-top:clamp(28px, 4vw, 56px);
  margin-left:auto;
  margin-right:auto;
}

#challenge #prologue #prlg-header .lens-view{
  display:block;
  box-sizing:border-box;
  aspect-ratio:1838 / 1568;
  background-image:url(../images/challenge/prlg_header_img_pc.webp);
  background-repeat:no-repeat;
  background-size:400% 100%;
  border:0;
  transform-origin:center bottom;
  will-change:transform, opacity;
}

#challenge #prologue #prlg-header .view-1{
  background-position:0 0;
}

#challenge #prologue #prlg-header .view-2{
  background-position:31.9% 0;
}

#challenge #prologue #prlg-header .view-3{
  background-position:65.3% 0;
}

#challenge #prologue #prlg-header .view-4{
  background-position:99% 0;
}

#challenge #prologue #prlg-header .prlg-header-img{
  display:none;
}

@media screen and (max-width: 767px){
  #challenge #prologue #prlg-header{
    min-height:auto;
    padding:64px 0 48px;
  }

  #challenge #prologue #prlg-header .inner{
    width:min(100% - 32px, 1440px);
  }

  #challenge #prologue #prlg-header .mtl{
    line-height:1.3;
    letter-spacing:0;
  }

  #challenge #prologue #prlg-header .spv{
    display:block;
  }


  #challenge #prologue #prlg-header .subld{
    font-size:.78rem;
    line-height:1.8;
  }

  #challenge #prologue #prlg-header .lens-view{
    background-image:url(../images/challenge/prlg_header_img_sp.webp);
    background-repeat:no-repeat;
    background-size:400% 100%;
  }

  #challenge #prologue #prlg-header .prlg-lens-strip{
    display:none;
  }

  #challenge #prologue #prlg-header .prlg-header-img{
    display:block;
    margin-top:42px;
  }

  #challenge #prologue #prlg-header .prlg-header-img img{
    display:block;
    width:100%;
    height:auto;
  }
}



#challenge #prologue h3{
  font-size:clamp(2rem, 3.5vw, 3.5rem);
  font-weight:800;
  color:#000000;
  text-align:left;
  position:relative;
  z-index:1;
  padding-left:5vw;
}

#challenge #prologue #prlg00 h3::before{
  content:"00";
  font-size:clamp(5rem, 10vw, 10rem);
  font-weight:900;
  color:#e3e3e3;
  text-align:left;
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
}

#challenge #prologue #prlg01 h3::before{
  content:"01";
  font-size:clamp(5rem, 10vw, 10rem);
  font-weight:900;
  color:#e3e3e3;
  text-align:left;
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
}

#challenge #prologue #prlg02 h3::before{
  content:"02";
  font-size:clamp(5rem, 10vw, 10rem);
  font-weight:900;
  color:#e3e3e3;
  text-align:left;
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
}

#challenge #prologue #prlg03 h3::before{
  content:"03";
  font-size:clamp(5rem, 10vw, 10rem);
  font-weight:900;
  color:#e3e3e3;
  text-align:left;
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
}

#challenge #prologue p.nmtx{
  font-size:clamp(.95rem, 1.5vw, 1.2rem);
  line-height:1.8;
  text-align:left;
  color:#000000;
  font-weight:500;
  padding:clamp(15px, 2vw, 32px) 0;
}

#challenge #prologue p.nmtx .pcv{
  display:block;
}

@media screen and (max-width:767px){
  #challenge #prologue p.nmtx .pcv{
    display:none;
  }
}


/* --prlg00---------------- */

#challenge #prologue #prlg00{
  position:relative;
  overflow:hidden;
  padding:clamp(40px, 5vw, 76px) 0 0;
  background:#f7f7f7;
  color:#1f1f1f;
}

#challenge #prologue #prlg00 > .inner{
  width:min(100% - 48px, 1180px);
  margin:0 auto;
}

#challenge #prologue #prlg00 h3{
  isolation:isolate;
  position:relative;
  margin:0;
  padding-left:0;
  font-size:clamp(2.5rem, 4.8vw, 5rem);
  line-height:1;
  letter-spacing:.08em;
  font-weight:900;
}

#challenge #prologue #prlg00 h3::before{
  top:58%;
  left:auto;
  right:-.08em;
  color:#dedede;
  font-size:clamp(9rem, 20vw, 19rem);
  font-weight:900;
  line-height:.7;
  transform:translateY(-50%);
}

#challenge #prologue #prlg00 .wrapper{
  width:min(100%, 850px);
  margin-top:clamp(32px, 4vw, 56px);
  padding-bottom:clamp(64px, 8vw, 110px);
}

#challenge #prologue #prlg00 p.nmtx{
  margin:0;
  padding:clamp(15px, 2vw, 32px) 0;
  font-size:clamp(.95rem, 1.45vw, 1.2rem);
  font-weight:500;
  line-height:2;
}

#challenge #prologue #prlg00 .wrapper p.nmtx:first-child{
  padding-top:0;
  font-size:clamp(.95rem, 1.8vw, 1.4rem);
  font-weight:800;
  line-height:1.8;
}

#challenge #prologue #prlg00 .wrapper .is-climax{
  position:relative;
  margin-top:clamp(10px, 2vw, 24px);
  padding-top:clamp(24px, 3vw, 40px);
}

#challenge #prologue #prlg00 .wrapper .is-climax::before{
  display:none;
}

#challenge #prologue #prlg00 .hosoku{
  position:relative;
  padding:clamp(74px, 9vw, 130px) 0;
  background:#fff;
}

#challenge #prologue #prlg00 .hosoku > .inner{
  width:min(100% - 48px, 1180px);
  margin:0 auto;
}

#challenge #prologue #prlg00 .hosoku-in{
  box-sizing:border-box;
  width:min(100%, 900px);
  margin:0 auto;
  padding:clamp(80px, 8vw, 120px) clamp(28px, 7vw, 100px) clamp(40px, 5vw, 70px);
  background:#515151;
  overflow:visible;
}

#challenge #prologue #prlg00 .hosoku-in p.nmtx{
  color:#fff;
}

#challenge #prologue #prlg00 .hosoku-in p.nmtx:first-of-type{
  font-size:clamp(1.2rem, 1.8vw, 1.65rem);
  font-weight:800;
}

#challenge #prologue #prlg00 .hosoku-in .prlg-hosoku-img{
  position:absolute;
  top:clamp(-74px, -5vw, -42px);
  right:clamp(20px, 4vw, 64px);
  left:auto;
  z-index:2;
  width:clamp(145px, 19vw, 250px);
  margin:0;
}

#challenge #prologue #prlg00 .hosoku-in .prlg-hosoku-img img{
  display:block;
  width:100%;
  height:auto;
}

@media screen and (max-width:767px){
  #challenge #prologue #prlg00{
    padding-top:48px;
  }

  #challenge #prologue #prlg00 > .inner,
  #challenge #prologue #prlg00 .hosoku > .inner{
    width:min(100% - 32px, 1180px);
  }


  #challenge #prologue #prlg00 h3::before{
    right:-.05em;
    font-size:9rem;
  }


  #challenge #prologue #prlg00 .hosoku-in{
    padding:74px 24px 30px;
  }

  #challenge #prologue #prlg00 .hosoku-in .prlg-hosoku-img{
    top:-56px;
    right:16px;
    left:auto;
  }
}

#challenge #prologue #prlg01,
#challenge #prologue #prlg02,
#challenge #prologue #prlg03{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(80px, 9vw, 140px) 0;
  background-image:none;
}

#challenge #prologue #prlg01{
  background-color:#edf0f1;
}

#challenge #prologue #prlg02{
  background-color:#fff;
}

#challenge #prologue #prlg03{
  background-color:#f2f2ef;
}

#challenge #prologue #prlg01 h3,
#challenge #prologue #prlg02 h3,
#challenge #prologue #prlg03 h3{
  isolation:isolate;
  padding-left:0;
  font-size:clamp(2.5rem, 4.8vw, 5rem);
  line-height:1;
  letter-spacing:.08em;
}

#challenge #prologue #prlg01 h3::before,
#challenge #prologue #prlg02 h3::before,
#challenge #prologue #prlg03 h3::before{
  top:58%;
  right:-.08em;
  left:auto;
  z-index:-1;
  color:#dedede;
  font-size:clamp(9rem, 20vw, 19rem);
  font-weight:900;
  line-height:.7;
  transform:translateY(-50%);
}

#challenge #prologue #prlg01 .inner,
#challenge #prologue #prlg02 .inner,
#challenge #prologue #prlg03 .inner{
  position:relative;
  z-index:1;
  width:min(100% - 48px, 1180px);
  margin:0 auto;
}

#challenge #prologue #prlg01 .wrapper,
#challenge #prologue #prlg02 .wrapper,
#challenge #prologue #prlg03 .wrapper{
  width:min(100%, 850px);
  margin:clamp(42px, 5vw, 76px) auto 0;
}

#challenge #prologue #prlg01 .prlg-bg,
#challenge #prologue #prlg03 .prlg-bg{
  position:absolute;
  z-index:0;
  top:clamp(-60px, -4vw, -20px);
  right:clamp(-90px, -6vw, -32px);
  width:min(84vw, 1360px);
  height:auto;
  pointer-events:none;
  opacity:.62;
  mix-blend-mode:normal;
  -webkit-mask-image:linear-gradient(
    90deg,
    transparent 0%,
    rgba(0,0,0,.35) 18%,
    #000 42%,
    #000 100%
  );
  mask-image:linear-gradient(
    90deg,
    transparent 0%,
    rgba(0,0,0,.35) 18%,
    #000 42%,
    #000 100%
  );
}

#challenge #prologue #prlg01 .prlg-bg::after,
#challenge #prologue #prlg03 .prlg-bg::after{
  display:none;
}

#challenge #prologue #prlg01 .prlg-bg{
  color:#edf0f1;
}

#challenge #prologue #prlg03 .prlg-bg{
  color:#f2f2ef;
}

#challenge #prologue #prlg01 .prlg-bg img,
#challenge #prologue #prlg03 .prlg-bg img{
  display:block;
  width:100%;
  height:auto;
  object-fit:initial;
  object-position:right top;
}

#challenge #prologue #prlg01 .prlg-bg::after,
#challenge #prologue #prlg03 .prlg-bg::after{
  background:linear-gradient(
    90deg,
    currentColor 0%,
    currentColor 26%,
    rgba(255,255,255,0) 65%
  );
}

#challenge #prologue #prlg01 .prlg01-img,
#challenge #prologue #prlg02 .prlg02-img,
#challenge #prologue #prlg03 .prlg03-img{
  position:relative;
  z-index:1;
  width:min(100%, 850px);
  margin:clamp(45px, 6vw, 85px) auto 0;
  overflow:hidden;
}

#challenge #prologue #prlg01 .prlg01-img img,
#challenge #prologue #prlg02 .prlg02-img img,
#challenge #prologue #prlg03 .prlg03-img img{
  display:block;
  width:100%;
  height:auto;
}

@media screen and (max-width:767px){
  #challenge #prologue #prlg01,
  #challenge #prologue #prlg02,
  #challenge #prologue #prlg03{
    padding:72px 0;
  }

  #challenge #prologue #prlg01 .inner,
  #challenge #prologue #prlg02 .inner,
  #challenge #prologue #prlg03 .inner{
    width:min(100% - 32px, 1180px);
  }

  #challenge #prologue #prlg01 .prlg-bg,
  #challenge #prologue #prlg03 .prlg-bg{
    top:0;
    width:100%;
    height:42%;
    opacity:.3;
  }

  #challenge #prologue #prlg01 .prlg-bg::after,
  #challenge #prologue #prlg03 .prlg-bg::after{
    background:linear-gradient(180deg, transparent 30%, currentColor 100%);
  }
}

#challenge #prologue #prlg-end{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:100svh;
  background:#000;
  color:#fff;
}

#challenge #prologue #prlg-end::after{
  position:absolute;
  z-index:1;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.12) 48%, rgba(0,0,0,.75) 100%),
    linear-gradient(90deg, rgba(0,0,0,.25), transparent 55%);
  content:"";
  pointer-events:none;
}

#challenge #prologue #prlg-end .shv,
#challenge #prologue #prlg-end .spv{
  display:none;
}

#challenge #prologue #prlg-end .prlg-end-bg{
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
}

#challenge #prologue #prlg-end .prlg-end-bg img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  will-change:transform, filter;
}

#challenge #prologue #prlg-end .inner{
  position:relative;
  z-index:2;
  width:100%;
  min-height:100svh;
}

#challenge #prologue #prlg-end .endtxt01,
#challenge #prologue #prlg-end .endtxt02{
  position:absolute;
  right:24px;
  left:24px;
  margin:0;
  color:#fff;
  font-weight:800;
  line-height:1.7;
  text-align:center;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
}

#challenge #prologue #prlg-end .endtxt01{
  top:clamp(42px, 7vh, 96px);
  font-size:clamp(1.35rem, 2.4vw, 2.2rem);
  letter-spacing:.08em;
}

#challenge #prologue #prlg-end .endtxt02{
  bottom:clamp(58px, 9vh, 110px);
  font-size:clamp(1.35rem, 2.4vw, 2.2rem);
  letter-spacing:.12em;
}

@media screen and (min-width:1200px) and (max-height:820px){
  
  #challenge #prologue #prlg-end .inner{
    max-width:none;
  }
  #challenge #prologue #prlg-end .shv{
    display:block;
  }
  #challenge #prologue #prlg-end .endtxt01,
  #challenge #prologue #prlg-end .endtxt02{
    right:auto;
    left:auto;
    width:min(40vw, 700px);
    font-size:clamp(1.15rem, 1.8vw, 2rem);
    line-height:1.7;
  }
  #challenge #prologue #prlg-end .endtxt01{
    width:min(40vw, 700px);
  }
  #challenge #prologue #prlg-end .endtxt02{
    width:min(40vw, 500px);
  }

  #challenge #prologue #prlg-end .endtxt01{
    top:18%;
    bottom:auto;
    left:clamp(32px, 5vw, 240px);
    text-align:left;
  }

  #challenge #prologue #prlg-end .endtxt02{
    top:auto;
    right:clamp(32px, 12vw, 350px);
    bottom:14%;
    text-align:right;
  }
}

@media screen and (max-width:767px){
  #challenge #prologue #prlg-end,
  #challenge #prologue #prlg-end .inner{
    min-height:100svh;
  }

  #challenge #prologue #prlg-end .prlg-end-bg img{
    object-position:50% center;
  }

  #challenge #prologue #prlg-end .endtxt01{
    top:7vh;
    font-size:1.3rem;
    line-height:1.4;
  }

  #challenge #prologue #prlg-end .endtxt02{
    bottom:8vh;
    font-size:1.3rem;
    line-height:1.4;
  }

  #challenge #prologue #prlg-end .shv,
  #challenge #prologue #prlg-end .spv{
    display:block;
  }

}


/*-------------------
animation
-------------------*/

@keyframes purun {
  0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
  15%  { transform: scale(0.9, 0.9) translate(0%, 5%); }
  30%  { transform: scale(1.3, 0.8) translate(0%, 10%); }
  50%  { transform: scale(0.8, 1.3) translate(0%, -10%); }
  70%  { transform: scale(1.1, 0.9) translate(0%, 5%); }
  100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
}

@-webkit-keyframes purupuru {
      0%   { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
      20%  { -webkit-transform: scale(1.0, 1.06) translate(-5%, -4%) skew(6deg, 0deg); }
      50%  { -webkit-transform: scale(1.0, 0.94) translate(5%, 4%) skew(-6deg, 0deg); }
      65%  { -webkit-transform: scale(1.0, 1.03) translate(2%, -2%) skew(-3deg, 0deg); }
      80%  { -webkit-transform: scale(1.0, 0.97) translate(-2%, 2%) skew(3deg, 0deg); }
      100% { -webkit-transform: scale(1.0, 1.0) translate(0%, 0%); }
    }
    @keyframes purupuru {
      0%   { transform: scale(1.0, 1.0) translate(0%, 0%); }
      20%  { transform: scale(1.0, 1.06) translate(-5%, -4%) skew(6deg, 0deg); }
      50%  { transform: scale(1.0, 0.94) translate(5%, 4%) skew(-6deg, 0deg); }
      65%  { transform: scale(1.0, 1.03) translate(2%, -2%) skew(-3deg, 0deg); }
      80%  { transform: scale(1.0, 0.97) translate(-2%, 2%) skew(3deg, 0deg); }
      100% { transform: scale(1.0, 1.0) translate(0%, 0%); }
    }


@-webkit-keyframes wrapload {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  40% {
    opacity: 1;
    -webkit-transform: translate3d(0, 5%, 0);
    transform: translate3d(0, 5%, 0);
  }
  70% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  80% {
    opacity: .2;
    -webkit-transform: translate3d(0, -40%, 0);
    transform: translate3d(0, -40%, 0);
  }

  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -42%, 0);
    transform: translate3d(0, -42%, 0);
  }
}
@keyframes wrapload {
   0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  40% {
    opacity: 1;
    -webkit-transform: translate3d(0, 5%, 0);
    transform: translate3d(0, 5%, 0);
  }
  70% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  80% {
    opacity: .2;
    -webkit-transform: translate3d(0, -40%, 0);
    transform: translate3d(0, -40%, 0);
  }

  100% {
    opacity: 0;
    -webkit-transform: translate3d(0, -42%, 0);
    transform: translate3d(0, -42%, 0);
  }
}


@-webkit-keyframes movelogo {
  0% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0) scale(1, 1);
    transform: translate3d(0, 0, 0);
  }
  80% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0) scale(.6, .6);
    transform: translate3d(0, 0, 0) scale(.6, .6);
  }
  100% {
    opacity: .3;
    -webkit-transform: translate3d(0, 0, 0) scale(.6, .6);
    transform: translate3d(0, 0, 0) scale(.6, .6);
    z-index:-1;
  }
}
@keyframes movelogo {
  0% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0) scale(1, 1);
    transform: translate3d(0, 0, 0);
  }
  80% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0) scale(.6, .6);
    transform: translate3d(0, 0, 0) scale(.6, .6);
  }
  100% {
    opacity: .3;
    -webkit-transform: translate3d(0, 0, 0) scale(.6, .6);
    transform: translate3d(0, 0, 0) scale(.6, .6);
    z-index:-1;
  }
}



@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}
@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}
@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}
@keyframes fadeOutRight {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}
@-webkit-keyframes fadeOutTop {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0);
  }
}
@keyframes fadeOutTop {
  from {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0);
  }
}
@-webkit-keyframes fadeInTop {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInTop {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -10%, 0);
    transform: translate3d(0, -10%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 1;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes fadeInRight {
  from {
    opacity: 1;
    -webkit-transform: translate3d(-10%, 0, 0);
    transform: translate3d(-10%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 1;
    -webkit-transform: translate3d(-10%, 0, 0);
    transform: translate3d(-10%, 0, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes fadeInBottom {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes fadeInBottom {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 10%, 0);
    transform: translate3d(0, 10%, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}