@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;600;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');


html,
body,
a,
p,
ul,
li,
h1,
.content-ttl,
h3,
h4,
h5,
h6,
figure,
dl,
dt,
dd {
  margin: 0;
  padding: 0;
}

* {
  box-sizing: border-box;
  outline: none;
  color: #fff;
  letter-spacing: 0.02em;
  font-weight: 400;
  font-family: "Poppins", YakuHanJP_Noto, "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;

  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  tap-highlight-color: rgba(0, 0, 0, 0);
}


.youtube {
  position: relative;
  padding-top: 56.25%;
  width: 100%;
}

.youtube iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}


.sp {
  display: none;
}


@media screen and (max-width: 896px) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }
}






canvas {
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
  opacity: .7;
  pointer-events: none;
}


.logo {
  margin-right: auto;
  width: 180px;
    transition-duration: 0.2s;
}


.toppage .logo{
    opacity: 0;
    pointer-events: none;
    
}
.toppage .passed-h1 .logo{
    opacity: 1;
    pointer-events: auto;
}
@media screen and (max-width: 896px) {

  .logo {
    width: 120px;
  }
}


header {
  position: fixed;
  top: 20px;
  left: 60px;
  z-index: 9999;
  display: flex;
  padding: 20px 0px;
  width: calc(100% - 120px);
  transition-duration: 0.2s;
    border: solid 1px rgba(255,255,255,0);
  justify-content: flex-end;
  align-items: center;
    border-radius: 1000px;
   
}

.lang {
  margin-left: 40px;
  padding: 10px;
  border-radius: 100px;
  background: rgba(255, 255, 255, .3);
}

.lang li {
  margin: 0 2px;
}

.lang a {
  display: flex;
  width: 40px;
  height: 24px;
  font-weight: 900;
  font-size: 16px;

  justify-content: center;
  align-items: center;
}

.lang li.active a {
  border-radius: 120px;
  background: #fff;
  pointer-events: none;
}

.lang li.active span {
  color: #000;
}

header ul {
  display: flex;

  align-items: center;
}

header a {
  position: relative;
  display: inline-block;
  overflow: hidden;
}

header a span {
  display: inline-block;
  font-weight: 900;
  font-size: 18px;
  transition-duration: 0.2s;
}

header a span:nth-child(1) {
  position: absolute;
  transform: translateY(-130%);
}


nav li {
  margin-left: 32px;
}



@media screen and (min-width: 897px) {
  header a:hover span:nth-child(1) {
    transform: translateY(-0%);
  }

  header a:hover span:nth-child(2) {
    transform: translateY(130%);
  }
    header.scrolled{
     background:rgba(0,0,0,.6);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    padding: 20px 32px;
     border: solid 1px rgba(255,255,255,.3);
}
}

@media screen and (max-width: 1080px){
    
    nav li{
        margin-left: 24px;
    }
   header a span{
        font-size: 16px;
    }
    
}

@media screen and (max-width: 896px) {

  header {
    left: 5%;
    padding-top: 28px;
    width: 90%;
  }

  nav {
    position: fixed;
    top: 0;
    left: 0;
    overflow-y: scroll;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;

    overscroll-behavior-y: contain;
    -ms-overflow-style: none;
    scrollbar-width: none;
    mix-blend-mode: normal;
  }


  nav.open {
    opacity: 1;
    pointer-events: auto;
  }

  nav::-webkit-scrollbar {
    display: none;
  }

  .nav-inner {
    display: flex;
    padding: 20px 0;
    height: 100%;
    background: rgba(0, 0, 0, .9);

    justify-content: center;
    ;
  }

  nav ul {
    flex-flow: column;
    justify-content: center;
  }

  nav li {
    margin: 10px 0;
  }

  nav a span {
    font-size: 24px;
    transition-duration: 0.4s;
    transform: translateY(101%);
  }

  nav.open a span:nth-child(2) {
    font-size: 24px;
    transform: translateY(0%);
  }

  .nav-btn {
    position: relative;
    z-index: 999999;
    width: 40px;
    height: 40px;
    border-radius: 100px;
    background: rgba(255, 255, 255, .1);
    box-shadow: inset 0 0 20px rgba(225, 255, 255, .8);
    transition-duration: 0.2s;
  }

  .nav-btn span {
    position: absolute;
    display: block;
    width: 4px;
    height: 4px;
    border-radius: 100px;
    background: #fff;
    transition-duration: 0.2s;
  }

  .nav-btn span:nth-child(1),
  .nav-btn span:nth-child(2),
  .nav-btn span:nth-child(3) {
    top: 12px;
  }

  .nav-btn span:nth-child(4),
  .nav-btn span:nth-child(5),
  .nav-btn span:nth-child(6) {
    top: calc(50% - 2px);
  }

  .nav-btn span:nth-child(7),
  .nav-btn span:nth-child(8),
  .nav-btn span:nth-child(9) {
    bottom: 12px;
  }

  .nav-btn span:nth-child(1),
  .nav-btn span:nth-child(4),
  .nav-btn span:nth-child(7) {
    left: 12px;
  }

  .nav-btn span:nth-child(2),
  .nav-btn span:nth-child(5),
  .nav-btn span:nth-child(8) {
    left: calc(50% - 2px);
  }

  .nav-btn span:nth-child(3),
  .nav-btn span:nth-child(6),
  .nav-btn span:nth-child(9) {
    right: 12px;
  }

  .nav-btn.close {
    transform: rotate(180deg);
  }

  .nav-btn.close span {
    transform: scale(1.4);
  }

  .nav-btn.close span:nth-child(2) {
    top: calc(50% - 2px);
    opacity: 0;
  }

  .nav-btn.close span:nth-child(4) {
    left: calc(50% - 2px);
    opacity: 0;
  }

  .nav-btn.close span:nth-child(6) {
    right: calc(50% - 2px);
    opacity: 0;
  }

  .nav-btn.close span:nth-child(8) {
    bottom: calc(50% - 2px);
    opacity: 0;
  }

  .lang {
    margin-right: 12px;
    margin-left: 0;
    padding: 6px;
  }

  header .lang a span {
    font-size: 14px;
  }

  .lang a {
    width: 36px;
    height: 20px;
  }

}


