@charset "UTF-8";
/* Scss Document */
/*====================================================================
	index
====================================================================

Part name///
	01 General_style
	02 Common_style
	03 Top_style
*/
/*---------------------------------------------------------
	General
*/
/*====================================================================
	01 General_style
====================================================================*/
* {
  word-break: break-all;
  word-wrap: break-word;
}

body {
  position: relative;
  font-family: "メイリオ", Meiryo, sans-serif, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", Meiryo, sans-serif, "宋体", Gulim;
  word-break: break-all;
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt";
  scroll-behavior: auto;
}
a {
  -webkit-transition: all 0.5s ease-in-out 0s;
  -ms-transition: all 0.5s ease-in-out 0s;
  -moz-transition: all 0.5s ease-in-out 0s;
  -o-transition: all 0.5s ease-in-out 0s;
  transition: all 0.5s ease-in-out 0s;
}

img {
  max-width: 100%;
}

@media screen and (max-width: 800px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}
@media screen and (max-width: 800px) {
  .sp {
    display: initial;
  }
}

@-webkit-keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-moz-keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes circle {
  0% {
    width: 50%;
    height: 50%;
  }
  90% {
    width: 100%;
    height: 100%;
  }
  100% {
    width: 100%;
    height: 100%;
  }
}
@-moz-keyframes circle {
  0% {
    width: 50%;
    height: 50%;
  }
  90% {
    width: 100%;
    height: 100%;
  }
  100% {
    width: 100%;
    height: 100%;
  }
}
@keyframes circle {
  0% {
    width: 50%;
    height: 50%;
  }
  90% {
    width: 100%;
    height: 100%;
  }
  100% {
    width: 100%;
    height: 100%;
  }
}
@-webkit-keyframes bg_circle {
  0% {
    transform: rotate(0deg) translateX(20vmin) rotate(0deg);
  }
  100% {
    transform: rotate(360deg) translateX(20vmin) rotate(-360deg);
  }
}
@-moz-keyframes bg_circle {
  0% {
    transform: rotate(0deg) translateX(20vmin) rotate(0deg);
  }
  100% {
    transform: rotate(360deg) translateX(20vmin) rotate(-360deg);
  }
}
@keyframes bg_circle {
  0% {
    transform: rotate(0deg) translateX(20vmin) rotate(0deg);
  }
  100% {
    transform: rotate(360deg) translateX(20vmin) rotate(-360deg);
  }
}
@-webkit-keyframes bg_circle-r {
  100% {
    transform: rotate(0deg) translateX(20vmin) rotate(0deg);
  }
  0% {
    transform: rotate(360deg) translateX(20vmin) rotate(-360deg);
  }
}
@-moz-keyframes bg_circle-r {
  100% {
    transform: rotate(0deg) translateX(20vmin) rotate(0deg);
  }
  0% {
    transform: rotate(360deg) translateX(20vmin) rotate(-360deg);
  }
}
@keyframes bg_circle-r {
  100% {
    transform: rotate(0deg) translateX(20vmin) rotate(0deg);
  }
  0% {
    transform: rotate(360deg) translateX(20vmin) rotate(-360deg);
  }
}
/* Scss Document */
/*====================================================================
	index
====================================================================

Part name///
	01 General_style
	02 Common_style
	03 Top_style
*/
/*---------------------------------------------------------
	header
*/
/* Scss Document */
/*====================================================================
	index
====================================================================

Part name///
	01 General_style
	02 Common_style
	03 Top_style
*/
/*---------------------------------------------------------
	footer
*/
footer {
  position: relative;
  --cts_height: 0;
  padding: calc(var(--cts_height) * 1px + 90px) 60px 50px;
}
@media screen and (max-width: 800px) {
  footer {
    padding: calc(var(--cts_height) * 1px + 90px) 30px 50px;
  }
}
footer .message {
  color: #1A1A1A;
  font-family: "Ishii Gothic R";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 150%; /* 24px */
  margin: 0 0 50px;
}
@media screen and (max-width: 800px) {
  footer .message {
    margin: 0 0 60px;
  }
}
footer .messagelink {
  color: #1A1A1A;
  font-family: "Ishii Gothic R";
  font-size: 16px;
  text-decoration:underline;
  font-style: normal;
  font-weight: 500;
  line-height: 150%; /* 24px */
  margin: 0 0 300px;
}
@media screen and (max-width: 800px) {
  footer .message {
    margin: 0 0 60px;
  }
}
footer .soon {
  margin: 0 0 30px;
}
@media screen and (max-width: 800px) {
  footer .soon {
    margin: 0 0 60px;
  }
}
footer .soon h2 {
  margin: 0 0 12px;
}
footer .soon h2 img {
  width: auto;
  height: auto;
}
footer .soon p {
  color: #1A1A1A;
  font-family: "Ishii Gothic R";
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 100%; /* 12px */
}
@media screen and (max-width: 800px) {
  footer .soon p {
    line-height: 150%; /* 18px */
  }
}
footer .logo_wrapper {
  position: absolute;
  bottom: 50px;
  right: 60px;
  display: flex;
  gap: 0 6px;
}
@media screen and (max-width: 800px) {
  footer .logo_wrapper {
    position: relative;
    bottom: 0;
    right: 0;
    display: block;
    margin: 0 auto 60px;
  }
}
footer .logo_wrapper a img {
  width: 170px;
}
@media screen and (max-width: 800px) {
  footer .logo_wrapper a img {
    width: 100%;
    max-width: 315px;
    margin: 0 0 3px;
  }
}
footer address img {
  width: 200px;
}
@media screen and (max-width: 800px) {
  footer address img {
    display: block;
    margin: 0 auto;
  }
}

