@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
body,html{font-family:'Noto Sans JP',"Oswald",sans-serif!important;text-align:justify;text-justify:inter-ideograph;text-transform:none;font-variant:normal;word-spacing:auto;word-break:normal;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-feature-settings:"palt";}html{width:100%;font-size:62.5%;height: -webkit-fill-available;}body{background-color:#fefefe;letter-spacing:0.06em;line-height:1.4;margin:0;padding:0;width:100%;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-font-feature-settings:'palt' 1;font-feature-settings:'palt' 1;text-align:justify;text-justify:inter-ideograph;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing: grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;-o-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch;color:#242424;min-height: 100vh;}div,h1,h2,h3,h4,h5,p,ul,li,dl,dt,dd{margin:0;padding:0;}a{text-decoration:none;display: block;outline:none;-webkit-transition:all 0.3s ease 0s;transition:all 0.3s ease 0s;}a:-webkit-any-link{color:-webkit-link;text-decoration: none;cursor:pointer;display:inline;border-style:none;}a img{border-style:none;outline:none;}a:focus{border-style:none;outline:none;}a img:active{border-style:none;outline:none;}a:active{border-style:none;outline:none;}img{height: auto;max-width: 100%;display: block;}a:hover{opacity:0.5;}::selection{background-color:rgba(215,215,215,0.35);background-color:rgb(215 215 215 / 35%);}ul,ul li{list-style-type:none;}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}p{display:block;-webkit-margin-before:1em;-webkit-margin-after:1em;-webkit-margin-start:0px;-webkit-margin-end:0px;margin:0;font-size:14px;}br{line-height:1;}input[type="text"],input[type="password"],textarea,select,input[type="url"],input[type="date"],input[type=submit],input[type=file], input[type=checkbox]{outline:none;}select{-moz-appearance:none;text-indent:0.01px;text-overflow:'';}select::-ms-expand{display: none;}textarea{overflow:hidden;}[class^="icon-"],[class*="icon-"]{font-family:'icomoon';color:#ffffff;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}img[src$=".svg"]{width:100%;}svg {fill:currentColor;width:100%;}
div,h1,h2,h3,h4,h5,p,ul,li,dl,dt,dd,span,a{font-weight:500;box-sizing:border-box;}
::-webkit-scrollbar{width:10px;}::-webkit-scrollbar-track{background:#fff;border:none;border-radius:0;box-shadow:inset 0 0 1px #777;}::-webkit-scrollbar-thumb{background:#D0D0D0;border-radius:100px;box-shadow:none;}
video{max-width: 100%;width: 100%;height: auto;vertical-align: bottom;}
/*------------------------------------------------
common
------------------------------------------------*/
br.PcNone {display: none;}br.PcIpadNone {display: none;}.PcBlock{display: block!important;}.SpBlock{display: none!important;}
@media screen and (max-width: 751px) {br.PcNone {display: none;}br.PcIpadNone {display: block;}}
@media screen and (max-width: 681px) {.PcBlock{display: none!important;}.SpBlock{display: block!important;}}
@media screen and (max-width: 481px) {br.PcNone {display: block;}br.PcIpadNone {display: none;}br.SpNone {display: none;}}
img,input,svg,*:before,*:after,a,a:hover img,a:hover input,a:hover,input:hover {backface-visibility: hidden;-webkit-backface-visibility: hidden;}
img {image-rendering:-webkit-optimize-contrast;width:100%;}
/*------ Loading ------*/
.Header,.Footer,.Main {
    opacity: 0;
    visibility: hidden;
    -webkit-transition: opacity .8s ease 1s;
    transition: opacity .8s ease 1s
}
/*------ アニメーション ------*/
.js-fadeup{
  opacity:0;
  transform:translate3d(0,50px,0);
  transition-property:opacity,transform;
  transition-duration:1s;
  transition-timing-function:cubic-bezier(.25,.1,.25,1);
  transition-delay:0s; /* JSで上書きします */
  will-change:opacity,transform;
}
.js-fadeup.is-inview{
  opacity:1;
  transform:translate3d(0,0,0);
}

/*------ Header ------*/
.Header{
    background: #fff;
    position: relative;
    z-index: 999;
}
.Header .Header_Inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding-block: 15px;
    padding-inline: 40px;
}
.Header .Header_Logo a {
    display: block;
    max-width: 230px;
}
.Header .Header_Link a {
    display: block;
    max-width: 230px;
}
/*------ Contents ------*/
.Main {
    overflow: hidden;
}
.Contents .Contents_Line {
    position: relative;
}
.Contents .Contents_Inner {
    padding-inline: 60px;
    max-width: 1080px;
    margin-inline: auto;
}
.Contents h2.Contents_Title {
    width: 100%;
    max-width: 40%;
    margin-inline: auto;
}
/*------ Contents01 ------*/
#kvModalVideo{
  backface-visibility: hidden;
  transform: translateZ(0);
}
.Contents01 .Contents01_Inner {
    padding-block: 0 180px;
    position: relative;
    z-index: 1;
    max-width: 1180px;
}
.Contents01_Foot img,
.Contents01_Bg {
  position: absolute;
  will-change: transform;
  backface-visibility: hidden;
  transform: translateZ(0);
  min-height: calc(100vh + var(--parallax-range) * 2);
}
.Contents01 .Contents01_Bg {
    background-image: url(../../assets/images/top/Contents01_Bg.jpg);
    background-position: 30% 0%;
    background-size: cover;
    width: 100vw;
    height: 100svh;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -2;
    background-attachment: scroll;
    will-change: background-position, transform;
    backface-visibility: hidden;
    transform: translateZ(0);
    overflow: hidden;
}
.Contents01 .Contents01_Foot {
    position: fixed;
    top: 0;
    left: 60%;
    right: 0;
    margin-inline: auto;
    width: 200%;
    transform: translate(-50%, 0);
    z-index: -1;
    max-width: 1850px;
    background-attachment: scroll;
    will-change: background-position, transform;
    backface-visibility: hidden;
    transition: left .6s ease;
}
@media screen and (max-width: 1261px) {
  .Contents01 .Contents01_Foot {
      left: 69%;
  }
}
.Contents01 h1.Contents01_Heading {
    width: 100%;
    max-width: 94%;
    margin-inline: auto;
    margin-block: 0 -8.5%;
    position: relative;
    z-index: 2;
    pointer-events: none;
    padding-block: 40px 0;
}
.Contents01 h1.Contents01_Heading img{
    position: relative;
    transform: translate(-50%, 0);
    left: 52.5%;
}
.Contents01 .Contents01_Video {
    width: 100%;
    max-width: 100%;
}
.Contents01 .Contents01_Text {
    width: 100%;
    max-width: min(95%, 912px);
    margin-inline: auto;
    padding-block: 40px 50px;
}
.Contents01 .Contents01_Apply a {
    display: block;
    width: 45%;
    max-width: 370px;
    margin-inline: auto;
    position: relative;
    opacity: 1;
}
.Contents01 .Contents01_Apply a img {
  display: block;
  width: 100%;
  height: auto;
  filter:
    drop-shadow(0 10px 0 #4C0F13) 
    drop-shadow(0 14px 18px rgba(0,0,0,.25));
  transform: translateY(0);
  transition: transform .6s ease, filter .6s ease;
  will-change: transform, filter;
}
.Contents01 .Contents01_Apply a:hover img,
.Contents01 .Contents01_Apply a:focus-visible img {
  transform: translateY(9px);
  filter:
    drop-shadow(0 1px 0 #4C0F13)
    drop-shadow(0 6px 10px rgba(0,0,0,.2));
}
.Contents01 .Contents01_Apply a:active img {
  transform: translateY(11px);
  filter:
    drop-shadow(0 0px 0 #4C0F13)
    drop-shadow(0 4px 8px rgba(0,0,0,.18));
}
.Contents01_Video_Thumbnail { position: relative; z-index: 1; cursor: pointer; }
.Contents01_Video_Play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(0, 0, 0, .25);
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity .6s ease;
    z-index: 2;
    width: 100%;
    height: 100%;
}
.Contents01_Video_Play img{
    width: 88px;
}
.Contents01_Video_Thumbnail.is-play-hint .Contents01_Video_Play { opacity: 1!important; }
.Contents01_Video_Thumbnail:hover .Contents01_Video_Play,
.Contents01_Video_Thumbnail:focus-visible .Contents01_Video_Play {
  opacity: 1!important;
}
@media (prefers-reduced-motion: reduce){
  .Contents01_Video_Play{ transition: none; }
}
body.modal-open { overflow: hidden; }
.modal {
  position: fixed; inset: 0; z-index: 999999;
  display: grid; place-items: center;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .25s ease, visibility .25s step-end;
}
.modal.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .25s ease; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.modal__dialog {
  position: relative; width: min(92vw, 960px); aspect-ratio: 16/9;box-shadow: 0 10px 30px rgba(0,0,0,.35);
}
.modal__player, #kvModalVideo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 12px;
    overflow: clip;
}
.modal__close {
    position: absolute;
    top: -45px;
    right: 10px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .5);
    color: #fff;
    font-size: 24px;
    cursor: pointer;
    z-index: 2;
    padding-block: 2px 0;
}
.modal__close:hover { background: rgba(0,0,0,.7); }
.modal__close.is-hidden { opacity: 0; pointer-events: none; }
.modal__mute {
    position: absolute;
    top: -42px;
    left: 10px;
    border: none;
    color: #fff;
    font-size: 26px;
    cursor: pointer;
    opacity: 1;
    display: flex;
    max-width: 95px;
    gap: 12px;
    background: rgba(0, 0, 0, .7);
    padding-block: 7px;
    padding-inline: 20px;
    border-radius: 100px;
}
.modal__mute .mute__on,
.modal__mute .mute__off {
  line-height: 1;
  opacity: .5;
  transition: opacity .2s ease;
}
.modal__mute:not(.is-muted) .mute__on { opacity: 1; }
.modal__mute:not(.is-muted) .mute__off { opacity: .5; }
.modal__mute.is-muted .mute__on { opacity: .5; }
.modal__mute.is-muted .mute__off { opacity: 1; }
/*------ Contents02 ------*/
.Contents02 {
    background: #000000;
}
.Contents02 .Contents02_Line {
    background: #000000;
}
.Contents02 .Contents02_Inner {
    padding-block: 60px 120px;
}
.Contents02 .Contents02_Frame {
    position: absolute;
    left: 0;
    right: 0;
    top: -70px;
    width: 2010px;
}
@media screen and (min-width: 1921px) {
  .Contents02 .Contents02_Frame {
      top: -3vw;
      width: 100vw;
  }
}
@media screen and (max-width: 1051px) {
  .Contents02 .Contents02_Frame {
      width: 200%;
      top: -13%;
  }
}
.Contents02 .Contents02_Text {
    width: 100%;
    max-width: 88%;
    margin-inline: auto;
}
/*------ Contents03 ------*/
.Contents03 {
    background: #08070d;
}
.Contents03 .Contents03_Line {
  background-image: url(../../assets/images/top/Contents03_Bg.jpg);
  background-position: 50% 100%;
  background-repeat: no-repeat;
  background-size: cover;
}
@media screen and (min-width: 1051px) {
  .Contents03 .Contents03_Line {
      background-size: cover;
  }
}
.Contents03 .Contents03_Inner {
    padding-block: 120px 220px;
}
.Contents03 .Contents03_Heading {
    margin-block: 0 90px;
}
.Contents03 .Contents03_Characters_List {
    margin-block: 90px 0;
    display: flex;
    flex-flow: column;
    gap: 60px;
    max-width: 680px;
    margin-inline: auto;
}
/*------ Contents04 ------*/
.Contents04 {
    background: #000000;
}
.Contents04 .Contents04_Line {
    background: #000000;
    position: relative;
    z-index: 1;
}
.Contents04 .Contents04_Line:after {
    content: "";
    background-image: url(../../assets/images/top/Contents04_Bg.jpg);
    background-repeat: no-repeat;
    background-position: 50% 100%;
    background-size: 3550px;
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: -1;
}
.Contents04 .Contents04_Inner {
    padding-block: 60px 180px;
}
.Contents04 .Contents04_Main {
    transition-delay: 0s;
    max-width: 860px;
    margin-inline: auto;
}
.Contents05 .Contents05_Inner {
    padding-block: 150px 200px;
}
.Contents05 .Contents05_Archive_List {
    padding-block: 100px 0;
    display: flex;
    flex-flow: column;
    gap: 120px;
    max-width: 900px;
    margin-inline: auto;
}
.Contents05 .Contents05_Archive_List_Box_Name {
    width: auto;
}
.Contents05 .Contents05_Archive_List_Box_Name {
    margin-block: 0 50px;
}
.Contents05 .Contents05_Archive_List_Box_Name img {
    width: auto;
    max-height: 75px;
    margin-inline: auto;
    max-width: 70%;
}
.Contents05 .Contents05_Archive_List_Box_Thumbnail a {
    display: block;
    width: 100%;
    max-width: 95%;
    margin-inline: auto;
    opacity: 1;
    will-change: transform;
    -webkit-transition: transform 1s 
cubic-bezier(.47, .16, .24, 1);
    transition: transform 1s 
cubic-bezier(.47, .16, .24, 1);   
}
.Contents05 .Contents05_Archive_List_Box_Thumbnail a:hover{
transform: scale(0.98)
}
.Contents05 .Contents05_Line {
    background: #fff;
}
.Contents06 .Contents06_Line {
    background: #fff;
}
.Contents06 .Contents06_Author_List {
    padding-block: 100px 0;
    display: flex;
    gap: 50px;
    justify-content: space-between;
    max-width: 900px;
    margin-inline: auto;
}
.Contents06 .Contents06_Author_List .Contents06_Author_List_Box{
    width: calc(100% / 2);
    max-width: 350px;
}
.Contents06 .Contents06_Author_List_Box_Photo {
    max-width: 220px;
    margin-inline: auto;
    margin-block: 0 50px;
}
.Contents06 .Contents06_Author_List_Box_Text_Area {
    margin-block: 0 30px;
}
.Contents06 .Contents06_Author_List_Box_Text_Area:last-of-type {
    margin-block: 0 0;
}
.Contents06 .Contents06_Author_List_Box_Text_Area .Label {
    font-size: 1.8rem;
    text-align: center;
    font-weight: 700;
    margin-block: 0 15px;
}
.Contents06 .Contents06_Author_List_Box_Text_Area .Text {
    font-size: 1.6rem;
    line-height: 1.8;
}
.Footer  {
    background: #fff;
}
.Footer .Footer_Inner {
    padding-block: 150px 0;
    padding-inline: 50px;
}
.Footer .Footer_Logo {
    margin-block: 0 50px;
}
.Footer .Footer_Logo a {
    display: block;
    max-width: 320px;
    margin-inline: auto;
}
.Footer .Footer_Link {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    max-width: 740px;
    margin-inline: auto;
    justify-content: start;
    align-content: start;
}
.Footer .Footer_Link li a{
    display: block;
}
.Footer .Footer_Copy {
    text-align: center;
    font-size: 1.9rem;
    font-weight: 700;
    margin-block: 120px 60px;
}
.Footer .Siteinfo {
    padding-block: 30px;
    font-size: 1.4rem;
    padding-inline: 50px;
    text-align: right;
    border-top: solid 1px #AAAAAA;
}
@media screen and (max-width: 981px) {
  .Header .Header_Inner,.Footer .Footer_Inner {
      padding-inline: 20px;
  }
  .Contents .Contents_Inner {
      padding-inline: 40px;
  }
  .Contents01 .Contents01_Inner {
      padding-block: 0 140px;
  }
  .Contents01 h1.Contents01_Heading {
      padding-block: 40px 0;
  }
  .Contents01 .Contents01_Text {
      padding-block: 30px 30px;
  }
  .Contents01 .Contents01_Text,.Contents01 .Contents01_Apply  {
      opacity: 1;
      transform: translate3d(0, 0, 0);
  }
  .Contents01 .Contents01_Foot {
      left: 80%;
      top: -3%;
      transform: translate(-50%, 0) rotate(10deg);
      transform-origin: center;
      width: 180%;
  }
  .Contents03 .Contents03_Inner {
      padding-block: 80px 120px;
  }
  .Contents03 .Contents03_Heading {
      margin-block: 0 60px;
  }
  .Contents03 .Contents03_Characters_List {
      margin-block: 60px 0;
      gap: 60px;
  }
  .Contents04 .Contents04_Line:after {
      background-size: 337%;
      bottom: 0;
  }
  .Contents04 .Contents04_Inner {
      padding-block: 50px 80px;
  }
  .Contents05 .Contents05_Inner {
      padding-block: 100px 120px;
  }
  .Contents05 .Contents05_Archive_List {
      padding-block: 80px 0;
      gap: 80px;
  }
  .Contents05 .Contents05_Archive_List_Box_Name {
      margin-block: 0 40px;
  }
  .Contents06 .Contents06_Author_List {
      padding-block: 80px 0;
      gap: 40px;
  }
}
@media screen and (max-width: 767px) {
  .Contents02 .Contents02_Line,.Contents02 .Contents02_Text {
      opacity: 1;
      transform: translate3d(0, 0, 0);
  }
  .Header .Header_Inner, .Footer .Footer_Inner {
      padding-inline: 10px;
      padding-block: 12px;
  }
  .Header .Header_Logo a {
      max-width: 150px;
  }
  .Header .Header_Link a {
      max-width: 160px;
  }
  .Contents01 .Contents01_Line {
      min-height: 60vh !important;
  }
  .Contents .Contents_Inner {
      padding-inline: 20px;
  }
  .Contents01 .Contents01_Inner {
      padding-block: 0 40px;
  }
  .Contents01 h1.Contents01_Heading {
      padding-block: 12px 0;
      width: calc(100% + 40px);
      max-width: calc(94% + 40px);
      transform: translate(-50%, 0);
      left: 50%;
      margin-block: 0 -9.7%;
  }
  .Contents01 .Contents01_Video {
      width: calc(100% + 40px);
      max-width: calc(100% + 40px);
      transform: translate(-50%, 0);
      position: relative;
      left: 50%;
  }
  .Contents01 .Contents01_Text {
      padding-block: 10px 15px;
      max-width: 100%;
  }
  .Contents01 .Contents01_Apply a {
      max-width: 51%;
  }
  .Contents01 .Contents01_Apply a img {
      filter: drop-shadow(0 5px 0 #4C0F13) drop-shadow(0 7px 9px rgba(0, 0, 0, .25));
  }
  .Contents01 .Contents01_Video_Play img {
      width: 62px;
  }
  .Contents01 .Contents01_Video_Note {
      width: 130%;
      position: relative;
      left: -33%;
      padding-block: 3px 0;
  }
  .modal__dialog {
      width: min(100vw, 960px);
  }
  .modal__player, #kvModalVideo {
      border-radius: 0;
  }
  .Contents02 .Contents02_Inner {
      padding-block: 30px 40px;
  }
  .Contents02 .Contents02_Frame {
      top: -8%;
  }
  .Contents02 .Contents02_Text {
      max-width: 95%;
  }
  .Contents03 .Contents03_Inner {
      padding-block: 40px 50px;
  }
  .Contents03 .Contents03_Heading {
      margin-block: 0 25px;
  }
  .Contents03 .Contents03_Characters_List {
      margin-block: 30px 0;
      gap: 20px;
  }
  .Contents04 .Contents04_Inner {
      padding-block: 20px 60px;
  }
  .Contents04 .Contents04_Line:after {
      background-size: 358%;
      bottom: 0;
  }
  .Contents05 .Contents05_Inner {
      padding-block: 60px 60px;
  }
  .Contents05 .Contents05_Archive_List {
      padding-block: 30px 0;
      gap: 40px;
  }
  .Contents05 .Contents05_Archive_List_Box_Name {
      margin-block: 0 20px;
  }
  .Contents05 .Contents05_Archive_List_Box_Name img {
      max-width: 65%;
  }
  .Contents06 .Contents06_Author_List {
      padding-block: 40px 0;
      gap: 60px;
      flex-flow: column;
  }
  .Contents06 .Contents06_Author_List .Contents06_Author_List_Box {
      width: 100%;
      max-width: 350px;
      margin-inline: auto;
  }
  .Contents06 .Contents06_Author_List_Box_Photo {
      max-width: 198px;
      margin-block: 0 30px;
  }
  .Contents06 .Contents06_Inner {
      padding-block: 0 60px;
  }
  .Footer .Footer_Logo {
      margin-block: 0 30px;
  }
  .Footer .Footer_Logo a {
      max-width: 260px;
  }
  .Footer .Footer_Link {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      max-width: 510px;
      padding-inline: 10px;
  }
  .Footer .Siteinfo {
      padding-inline: 20px;
  }
  .Footer .Footer_Copy {
      margin-block: 100px 40px;
  }
}
@media screen and (max-width: 481px) {
  .Contents01 .Contents01_Bg {
      height: calc(100svh + 80px);
      top: -80px;
  }
  .modal__close {
      padding-block: 0 2px;
  }
  .Contents05 .Contents05_Archive_List_Box_Name img {
      max-width: 74%;
      max-height: 26px;
  }
  .Contents03 .Contents03_Line.is-parallax {
    position: relative;
    isolation: isolate;
    overflow: clip;
    min-height: min(90svh, 1000px);
    will-change: transform; 
    backface-visibility: hidden;
    --_ty: 0px;
    --_scale: 1.15;
  }
  .Contents03 .Contents03_Line.is-parallax:before {
    content: "";
    position: absolute;
    inset: -10%;
    z-index: -1;
    background-image: inherit;
    background-position: inherit;
    background-repeat: inherit;
    background-size: inherit;
    transform: translate3d(0, var(--_ty), 0) scale(var(--_scale));
    will-change: transform; 
    backface-visibility: hidden;
  }
}