.hero-visual {
  position: relative;
  overflow: hidden;
  width: 100vw;
  height: 100dvh;
    min-height: 800px;
}

.hero-visual-copy {
  position: absolute;
  top: 50%;
  left: 8%;
  z-index: 2;
  transform: translateY(-50%);
    font-size: min(15px,1vw);
}

.hero-visual-copy h1{
    width: 49em;
    margin-bottom: 5%;
    text-align: center;
}
.hero-visual-copy h1 span{
    font-size: 2em;
    margin-top: 2%;
    display: block;
}
.hero-visual-copy p{
    text-shadow: 0 0 10px rgba(0,0,0,.5);
    font-size: 4em;
}
.hero-visual-copy p strong{
    font-weight: 900;
}

.hero-visual-copy p span {
  display: block;
  margin-top: 1.2em;
  font-weight: 600;
  font-size: 42%;
    line-height: 1.8;
    letter-spacing: 0.08em;
}

.hero-visual-copy .common-btn {
  margin: 40px 0 0;
  width: 240px;
  height: 54px;
  font-size: 16px;
}




.hero-visual-copy .common-btn .circle {
  right: 12px;
}

.hero-visual .hero-swiper {
  overflow: hidden;
  height: 100%;
}

.hero-visual .swiper-wrapper {
  height: 100%;
}

.hero-visual .swiper-slide {
  height: 100%;
}

.hero-slide-inner {
  position: absolute;
  top: 5%;
  left: 50%;
  z-index: 2;
  overflow: hidden;
  width: 28vw;
  height: 90%;
  border-radius: 10px;
  background: #000;
  box-shadow: 0 0 20px rgba(0, 0, 0, .5);
  filter: blur(2px);
}

.hero-slide-img {
  width: 100%;
  height: 100%;
  background-size: 100% auto !important;
  font-size: 10px;
  opacity: 0.6;
  transition-duration: 0.2s;
  animation-play-state: paused !important;
}

.swiper-slide-active .hero-slide-inner {
  filter: blur(0px);
  -webkit-transform: rotate3d(1, 0, 0, 90deg);
  transform: rotate3d(1, 0, 0, 90deg);
  animation: fadeIn 1s ease forwards;

  perspective: 1000;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  20% {
    opacity: 0;
    transform: rotate3d(0, 1, 0, -90deg);
  }

  100% {
    opacity: 1;
    transform: rotate3d(0, 0, 0, -0deg);
  }
}

.swiper-slide-active .hero-slide-img {
  opacity: 1;
  animation-play-state: running !important;
}



.swiper-3d .swiper-slide-shadow {
  background: none !important;
}

.hero-slide-img img {
  display: none;
}


@media screen and (max-width: 1200px){
    
    
}
@media screen and (max-width: 896px) {

    .hero-visual{
        min-height: 480px;
    }
  .hero-visual-copy {
    top: auto;
    bottom: 8%;
    left: 5%;
    z-index: 3;
    min-width: 0;
    transform: translateY(0%);
      font-size: min(1.6vw,9px);
  }
    
    .hero-visual-copy h1 span{
        font-size: 2.6em;
    }
    .hero-visual-copy p{
    text-shadow: 0 0 10px rgba(0,0,0,.5);
    font-size: 4em;
}
.hero-visual-copy p strong{
    font-weight: 900;
}

.hero-visual-copy p span {
  font-size: 59%;
}

  .hero-visual-copy .common-btn {
    margin: 20px 0 0;
    padding-right: 20px;
    width: 160px;
    height: 40px;
    font-size: 14px;
  }

  .hero-visual-copy .common-btn .circle {
    right: 8px;
    transform: scale(0.7);
    transform-origin: right;
  }

 

  .hero-visual .hero-swiper {
    overflow: hidden;
    height: 100%;
  }

  .hero-visual .swiper-wrapper {
    height: 100%;
  }

  .hero-visual .swiper-slide {
    height: 100%;
  }



  .hero-slide-inner {
    position: absolute;
    top: 5%;
    left: 10%;
    z-index: 2;
    overflow: hidden;
    width: 80vw;
    height: 90%;
    border-radius: 10px;
    background: #000;
    box-shadow: 0 0 20px rgba(0, 0, 0, .5);
    filter: blur(2px);
  }

  .hero-slide-inner:after {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 4;
    display: block;
    width: 100%;
    height: 400px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 50%);
    content: "";
    pointer-events: none;
  }

  .hero-slide-img {
    width: 100%;
    height: 100%;
    background-size: 100% auto !important;
    font-size: 10px;
    opacity: 0.6;
    transition-duration: 0.2s;
    animation-play-state: paused !important;
  }

  .swiper-slide-active .hero-slide-inner {
    filter: blur(0px);
    -webkit-transform: rotate3d(1, 0, 0, 90deg);
    transform: rotate3d(1, 0, 0, 90deg);
    animation: fadeIn 1s ease forwards;
  }

  @keyframes fadeIn {
    0% {
      opacity: 0;
    }

    20% {
      opacity: 0;
      -webkit-transform: rotate3d(0, 1, 0, -90deg);
      transform: rotate3d(0, 1, 0, -90deg);
    }

    100% {
      opacity: 1;
      -webkit-transform: rotate3d(0, 0, 0, -00deg);
      transform: rotate3d(0, 0, 0, -00deg);
    }
  }

  .swiper-slide-active .hero-slide-img {
    opacity: 1;
    animation-play-state: running !important;
  }



  .swiper-3d .swiper-slide-shadow {
    background: none !important;
  }

  .hero-slide-img img {
    display: none;
  }

}