/* Scss Document */
/*====================================================================
	index
====================================================================

Part name///
	01 General_style
	02 Common_style
	03 Top_style
*/
/*---------------------------------------------------------
	Top
*/
#container .bg_area {
  position: fixed;
  top: 0;
  left: 0;
  --scroll_bg: 0;
  transform: translateY(calc(var(--scroll_bg) * -1px));
  display: block;
  width: 100vw;
  height: 100vh;
  background-image: linear-gradient(90deg, #e5fbff, #eee7ff);
  z-index: 2;
}
#container .bg_area .bg_circle {
  position: absolute;
}
#container .bg_area .bg_circle.bg_circle-1 {
  top: -80vmax;
  right: -40%;
  display: block;
  width: 100vmax;
  height: 100vmax;
  border-radius: 50%;
  background: #22d3ee;
  filter: blur(50px);
  mix-blend-mode: screen;
  animation: bg_circle 6s linear infinite 0s;
  z-index: 5;
}
@media screen and (max-width: 800px) {
  #container .bg_area .bg_circle.bg_circle-1 {
    top: -50vmax;
    right: -150%;
  }
}
#container .bg_area .bg_circle.bg_circle-2 {
  top: -80vmax;
  right: -40%;
  display: block;
  width: 100vmax;
  height: 100vmax;
  border-radius: 50%;
  background: #eee022;
  filter: blur(50px);
  mix-blend-mode: screen;
  animation: bg_circle-r 6s linear infinite 0s;
  z-index: 5;
}
@media screen and (max-width: 800px) {
  #container .bg_area .bg_circle.bg_circle-2 {
    top: -50vmax;
    right: -150%;
  }
}
#container .bg_area_2 {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100vw;
  height: 100vh;
  background-image: linear-gradient(90deg, #e5fbff, #eee7ff);
  z-index: -1;
}
#container .cts.cts-1 {
  position: fixed;
  top: 0;
  --scroll_1: 0;
  transform: translateY(calc(var(--scroll_1) * -1px));
  z-index: 9;
  padding: 0 0 120px;
}
@media screen and (max-width: 800px) {
  #container .cts.cts-1 {
    padding: 0 0 90px;
  }
}
#container .cts.cts-2 {
  position: fixed;
  top: 0;
  --scroll_2: 0;
  transform: translateY(calc(var(--scroll_2) * -1px));
  z-index: 1;
  display: block;
  width: 100vw;
}
#container .mv {
  position: relative;
  display: block;
  width: 100vw;
  height: 100vh;
}
#container .mv .txt_wrapper {
  position: absolute;
  bottom: 40px;
  left: 60px;
}
@media screen and (max-width: 800px) {
  #container .mv .txt_wrapper {
    left: 30px;
  }
}
#container .mv .txt_wrapper .ttl {
  margin: 0 0 30px;
}
#container .mv .txt_wrapper .ttl .wrap {
  overflow: hidden;
}
@media screen and (max-width: 800px) {
  #container .mv .txt_wrapper .ttl .wrap.pc {
    display: none;
  }
}
#container .mv .txt_wrapper .ttl .wrap.sp {
  display: none;
}
@media screen and (max-width: 800px) {
  #container .mv .txt_wrapper .ttl .wrap.sp {
    display: block;
  }
}
#container .mv .txt_wrapper .ttl .wrap p {
  color: #1A1A1A;
  font-family: "Ishii Gothic R";
  font-size: 30px;
  font-style: normal;
  font-weight: 400;
  line-height: 180%; /* 54px */
  opacity: 0;
  -webkit-transition: all 1s ease-in-out 1s;
  -ms-transition: all 1s ease-in-out 1s;
  -moz-transition: all 1s ease-in-out 1s;
  -o-transition: all 1s ease-in-out 1s;
  transition: all 1s ease-in-out 1s;
  -webkit-transform: translate(0, 100%);
  -ms-transform: translate(0, 100%);
  -moz-transform: translate(0, 100%);
  -o-transform: translate(0, 100%);
  transform: translate(0, 100%);
}
#container .mv .txt_wrapper .ttl .wrap p.is-loaded {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
@media screen and (max-width: 800px) {
  #container .mv .txt_wrapper .ttl .wrap p {
    font-size: 20px;
    line-height: 150%; /* 30px */
  }
}
#container .mv .txt_wrapper p.txt {
  position: relative;
  display: block;
  width: fit-content;
  font-family: "Ishii Gothic R";
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  color: transparent;
  --reveal-progress: 0;
  --reveal-blur: 0px;
  line-height: 200%; /* 32px */
  transition: filter 0.1s linear;
  transform-origin: left center;
  --reveal-progress: 0;
}
#container .mv .txt_wrapper p.txt.pc {
  display: block;
}
@media screen and (max-width: 800px) {
  #container .mv .txt_wrapper p.txt.pc {
    display: none;
  }
}
#container .mv .txt_wrapper p.txt.sp {
  display: none;
}
@media screen and (max-width: 800px) {
  #container .mv .txt_wrapper p.txt.sp {
    display: block;
  }
}
#container .mv .txt_wrapper p.txt::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  background: #1A1A1A;
  color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  pointer-events: none;
  /* ブラーは上レイヤーだけ */
  filter: blur(var(--reveal-blur));
  /* ✅ ここがポイント：境界を“ぼかしたマスク”にする */
  --p: calc(var(--reveal-progress) * 100%);
  --feather: 6%; /* ←境界の“ふわっ”の幅。3〜10%で調整 */
  -webkit-mask-image: linear-gradient(to right, #000 0%, #000 calc(var(--p) - var(--feather)), transparent calc(var(--p) + var(--feather)), transparent 100%);
  mask-image: linear-gradient(to right, #000 0%, #000 calc(var(--p) - var(--feather)), transparent calc(var(--p) + var(--feather)), transparent 100%);
  transition: filter 0.12s linear;
}
#container .lead {
  padding: 0 60px;
}
@media screen and (max-width: 800px) {
  #container .lead {
    padding: 0 30px;
  }
}
#container .lead p.scroll-reveal-text {
  position: relative;
  display: block;
  width: fit-content;
  font-family: "Ishii Gothic R";
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  color: transparent;
  --reveal-progress: 0;
  --reveal-blur: 0px;
  line-height: 200%; /* 32px */
  transition: filter 0.1s linear;
  transform-origin: left center;
  --reveal-progress: 0;
}
#container .lead p.scroll-reveal-text.pc {
  display: block;
}
@media screen and (max-width: 800px) {
  #container .lead p.scroll-reveal-text.pc {
    display: none;
  }
}
#container .lead p.scroll-reveal-text.sp {
  display: none;
}
@media screen and (max-width: 800px) {
  #container .lead p.scroll-reveal-text.sp {
    display: block;
  }
}
#container .lead .scroll-reveal-text::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  background: #1A1A1A;
  color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  pointer-events: none;
  /* ブラーは上レイヤーだけ */
  filter: blur(var(--reveal-blur));
  /* ✅ ここがポイント：境界を“ぼかしたマスク”にする */
  --p: calc(var(--reveal-progress) * 100%);
  --feather: 6%; /* ←境界の“ふわっ”の幅。3〜10%で調整 */
  -webkit-mask-image: linear-gradient(to right, #000 0%, #000 calc(var(--p) - var(--feather)), transparent calc(var(--p) + var(--feather)), transparent 100%);
  mask-image: linear-gradient(to right, #000 0%, #000 calc(var(--p) - var(--feather)), transparent calc(var(--p) + var(--feather)), transparent 100%);
  transition: filter 0.12s linear;
}
#container .scheme {
  position: relative;
  display: block;
  width: 650px;
  height: 500px;
  margin: -60px 60px 0 auto;
}
@media screen and (max-width: 800px) {
  #container .scheme {
    width: 315px;
    height: 370px;
    margin: 60px auto 0;
  }
}
#container .scheme .circle {
  position: absolute;
  display: block;
  -webkit-transform: rotate(-30deg);
  -ms-transform: rotate(-30deg);
  -moz-transform: rotate(-30deg);
  -o-transform: rotate(-30deg);
  transform: rotate(-30deg);
  border-radius: 50%;
}
#container .scheme .circle.circle-1 {
  top: 62px;
  left: 5px;
  width: 390px;
  height: 215px;
}
@media screen and (max-width: 800px) {
  #container .scheme .circle.circle-1 {
    top: 18px;
    left: -10px;
    width: 250px;
    height: 138px;
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
}
#container .scheme .circle.circle-2 {
  top: 28px;
  right: -17px;
  width: 390px;
  height: 215px;
}
@media screen and (max-width: 800px) {
  #container .scheme .circle.circle-2 {
    top: 112px;
    right: -11px;
    width: 250px;
    height: 138px;
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
}
#container .scheme .circle.circle-3 {
  bottom: 129px;
  left: 220px;
  width: 300px;
  height: 170px;
}
@media screen and (max-width: 800px) {
  #container .scheme .circle.circle-3 {
    bottom: 93px;
    left: -7px;
    width: 170px;
    height: 96px;
  }
}
#container .scheme .circle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  display: block;
  width: 0;
  height: 0;
  border: 0.2px solid #000;
  border-radius: 50%;
  -webkit-transition: all 1s ease-in-out 0s;
  -ms-transition: all 1s ease-in-out 0s;
  -moz-transition: all 1s ease-in-out 0s;
  -o-transition: all 1s ease-in-out 0s;
  transition: all 1s ease-in-out 0s;
}
#container .scheme .line {
  position: absolute;
  top: 240px;
  left: 302px;
  display: block;
  width: 0;
  height: 0;
  background: #000;
  -webkit-transform: rotate(-5deg);
  -ms-transform: rotate(-5deg);
  -moz-transform: rotate(-5deg);
  -o-transform: rotate(-5deg);
  transform: rotate(-5deg);
  -webkit-transform-origin: top left;
  -ms-transform-origin: top left;
  -moz-transform-origin: top left;
  -o-transform-origin: top left;
  transform-origin: top left;
  -webkit-transition: all 1s ease-in-out 1s;
  -ms-transition: all 1s ease-in-out 1s;
  -moz-transition: all 1s ease-in-out 1s;
  -o-transition: all 1s ease-in-out 1s;
  transition: all 1s ease-in-out 1s;
}
@media screen and (max-width: 800px) {
  #container .scheme .line {
    top: 182px;
    left: 124px;
  }
}
#container .scheme .center {
  position: absolute;
  top: 222px;
  left: 294px;
  display: block;
  width: 16px;
  height: 16px;
  opacity: 0;
  -webkit-transition: all 1s ease-in-out 1s;
  -ms-transition: all 1s ease-in-out 1s;
  -moz-transition: all 1s ease-in-out 1s;
  -o-transition: all 1s ease-in-out 1s;
  transition: all 1s ease-in-out 1s;
}
@media screen and (max-width: 800px) {
  #container .scheme .center {
    top: 162px;
    left: 114px;
  }
}
#container .scheme .center::before, #container .scheme .center::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  display: block;
}
#container .scheme .center::before {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #DD524C;
  z-index: 2;
}
#container .scheme .center::after {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #DD524C;
  opacity: 0.2;
  z-index: 1;
  animation: circle 1s ease-in-out infinite 0s;
}
#container .scheme .txt {
  position: absolute;
  text-align: center;
  opacity: 0;
  -webkit-transition: all 1s ease-in-out 0.5s;
  -ms-transition: all 1s ease-in-out 0.5s;
  -moz-transition: all 1s ease-in-out 0.5s;
  -o-transition: all 1s ease-in-out 0.5s;
  transition: all 1s ease-in-out 0.5s;
}
#container .scheme .txt.txt-1 {
  top: 150px;
  left: 140px;
}
@media screen and (max-width: 800px) {
  #container .scheme .txt.txt-1 {
    top: 70px;
    left: 70px;
  }
}
#container .scheme .txt.txt-2 {
  top: 80px;
  right: 80px;
}
@media screen and (max-width: 800px) {
  #container .scheme .txt.txt-2 {
    top: 150px;
    right: 40px;
  }
}
#container .scheme .txt.txt-3 {
  top: 290px;
  left: 340px;
}
@media screen and (max-width: 800px) {
  #container .scheme .txt.txt-3 {
    top: 220px;
    left: 21px;
  }
}
#container .scheme .txt img {
  width: auto;
  height: auto;
}
#container .scheme .ttl {
  position: absolute;
  bottom: 0;
  left: 250px;
  width: max-content;
}
@media screen and (max-width: 800px) {
  #container .scheme .ttl {
    left: 70px;
  }
}
#container .scheme .ttl .wrap {
  overflow: hidden;
}
#container .scheme .ttl .wrap p {
  color: #1A1A1A;
  text-align: center;
  font-family: "Ishii Gothic M";
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 120%; /* 19.2px */
  opacity: 0;
  -webkit-transition: all 1s ease-in-out 1.5s;
  -ms-transition: all 1s ease-in-out 1.5s;
  -moz-transition: all 1s ease-in-out 1.5s;
  -o-transition: all 1s ease-in-out 1.5s;
  transition: all 1s ease-in-out 1.5s;
  -webkit-transform: translate(0, 100%);
  -ms-transform: translate(0, 100%);
  -moz-transform: translate(0, 100%);
  -o-transform: translate(0, 100%);
  transform: translate(0, 100%);
}
#container .scheme.visible .circle::before {
  width: 100%;
  height: 100%;
}
#container .scheme.visible .txt {
  opacity: 1;
}
#container .scheme.visible .center {
  opacity: 1;
}
#container .scheme.visible .line {
  width: 0.2px;
  height: 200px;
}
@media screen and (max-width: 800px) {
  #container .scheme.visible .line {
    height: 140px;
  }
}
#container .scheme.visible .ttl .wrap p {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
#container .slider {
  padding: 40px 0 0;
}
#container .slider .swiper {
  display: block;
  width: 100%;
  margin: 0 0 20px;
}
#container .slider .swiper .swiper-wrapper {
  transition-timing-function: linear !important;
}
#container .slider .swiper .swiper-wrapper .swiper-slide {
  width: 33.3333333333vw;
}
@media screen and (max-width: 800px) {
  #container .slider .swiper .swiper-wrapper .swiper-slide {
    width: 100vw;
  }
}
#container .slider .swiper .swiper-wrapper .swiper-slide .vimeo_wrap {
  position: relative;
  display: block;
  width: 100%;
  height: 0;
  padding: 56.25% 0 0 0;
}