.content-ttl {
  margin-bottom: 60px;
  color: #fff;
  text-align: center;
  font-weight: 900;
  font-size: 40px;
}


@media screen and (max-width: 896px) {
  .content-ttl {
    margin-bottom: 28px;
    color: #fff;
    text-align: center;
    font-size: 32px;
  }

}

.topics {
  overflow: hidden;
  margin: 0 auto;
  padding: 80px 0 120px;
  text-align: center;
}

.topics a {
  display: block;
  overflow: hidden;
}

.topics a img {
  transition-duration: 0.2s;
}

.topics a:hover img {
  transform: scale(1.1);
}

.topics-swiper {
  position: relative;
}
.swiper-disabled .swiper-wrapper{
    display: flex;
    justify-content: center;
    width: calc(100% - 120px);
    margin: 0 auto;
    gap:20px;
}
.swiper-disabled .swiper-button-next,
.swiper-disabled .swiper-button-prev {
  display: none;
}
.swiper-button-next,
.swiper-button-prev{

}
.swiper-button-prev {
  left: 10px !important;
}

.swiper-button-next {
  right: 10px !important;
}

.swiper-button-next:after,
.swiper-button-prev:after {
  color: #fff;
  content: "▶" !important;
  font-size: 18px !important;
}

.swiper-button-prev:after {
  content: "◀" !important;
}

.topics .swiper-slide {
  overflow: hidden;
  border-radius: 10px;
  background: #000;
}
.topics .swiper-disabled .swiper-slide{
    width: calc(33.33% - 13.33px);

}
.topics .swiper-slide a {
  opacity: 0.5;
  transition-duration: 0.2s;
}
.topics .swiper-disabled .swiper-slide a,
.topics .swiper-slide.swiper-slide-prev a,
.topics .swiper-slide.swiper-slide-active a,
.topics .swiper-slide.swiper-slide-next a {
  opacity: 1;
}

@media screen and (max-width: 896px) {


  .topics {
    margin: 0 auto;
    padding: 40px 0 60px;
    text-align: center;
  }

  .topics a {
    display: block;
  }

  .topics-swiper {
    position: relative;
  }

  .swiper-button-next,
  .swiper-button-prev {
    display: none !important;
  }


  .topics .swiper-slide {
    overflow: hidden;
    border-radius: 10px;
    background: #000;
  }
    .topics .swiper-disabled .swiper-slide{
    width: 90%;
    margin: 0 auto;
}



}



.top-works .content-ttl {
  position: -webkit-sticky;
  position: sticky;
  top: 0%;
  left: 0px;
  z-index: 99;
  display: flex;
  width: 0;
  height: 100vh;
  font-size: 60px;

  align-items: center;
  mix-blend-mode: difference;
}

.top-works .content-ttl span {
  position: absolute;
  top: 50%;
  display: block;
  font-weight: 900;
  transform: translate(-20%, -50%) rotate(-90deg);
  transform-origin: center;
  transform-origin: center;
}

.top-works-container {
  margin-bottom: 40px;
  width: 100%;

  flex-shrink: 0;
}

.top-works-item {
  position: relative;
  position: -webkit-sticky;
  position: sticky;
  top: 40px;
  left: 0;
  height: calc(100vh + 200px);
  transition-timing-function: ease-out;
  transition-duration: 0.1s;
  transform-origin: top;
}

.top-works-item:last-child {
  height: 100vh;
}

.top-works-item-inner {
  position: relative;
  display: flex;
  overflow: hidden;
  margin: 0 auto;
  padding: 80px 60px 70px;
  width: calc(100% - 120px);
  height: calc(100vh - 80px);
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 10px;
  background: #fff;

  justify-content: space-between;
  align-items: flex-end;
}

.top-works-item-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 1);
  transform-origin: center;
}

.top-works-item-img::before {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 4;
  display: block;
  width: 100%;
  height: 400px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 50%);
  content: "";
  pointer-events: none;
}

.top-works-item-img img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center 25%;
}

.top-woks-item-txt {
  position: relative;
  z-index: 6;
  width: 50%;
  text-align: left;
  text-shadow: #000 1px 0 10px;
}


.top-woks-item-txt h3 {
  font-weight: 100;
  font-size: 18px;
}

.top-woks-item-txt h3 span {
  font-size: 14px;
}

.top-woks-item-txt .author {
  margin-top: 12px;
  font-weight: 900;
  font-size: 18px;
}

.top-woks-item-txt .description {
  margin-top: 20px;
  color: #fff;
  font-size: 14px;
  line-height: 1.6;
}

.top-woks-item-txt .maincopy {
	font-weight: 900;
	font-size: 24px;
	line-height: 1.4;
}

.top-woks-item-txt .subcopy {
	display: none !important;
}

.top-works-item-inner .common-btn {
  position: relative;
  z-index: 6;
  margin: 0;
}

@media screen and (max-width: 896px) {



  .top-works .content-ttl {
    left: 0px;
    font-size: 32px;
  }

  .top-works .content-ttl span {
    transform: translate(-30%, -50%) rotate(-90deg);
  }

  .top-works-item {
    top: 20px;
    height: calc(100vh + 200px);
    transition-timing-function: ease-out;
    transition-duration: 0.1s;
    transform-origin: top;
  }

  .top-works-item:last-child {
    height: 100vh;
  }

  .top-works-item-inner {
    padding: 40px 20px 80px;
    width: 90%;
    height: calc(100vh - 40px);
    flex-flow: column;
    justify-content: flex-end;
    align-items: center;
  }



  .top-woks-item-txt {
    position: relative;
    z-index: 6;
    margin-bottom: 25px;
    width: 100%;
    text-align: left;
    text-shadow: #000 1px 0 10px;
  }


  .top-woks-item-txt h3 {
    font-weight: 100;
    font-size: 17px;
	line-height:1.2;
  }

.top-woks-item-txt h3 span {
    font-size: 12px;
}

  .top-woks-item-txt .author {
    margin-top: 12px;
    font-weight: 900;
    font-size: 14px;
  }

  .top-woks-item-txt .description {
    margin-top: 20px;
    font-size: 11px;
  }


.top-woks-item-txt .maincopy {
  font-weight: 800;
  font-size: 19px;
}

  .top-works-item-inner .common-btn {
    position: relative;
    z-index: 6;
    margin: 0;
  }

}

.top-news {
  padding-top: 100px;
}

.news-list ul {
  display: grid;
  margin: 0 auto 80px;

  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 40px 20px;
}


.top-news .news-list ul {
  grid-template-columns: 1fr 1fr 1fr;
}

.top-news .news-list li:nth-child(4) {
  display: none;
}

.news-list li a {
  display: block;
  overflow: hidden;
  height: 100%;
  border-radius: 10px;
  background: rgba(255, 255, 255, .1);
  transition-duration: 0.2s;
}

.news-list li a:hover {
  background: rgba(255, 255, 255, .5);
}

.news-img {
  overflow: hidden;
  background-color: #ffffff;
  aspect-ratio: 4 / 3;
}

.news-img img {
  width: 100%;
  height: 100%;
  transition-duration: 0.2s;

  object-fit: cover;
  object-position: center;
}

.news-list li a:hover .news-img img {
  transform: scale(1.1);
}

.news-txt {
  padding: 20px;
  font-weight: 900;
  line-height: 1.6;
}


.news-txt .date {
  display: block;
  margin-bottom: 4px;
  font-weight: 500;
  font-weight: 900;
  font-size: 14px;
}

.news-txt h2,.news-txt h3 {
  margin-bottom: 4px;
  text-align: justify;
  font-size: 15.3px;
}

.news-txt .tag span {
  display: inline-block;
  margin-top: 8px;
  margin-right: 8px;
  padding: 0.2em 0.8em;
  border-radius: 100px;
  background: rgba(255, 255, 255, .2);
  font-weight: 500;
  font-size: 12px;
}



.news {
  padding-top: 200px;
}

.news .news-list ul {
  margin-bottom: 0;
}

.news .news-list .common-btn.min {
  margin-top: 40px;
}

.news-detail {
  margin: 0 auto;
  max-width: 800px;
}

.news-detail-ttl {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: solid 1px rgba(255, 255, 255, .5);
}

.news-detail-ttl .date {
  display: block;
  margin-bottom: 12px;
  font-weight: 500;
  font-weight: 900;
  font-size: 20px;
}

.news-detail-ttl h1 {
  font-weight: bold;
  font-size: 24px;
  line-height: 1.4;
}

.news-detail-tmb {
  margin-bottom: 40px;
}

.news-detail-txt {
  margin-bottom: 40px;
  text-align: justify;
  line-height: 1.8;
}

.news-detail-txt h2 {
  margin-bottom: 1em;
  padding: 12px 0;
  border-top: solid 1px rgba(255, 255, 255, .5);
  border-bottom: solid 1px rgba(255, 255, 255, .5);
  font-weight: 900;
  font-size: 20px;
}

.news-detail-txt a {
  text-decoration: underline;
}

@media screen and (max-width: 896px) {


  .top-news {
    padding-top: 80px;
  }

  .news-list ul {
    display: grid;
    margin: 0 auto 40px;

    grid-template-columns: 1fr 1fr;
    gap: 40px 20px;
  }

  .top-news .news-list ul {
    grid-template-columns: 1fr 1fr;
  }

  .top-news .news-list li:nth-child(4) {
    display: block;
  }

  .news-img {
    aspect-ratio: 4 / 3;
  }

  .news-txt {
    padding: 20px 12px;
  }


  .news-txt .date {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
  }

  .news-txt h3 {
    font-size: 13px;
  }

  .news-txt .tag span {
    margin-top: 4px;
    margin-right: 4px;
    font-size: 10px;
  }


  .news {
    padding-top: 140px;
  }


  .news-detail-ttl {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: solid 1px rgba(255, 255, 255, .5);
  }

  .news-detail-ttl .date {
    font-size: 14px;
  }

  .news-detail-ttl h1 {
    font-size: 20px;
  }

  .news-detail-tmb {
    margin-bottom: 40px;
  }

  .news-detail-txt {
    margin-bottom: 40px;
    font-size: 14px;
  }
}


footer {
  margin: 0 auto;
  margin-top: 80px;
  padding-bottom: 80px;
  width: 100%;
  background: rgba(255, 255, 255, .05);
}


.breadcrumb {
  padding: 20px 60px;
  background: rgba(255, 255, 255, .05);
}

.breadcrumb ul {
  display: flex;

  align-items: center;
  flex-wrap: wrap;
}

.breadcrumb li {
  display: flex;
  margin: 4px 0;

  align-items: center;
}

.breadcrumb li:not(:last-child):after {
  display: block;
  width: 60px;
  height: 10px;
  background: url(../img/arrow.svg) no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

.breadcrumb-home {
  display: block;
  width: 14px;
}

.breadcrumb li:last-child a {
  pointer-events: none;
}

.breadcrumb li a {
  font-size: 14px;
}

footer a {
  transition-duration: 0.2s;
}

footer a:hover {
  opacity: 0.5;
}

.sns {
  display: flex;
  margin-bottom: 40px;
  padding-top: 40px;
  justify-content: center;
    gap:8px;
}

.sns a {
  width: 120px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(255, 255, 255, .1);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
}

.footer-link {

  margin-bottom: 60px;

}
.footer-link ul{
    display: flex;
     justify-content: center;
  flex-wrap: wrap;
}

.footer-link li:not(:last-child){
    border-right: solid 2px rgba(255,255,255,.5);
}
.footer-link a {

    padding: 0 20px;
  font-size: 14px;

}
.footer-abj{
    display: flex;
    max-width: 500px;
    margin: 0 auto 80px;
    align-items: center;
}

.footer-abj p:nth-child(1){
    width: 80px;
    flex-shrink: 0;
    margin-right: 28px;
}
.footer-abj p:nth-child(1) img{
    display: block;
}
.footer-abj p:nth-child(2){
    font-size: 12px;
    line-height: 1.6;
    text-align: justify;
}
footer small {
  display: block;
  text-align: center;
  font-size: 12px;
}


@media screen and (max-width: 896px) {

  footer {
    margin-top: 60px;
    padding-bottom: 40px;
  }

  .breadcrumb {
    padding: 20px 5%;
  }

  .breadcrumb li:not(:last-child):after {
    width: 40px;
    height: 8px;
  }

  .breadcrumb li a {
    font-size: 10px;
  }

  .sns {
      width: 280px;
    margin: 0 auto 28px;
      flex-wrap: wrap;

  }

  .footer-link {
    margin-bottom: 40px;

  }

    .footer-link li{
        width: 100%;
        text-align: center;

    }
    .footer-link li:not(:last-child){
        border-right: none;
    }
  .footer-link a {
    padding: 12px 40px;
      display: inline-block;
    font-size: 14px;

  }
    .footer-abj{
        width: 90%;
    display: flex;
   flex-flow: column;
    margin: 0 auto 60px;


}

.footer-abj p:nth-child(1){
    width: 80px;
    flex-shrink: 0;
    margin-right: 0px;
    margin-bottom: 20px;
}
.footer-abj p:nth-child(2){
    font-size: 11px;


}

}
.back-to-top-btn {
  position: fixed;
  right: 60px;
  bottom: 40px;
  z-index: 9999;
  display: flex;
  width: 80px;
  width: 80px;
  height: 80px;
  border: solid 2px #fff;
  border-radius: 100px;
  font-weight: 900;
  font-size: 14px;
  opacity: 0;
  transition-duration: 0.2s;
  pointer-events: none;

  align-items: center;
  justify-content: center;
  flex-flow: column;
}

.back-to-top-btn.show {
  opacity: 1;
  pointer-events: auto
}

.back-to-top-btn:before {
  display: block;
  width: 10px;
  height: 10px;
  border-top: 3px solid white;
  border-right: 3px solid white;
  content: "";
  transition-duration: 0.2s;
  transform: rotate(-45deg);
}

.back-to-top-btn:hover {
  background: #fff;
  color: #000;
  transform: scale(1.1);
}

.back-to-top-btn:hover:before {
  border-top: 3px solid black;
  border-right: 3px solid black;
}



@media screen and (max-width: 896px) {

  .back-to-top-btn {
    position: fixed;
    right: 5%;
    bottom: 20px;
    z-index: 9999;
    display: flex;
    width: 60px;
    height: 60px;
    border: solid 2px #fff;
    border-radius: 100px;
    font-weight: 900;
    font-size: 12px;
    opacity: 0;
    transition-duration: 0.2s;
    pointer-events: none;

    align-items: center;
    justify-content: center;
    flex-flow: column;
  }
}

.common-btn {
  position: relative;
  position: relative;
  display: flex;
  margin: 0 auto;
  width: 320px;
  height: 60px;
  border-radius: 100px;
  background: #fff;
  box-shadow: inset 0 0 20px rgba(225, 255, 255, .8);
  color: #000;
  font-weight: 900;
  font-size: 20px;
  transition-duration: 0.2s;

  justify-content: center;
  align-items: center;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}

.common-btn.min {
  width: 200px;
  height: 48px;
  font-size: 16px;
}

.circle {
  position: absolute;
  top: calc(50% - 15px);
  right: 20px;
  overflow: hidden;
}

.circle svg {
  border-radius: 100px;
  background: rgba(150, 150, 150, 1);
  transform: rotate(-90deg);

  fill: transparent;
  stroke: #969696;
  stroke-width: 2px;
}

.circle:before,
.circle:after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 4px solid transparent;
  border-right: 0;
  border-bottom: 4px solid transparent;
  border-left: 6px solid #fff;
  content: "";
  transform: translate(-50%, -50%);
}

.circle:before {
  transform: translate(-350%, -50%);
}

.circle circle {
  stroke-dasharray: 94;
  stroke-dashoffset: 0;
}

a:hover .circle:before,
button:hover .circle:before {
  transition-duration: 0.4s;
  transform: translate(-50%, -50%);
}

a:hover .circle:after,
button:hover .circle:after {
  opacity: 0;
  transition-duration: 0.4s;
  transform: translate(250%, -50%);
}

a:hover .circle svg,
button:hover .circle svg {
  background: rgba(150, 150, 150, .0);

  stroke: #fff;
}

a:hover .circle circle,
button:hover .circle circle {
  transition: all .75s ease;

  stroke-dashoffset: 188;
}

.common-btn:hover {
  background: none;
  color: #fff;
}


@media screen and (max-width: 896px) {
  .common-btn {
    width: 240px;
    height: 52px;
    font-size: 16px;
  }

  .circle {
    position: absolute;
    right: 10px;
    overflow: hidden;
  }



}









.works {
  padding-top: 200px;
}

.works-list {
  display: grid;

  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 60px 40px;
}


.works-list-img {
  overflow: hidden;
  margin-bottom: 12px;
}

.works-list-img img {
  transition-duration: 0.2s;
}

a:hover .works-list-img img {
  transform: scale(1.1);
}

.works-list h2{
  font-weight: 900;
  font-size: 16px;
  line-height: 1.4;
}

.works-list h2 span{
  font-size: 13px;
}

.works-list .author {
  margin-top: 4px;
  font-weight: 600;
  font-size: 12px;
}

.works-head {
  display: flex;
  margin-bottom: 30px;
}

.works-img {
  margin-right: 80px;
  width: 40%;

  flex-shrink: 0;
}



.works-img li:not(:last-child) {
  margin-bottom: 40px;
}


.works-txt {
  position: -webkit-sticky;
  position: sticky;
  top: 50%;
  left: 0px;
  width: 100%;
}

.works-txt h1 {
  font-weight: 900;
  font-size: 34px;
  line-height: 1.2;
}

.works-txt h1 span{
    font-size: 22px;
    display: block;
    margin-top: 13px;
}

.works-txt .author {
  margin-top: 20px;
  font-weight: 600;
  font-size: 18px;
}

.works-txt .description {
  margin-top: 40px;
  padding-top: 40px;
  border-top: solid 1px rgba(255, 255, 255, .5);
  color: #fff;
  font-size: 16px;
  line-height: 1.6;
}

.works-txt span.maincopy {
    font-size: 24px;
    font-weight: 700;
}

.works-txt span.subcopy {
    font-size: 18px;
	display:block;
	padding-top:30px;
}

.works-detail-txt {
  font-size: 16px;
  line-height: 1.8;
}

.works-detail-txt div {
	margin-bottom: 40px;
}

.works-detail-txt p {
  margin-bottom: 1em;
}

.works-detail-txt strong {
  font-weight: 900;
  font-size: 140%;
}

.works-detail-txt a {
  text-decoration: underline;
}



.works h2:not(.works-list h2) {
  margin-bottom: 40px;
  text-align: center;
  font-weight: 900;
  font-size: 32px;
}

.episode {
  margin-top: 100px;
}

.episode ul {
  display: grid;
  margin-bottom: 40px;

  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px;
}

.episode li {

}

.episode li a {
  position: relative;
  display: flex;
  padding: 12px 52px 12px 20px;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  background: rgba(255, 255, 255, .99);
  transition-duration: 0.2s;
  box-shadow: inset 0 0 20px rgba(225, 255, 255, .8);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  align-items: center;
}

.episode li a .circle {
  right: 12px;
}

.episode li a .circle svg {

}

.episode li a:hover {
  background: rgba(255, 255, 255, .2);
}

.episode-img {
  overflow: hidden;
  margin-right: 20px;
  width: 80px;
  border-radius: 5px;

  aspect-ratio: 1 / 1;
  flex-shrink: 0;
}

.episode-img img {
  width: 100%;
  height: 100%;
  transition-duration: 0.2s;

  object-fit: cover;
}

.episode li a:hover .episode-img img {
  transform: scale(1.1);
}

.episode li h3 {
  font-weight: 900;
  font-size: 16px;
  color:#000000;
}

.episode li a:hover h3 {
	color:#fff;
}

.episode li h3 span {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color:#000000;
}

.episode li a:hover h3 span {
	color:#fff;
}

.character {
  margin-top: 100px;
}

.character ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  gap: 30px 50px;
}

.character-img {
  overflow: hidden;
  margin-bottom: 16px;
  border-radius: 1000px;

  aspect-ratio: 1 / 1;
}

.character-img img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.character h3 {
  margin-bottom: 8px;
  text-align: center;
  font-weight: 900;
}

.character p {
  color: #fff;
  font-size: 14px;
  line-height: 1.4;
}

.blocker {
  z-index: 99999;
  background-color: rgba(0, 0, 0, 0.9);
}


.modal {
  padding: 40px;
  max-width: 600px;
  background-color: rgba(255, 255, 255, 0.1);

  backdrop-filter: blur(10px);
}
.modal .modal-txt{
        text-align: center;
        font-weight: 600;
        margin-bottom: 20px;
        font-size: 24px;
    }
.modal ul {
  display: flex;

  flex-wrap: wrap;
  gap: 20px;
}

.modal ul li {
  width: calc(50% - 10px);
}

.modal ul li:nth-child(1) {
  width: 100%;
}

.modal ul a {
  display: flex;
  padding: 20px;
  width: 100%;
  height: 100px;
  border-radius: 20px;
  background: #fff;
  transition-duration: 0.2s;
}

.modal ul a img {
  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;
}

.modal ul a:hover {
  opacity: 0.5;
}

.modal a.close-modal {
  display: none;
}

.modal-close {
  display: block;
  display: flex;
  margin: 40px auto 0;
  width: 120px;
  height: 40px;
  border: solid 1px #fff;
  border-radius: 100px;
  font-weight: 900;
  font-size: 18px;
  transition-duration: 0.2s;

  justify-content: center;
  align-items: center;
}

.modal-close:hover {
  opacity: 0.5;
}

.works-detail-sec {
  margin: 100px auto 0;
  max-width: 800px;
}


@media screen and (max-width: 1080px) {
  .works-list {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .works-detail-txt {
    font-size: 14px;
    line-height: 1.8;
  }


  .works-detail-txt a {
    text-decoration: underline;
  }

  .episode ul {
    grid-template-columns: 1fr 1fr;
  }

  .character ul {
    display: grid;

    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  }

}

@media screen and (max-width: 896px) {

  .works {
    padding-top: 140px;
  }

  .works-list {
    display: grid;

    grid-template-columns: 1fr 1fr;
    gap: 40px 20px;
  }


  .works-list-img {
    overflow: hidden;
    margin-bottom: 12px;
  }

  .works-list h2 {
    font-size: 14px;
  }

  .works-list .author {
    margin-top: 4px;
    font-size: 10px;
  }

  .works-head {
    margin: 0 auto 50px;
    flex-flow: column;
  }




  .works-img {
    display: flex;
    margin: 0 auto 20px;
    width: 100%;
  }


  .works h2:not(.works-list h2){
    margin-bottom: 20px;
    text-align: center;
    font-weight: 900;
    font-size: 24px;
  }

  .works-img li:not(:last-child) {
    margin-bottom: 20px;
  }


  .works-txt {
    position: static !important;
    top: 0%;
    left: 0px;
  }

  .works-txt h1 {
    font-weight: 900;
    font-size: 28px;
    line-height: 1.2;
  }
	
.works-txt h1 span {
    font-size: 18px;
}

  .works-txt .author {
    margin-top: 20px;
    font-size: 14px;
  }

  .works-txt .description {
    margin-top: 20px;
    padding-top: 20px;
    font-size: 12px;
	line-height:1.4;
  }
	
.works-txt span.maincopy {
    font-size: 20px;
}

.works-txt span.subcopy {
	padding-top: 20px;
	display: block;
	font-size:16px;
}
    
    .episode{
        margin-top: 60px;
    }

  .episode ul {
    margin-bottom: 40px;

    grid-template-columns: 1fr;
    gap: 20px;
  }

  .episode li {}

  .episode-img {
    overflow: hidden;
    margin-right: 20px;
    width: 80px;
    border-radius: 5px;

    aspect-ratio: 1 / 1;
  }


  .episode li h3 {
    font-weight: 900;
    font-size: 16px;
  }

  .episode li h3 span {
    display: block;
    margin-top: 8px;
    font-size: 14px;
    color: #000;
  }

  .character {
    margin-top: 60px;
  }

  .character ul {
	display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px 30px;
  }

  .character-img {
    overflow: hidden;
    margin-bottom: 16px;
    border-radius: 1000px;

    aspect-ratio: 1 / 1;
  }

  .character-img img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
  }

  .character h3 {
    margin-bottom: 8px;
    text-align: center;
    font-weight: 900;
    font-size: 14px;
  }

  .character p {
    font-size: 14px;
    line-height: 1.4;
  }

  .modal {
    padding: 40px 20px;
    background-color: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
  }

    .modal .modal-txt{

        font-size: 18px;
    }

  .modal ul {
    display: flex;

    flex-wrap: wrap;
    gap: 8px;
  }

  .modal ul li {
    width: calc(50% - 4px);
  }

  .modal ul li:nth-child(1) {
    width: 100%;
  }

  .modal ul a {
    padding: 12px;
    height: 80px;
    border-radius: 8px;
  }

  .modal-close {
    display: block;
    display: flex;
    margin: 40px auto 0;
    width: 120px;
    height: 40px;
    border: solid 1px #fff;
    border-radius: 100px;
    font-weight: 900;
    font-size: 18px;
    transition-duration: 0.2s;

    justify-content: center;
    align-items: center;
  }

  .modal-close:hover {
    opacity: 0.5;
  }

  .works-detail-sec {
    margin: 60px auto 0;
  }

}



.about {
  padding-top: 200px;
}

.about-intro{
    margin-bottom: 100px;
}
.about-intro h2{
    display: block;
    font-size: 48px;
    line-height: 1;
    margin-bottom: 40px;
    text-align: center;
    font-weight: 900;
}
.about-intro p{
    font-size: 20px;
    line-height: 2;
    text-align: center;
    margin-bottom: 40px;
}
.about-intro p:last-child{
    margin-bottom: 0;
}
.about ul {
    display: grid;
    gap: 20px;
    counter-reset: listnum;
    margin-bottom: 100px;
}
.about li {
    position: relative;
    background: rgba(255, 255, 255, .1);
    border-radius: 10px;
    padding: 40px 40px 40px 120px;
}
.about li:before {
    position: absolute;
    top: 50%;
    left: 20px;
    content: "0" counter(listnum);
    counter-increment: listnum;
    font-size: 80px;
    font-weight: 900;
    font-style: italic;
    color: rgba(0, 0, 0, 0);
    transform: translate(-50%, -50%);
    -webkit-text-stroke: 1px #fff;
    text-stroke: 1px #fff;
}
.about li h3 {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.4;
    border-bottom: solid 1px rgba(255, 255, 255, .5);
    margin-bottom: 20px;
    padding-bottom: 20px;
}
.about li p {
    font-size: 17px;
    line-height: 1.8;
}


.about-slide .infinite-slider .swiper-wrapper {
    transition-timing-function: linear;
}
/* スライド */
.about-slide .infinite-slider .swiper-slide {
    width: 600px;
    margin: 0 28px;
}
@media screen and (max-width: 896px) {

  .about {
    padding-top: 140px;
  }

    .about-intro{
        margin-bottom: 60px;
    }
    .about-intro h2 {
        display: block;
        font-size: 28px;
        line-height: 1.2;
        margin-bottom: 24px;
    }
    .about-intro p{
        font-size: 14px;
        margin-bottom: 24px;
    }
    .about ul {
        gap: 40px;
        grid-template-columns: 1fr;
        margin-bottom: 60px;
    }
    .about li {
        position: relative;
        padding: 40px 20px 28px;
    }
    .about li:before {
        position: absolute;
        top: 0;
        left: 50%;
        font-size: 40px;
        transform: translate(-50%, -40%);
    }
    .about li h3 {
        font-size: 18px;
        font-weight: 900;
        line-height: 1.4;
        text-align: center;
        margin-bottom: 16px;
    }
    .about li p {
        font-size: 12px;
        line-height: 1.8;
    }
     .about-slide .infinite-slider .swiper-slide {
        width: 240px;
        margin: 0 8px;
    }

}



.contact {
  padding-top: 200px;
}

.contact-lead {
  margin: 0 auto 40px;
  max-width: 628px;
  font-size: 16px;
  line-height: 1.8;
}

.contact-lead a {
  text-decoration: underline;
}

.contact-step {
  display: flex;
  margin: 0 auto;
  margin-bottom: 100px;
  max-width: 628px;

  justify-content: space-between;
}

.contact-step li {
  display: flex;
  width: calc(33.33% - 8px);
  height: 60px;
  border-radius: 8px;
  background: rgba(255, 255, 255, .1);
  font-weight: bold;

  justify-content: center;
  align-items: center;
}

.contact-step li.active {
  background: #fff;
  color: #000;
}

form dl {
  display: flex;
  margin-bottom: 40px;
}

form dt {
  display: flex;
  width: 240px;

  align-items: center;
}

form dt span {
  display: inline-block;
  margin-left: 0.5em;
  padding: 0.2em 0;
  width: 3em;
  border-radius: 100px;
  background: #ff0048;
  text-align: center;
  font-weight: bold;
  font-size: 12px;
}

form dd {
  width: calc(100% - 240px);
}



form select,
form input,
form textarea {
  padding: 20px;
  width: 100%;
  border: solid 1px rgba(255, 255, 255, .5);
  border-radius: 8px;
  background: rgba(255, 255, 255, .1);
}

form input:focus,
form textarea:focus {
  border: solid 1px rgba(255, 255, 255, 1);
}

select:invalid,
input:invalid,
textarea:invalid,
select.error,
input.error,
textarea.error {
  border: solid 1px rgba(255, 100, 100, 1);
  background: rgba(255, 100, 100, .15);
}

.select-box {
  position: relative;
  cursor: pointer;
}

.select-box:after {
  position: absolute;
  top: 50%;
  right: 20px;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 12px solid #fff;
  border-right: 8px solid transparent;
  border-bottom: 0;
  border-left: 8px solid transparent;
  content: "";
  transform: translateY(-50%);
  pointer-events: none;
}

select option {
  color: #000;
}

select:has(option:checked[value=""]) {
  color: gray;
}

form textarea {
  height: 240px;
  resize: none;
}

form input[type=checkbox] {
  display: none;
}

form input[type=checkbox]+label {
  position: relative;
  display: inline-block;
  padding-left: 24px;
  font-size: 16px;
}



form input[type=checkbox]+label:before {
  position: absolute;
  top: 50%;
  left: 0px;
  z-index: 0;
  display: block;
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  border: 1px solid #fff;
  border-radius: 5px;
  content: "";
  transform: translateY(-50%);
}

form input[type=checkbox]:checked+label:before {
  background: #fff;
}

form input[type=checkbox]:checked+label:after {
  position: absolute;
  top: 50%;
  left: 0px;
  z-index: 0;
  display: block;
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  background: url(../img/check.svg) no-repeat;
  background-position: center;
  background-size: 90% 90%;
  content: "";
  transform: translateY(-50%);
}

.pp-notice {
  margin-bottom: 20px;
  text-align: center;
  font-size: 16px;
  line-height: 1.8;
}

.pp-notice a {
  text-decoration: underline;
}

.pp-checkbox {
  display: flex;

  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

.pp-checkbox label {
  font-weight: bold;
}

.error-massage {
  margin-top: 10px;
  width: 100%;
  color: #ff0048;
  font-weight: bold;
  font-size: 14px;
}

.pp-checkbox .error-massage {
  text-align: center;
}

.contact-back {
  display: flex;
  margin: 40px auto 0;
  width: fit-content;
  width: 200px;
  height: 40px;
  border: solid 1px #fff;
  border-radius: 100px;
  font-size: 14px;
  transition-duration: 0.2s;

  justify-content: center;
  align-items: center;
}

.contact-back:hover {
  opacity: 0.5;
}

.complete-txt .contact-thanks {
  margin-bottom: 40px;
  text-align: center;
  font-size: 20px;
  line-height: 1.8;
}

.complete-txt .contact-notice {
  display: flex;
  margin-bottom: 40px;
  font-size: 12px;
  line-height: 2;

  justify-content: center;
}

.complete-txt .contact-notice li {
  position: relative;
  padding-left: 1em;
}

.complete-txt .contact-notice li:before {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  width: 1em;
  content: "・";
}

form .common-btn {
  margin-top: 40px;
}

@media screen and (max-width: 896px) {

  .contact {
    padding-top: 140px;
  }

  .contact-lead {
    font-size: 13px;
  }

  .contact-step {
    margin-bottom: 40px;
  }



  form dl {
    display: block;
    margin-bottom: 40px;
  }

  form dt {
    margin-bottom: 12px;
    width: 100%;
  }

  form dd {
    width: 100%;
  }




  .contact-notice {
    margin-bottom: 40px;
    font-size: 12px;
  }


  .pp-notice {
    font-size: 13px;
  }

  form input[type=checkbox]+label {
    font-size: 14px;
  }


  .contact-back {
    font-size: 16px;
  }

  .complete-txt .contact-thanks {
    margin-bottom: 40px;
    font-size: 18px;
  }


}

.pp-terms {
  padding-top: 200px;
}

.pp-terms-txt {
  margin-bottom: 40px;
  text-align: justify;
  font-size: 14px;
  line-height: 1.8;
}


.pp-terms-txt h2.pp-terms-heading {
  font-weight: bold;
  font-size: 18px;
}

.pp-terms-txt a {
  text-decoration: underline;
}
.pp-terms-txt ul,.pp-terms-txt ol{
    margin-top: 12px;
}
.pp-terms-txt li{
    margin: 4px 0;
}

.pp-terms .common-btn:not(.min){
    margin-bottom: 60px;
}
@media screen and (max-width: 896px) {


  .pp-terms {
    padding-top: 140px;
  }

  .pp-terms-txt {
    font-size: 12px;
  }

  .pp-terms-txt h2.pp-terms-heading {
    font-size: 16px;
  }
    .pp-terms .common-btn:not(.min){
    margin-bottom: 40px;
}

}

.notfound strong {
  display: block;
  margin-bottom: 40px;
  font-weight: 900;
  font-size: 100px;
}

.notfound strong span {
  display: block;
  font-weight: 900;
  font-size: 50%;
}

.notfound {
  margin-bottom: 40px;
  text-align: center;
}

.notfound p {
  line-height: 2;
}


@media screen and (max-width: 896px) {
  .notfound strong {
    margin-bottom: 40px;
    font-size: 60px;
  }


  .notfound {
    margin-bottom: 40px;
    font-size: 14px;
  }


}

.cookie_consent-cookie_btn-link {
  text-decoration: none !important;
}
