*{
  padding: 0;
  margin: 0;
}
body {
  font-family: "Zen Old Mincho", serif;
  background-color: #101e4e; 
}
#intro {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #101e4e;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000;
  animation: fadeOut 1s ease forwards;
  animation-delay: 2.5s; /* 2.5秒後にフェードアウト */
}

#intro-logo {
  width: 40%;
  animation: dropLogo 2s ease forwards;
}

@keyframes dropLogo {
  0% {
    transform: translateY(-100vh);
    opacity: 0;
  }
  60% {
    transform: translateY(0);
    opacity: 1;
  }
  75% {
    transform: translateY(-20px); /* 着地の弾み */
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes fadeOut {
  to {
    opacity: 0;
    visibility: hidden;
  }
}
.snow {
  color: snow;
  font-size: 10px;
  position: fixed;
  top: -5%;
  text-shadow:
  5vw   -100px 2px,
  10vw  -400px 3px,
  20vw  -500px 4px,
  30vw  -580px 1px,
  39vw  -250px 2px,
  42vw  -340px 5px,
  56vw  -150px 2px,
  63vw  -180px 0,
  78vw  -220px 4px,
  86vw  -320px 9px,
  94vw  -170px 7px;
  animation: roll 5s linear infinite;
}
.snow2nd{animation: anim 8s linear infinite;}

@keyframes roll {
    0% {transform:rotate(0deg);}
   90% {opacity:1;}
   100% {transform:rotate(20deg);top:100%;opacity:0;}
}
@keyframes anim {
  100% {color:transparent;top:150%;}
}
header {
  width: 90%;
  margin: 0 auto;
  padding: 10px 50px 0 10px;
  position: relative;
  background-color: transparent;
  transition: all 0.4s ease;
  z-index: 999;
}

header nav ul {
  display: flex;
  justify-content: flex-end;
  list-style: none;
  gap: 5%;
}

header nav ul li a {
  color: black;
  -webkit-text-stroke: 0.4px #333333;
  font-weight: bold;
  text-decoration: none;
  font-size: 120%;
}
#header.fixed {
  position: fixed;
  top: 0; 
  left: 0;
  right: 0; 
  margin: 0 auto; 
  width: 90%; 
  background-color: transparent;
  z-index: 999;}
#logo{
    text-align: center;
    width:100%;
    height: auto;
    position: relative;
}
#logo img{
    width: 45%;
    height: auto;
    margin-top: 40px;
    margin-bottom: 70px;
    filter: drop-shadow(0 0 30px #ffffff)
}
#logo .wave {
  display: block;
  width: 100%;
  height: auto;
  left: 0;
}

#logo .wave {
  position: absolute;
  bottom: -50px; /* 見た目が良ければ微調整して */
  /* bottom は px の方が安定。%やvwだと視点でずれることがある */
  pointer-events: none;
}

#logo .wave path {
  fill: #ffffff; 
}
.wave-container {
  position: relative;
  width: 100%;
  height: auto;
  line-height: 0; 
}
.bottom {
  background-color: #ffffff;
}
#about .A{
    color: #c63527;
    font-size: 230%;
    margin-left: 14%;
}
#about h1{
    color: #333333;
    font-size: 380%;
}
#about h3{
    font-size: 150%;
    color: #333333;
    margin-left: 17%;
}
#date .D{
    color: #c63527;
    font-size: 230%;
    text-align: right;
}
#date h1{
    color: #333333;
    font-size: 380%;
    text-align: right;
    margin-right: 34%;
}
#date h3{
    font-size: 175%;
    color: #333333;
    margin-right: 14%;
    text-align: right;
}
#date h4{
    font-size: 175%;
    color: #333333;
    margin-right: 14%;
    text-align: right;
    padding-bottom: 130pt;
}
.fade-in {
  opacity: 0;
  transform: translateY(20px); /* ちょっと下にずらす（浮かび上がる感） */
  transition: all 1s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

#shutuennsha .S{
    color: #c63527;
    font-size: 220%;
    margin-left: 14%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#shutuennsha h1{
    color: #ffffff;
    font-size: 370%;
}
#nami {
  position: relative;   /* ← これがないと absolute が画面基準になる */
  width: 100%;
  overflow: visible;    /* 必要なら hidden にして波はみ出しを隠す */
}

/* --- 波(svg)の共通設定 --- */
#nami .nami2{
  display: block;
  width: 100%;
  height: auto;
  left: 0;
}
#nami .nami2 {
  position: absolute;
  bottom: 0;       /* 親要素(#nami)の底に合わせる */
  transform: translateY(0); /* 必要なら微調整: translateY(30%) 等 */
  pointer-events: none;
}
#nami .nami2 path {
  fill: #101e4e; 
}
.nami2-container {
  position: relative;
  width: 100%;
  height: auto;
  line-height: 0; 
}
.slider-container {
  display: flex;
  align-items: center;
  position: relative;
  width: 90%;
  max-width: 1000px;
  justify-content: center; 
  margin: 0 auto; 
}
.slider-wrapper {
  overflow: hidden;
  width: 100%;
}
.slider {
  display: flex;
  transition: transform 0.5s ease;
}

.slider img {
  width: 300px;
  height: auto;
  flex-shrink: 0;
  margin: 0 10px;
}

.slide-btn {
  background: none;
  border: none;
  color: #ffffff;
  font-size: 50px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
  user-select: none;
  margin: 0 20px;
}

.slide-btn:hover {
  color: #777;
}

.slide-btn:disabled {
  opacity: 0.3;
  cursor: default;
}
#sinnsainn .N{
    color: #c63527;
    font-size: 220%;
    margin-left: 14%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#sinnsainn h1{
    color: #ffffff;
    font-size: 370%;
  }
  #sinnsainn img{
    width: 25%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
  #cm .C{
    color: #c63527;
    font-size: 200%;
    margin-left: 14%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#cm h1{
    color: #ffffff;
    font-size: 450%;
}
#cm video {
    width: 60%;
    height: auto;
    display: block;
    margin: 60px auto;
  }
  @media (min-width:1px) and (max-width:767px){
    *{
  padding: 0;
  margin: 0;
}
body {
  font-family: "Zen Old Mincho", serif;
  background-color: #101e4e; 
}
#intro {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #101e4e;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000;
  animation: fadeOut 1s ease forwards;
  animation-delay: 2.5s; /* 2.5秒後にフェードアウト */
}

#intro-logo {
  width: 40%;
  animation: dropLogo 2s ease forwards;
}

@keyframes dropLogo {
  0% {
    transform: translateY(-100vh);
    opacity: 0;
  }
  60% {
    transform: translateY(0);
    opacity: 1;
  }
  75% {
    transform: translateY(-20px); /* 着地の弾み */
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes fadeOut {
  to {
    opacity: 0;
    visibility: hidden;
  }
}
.snow {
  color: snow;
  font-size: 10px;
  position: fixed;
  top: -5%;
  text-shadow:
  5vw   -100px 2px,
  10vw  -400px 3px,
  20vw  -500px 4px,
  30vw  -580px 1px,
  39vw  -250px 2px,
  42vw  -340px 5px,
  56vw  -150px 2px,
  63vw  -180px 0,
  78vw  -220px 4px,
  86vw  -320px 9px,
  94vw  -170px 7px;
  animation: roll 5s linear infinite;
}
.snow2nd{animation: anim 8s linear infinite;}

@keyframes roll {
    0% {transform:rotate(0deg);}
   90% {opacity:1;}
   100% {transform:rotate(20deg);top:100%;opacity:0;}
}
@keyframes anim {
  100% {color:transparent;top:150%;}
}
header {
  width: 90%;
  margin: 0 auto;
  padding: 33px 3px 0 10px;
  position: relative;
  background-color: transparent;
  transition: all 0.4s ease;
  z-index: 999;
}

header nav ul {
  display: flex;
  justify-content: flex-end;
  list-style: none;
  gap: 5%;
}

header nav ul li a {
  color: black;
  -webkit-text-stroke: 0.4px #333333;
  font-weight: bold;
  text-decoration: none;
  font-size: 70%;
}
#header.fixed {
  position: fixed;
  top: 0; 
  left: 0;
  right: 0; 
  margin: 0 auto; 
  width: 90%; 
  background-color: transparent;
  z-index: 999;}
#logo{
    text-align: center;
    width:100%;
    height: auto;
    position: relative;
}
#logo img{
    width: 75%;
    height: auto;
    margin-top: 40px;
    margin-bottom: 0px;
    filter: drop-shadow(0 0 30px #ffffff)
}
#logo .wave {
  display: block;
  width: 100%;
  height: auto;
  left: 0;
}

#logo .wave {
  position: absolute;
  bottom: -50px; /* 見た目が良ければ微調整して */
  /* bottom は px の方が安定。%やvwだと視点でずれることがある */
  pointer-events: none;
}

#logo .wave path {
  fill: #ffffff; 
}
.wave-container {
  position: relative;
  width: 100%;
  height: auto;
  line-height: 0; 
}
.bottom {
  background-color: #ffffff;
}
#about{
  margin-top: -6pt;
}
#about .A{
    color: #c63527;
    font-size: 150%;
    margin-left: 7%;
}
#about h1{
    color: #333333;
    font-size: 280%;
}
#about h3{
    font-size: 85%;
    color: #333333;
    margin-left: 8%;
}
#date .D{
    color: #c63527;
    font-size: 150%;
    text-align: right;
    margin-top: 20px;
}
#date h1{
    color: #333333;
    font-size: 280%;
    text-align: right;
    margin-right: 12%;
}
#date h3{
    font-size: 100%;
    color: #333333;
    margin-right: 7%;
    text-align: right;
}
#date h4{
    font-size: 100%;
    color: #333333;
    margin-right: 7%;
    text-align: right;
    padding-bottom: 50pt;
}
.fade-in {
  opacity: 0;
  transform: translateY(20px); /* ちょっと下にずらす（浮かび上がる感） */
  transition: all 1s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

#shutuennsha .S{
    color: #c63527;
    font-size: 150%;
    margin-left: 7%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#shutuennsha h1{
    color: #ffffff;
    font-size: 280%;
}
#nami {
  position: relative;   /* ← これがないと absolute が画面基準になる */
  width: 100%;
  overflow: visible;    /* 必要なら hidden にして波はみ出しを隠す */
}

/* --- 波(svg)の共通設定 --- */
#nami .nami2{
  display: block;
  width: 100%;
  height: auto;
  left: 0;
}
#nami .nami2 {
  position: absolute;
  bottom: 0;       /* 親要素(#nami)の底に合わせる */
  transform: translateY(0); /* 必要なら微調整: translateY(30%) 等 */
  pointer-events: none;
}

#nami .nami2 path {
  fill: #101e4e; 
}
.nami2-container {
  position: relative;
  width: 100%;
  height: auto;
  line-height: 0; 
}
.slider-container {
  display: flex;
  align-items: center;
  position: relative;
  width: 90%;
  max-width: 1000px;
  justify-content: center; 
  margin: 0 auto; 
}
.slider-wrapper {
  overflow: hidden;
  width: 100%;
}
.slider {
  display: flex;
  transition: transform 0.5s ease;
}

.slider img {
  width: 70%;
  height: auto;
  flex-shrink: 0;
  margin: 0 10px;
}

.slide-btn {
  background: none;
  border: none;
  color: #ffffff;
  font-size: 30px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
  user-select: none;
  margin: 0 20px;
}

.slide-btn:hover {
  color: #777;
}

.slide-btn:disabled {
  opacity: 0.3;
  cursor: default;
}
#sinnsainn .N{
    color: #c63527;
    font-size: 150%;
    margin-left: 7%;
    margin-top: 30px;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#sinnsainn h1{
    color: #ffffff;
    font-size: 280%;
  }
  #sinnsainn img{
    width: 50%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
    #cm .C{
    color: #c63527;
    font-size: 150%;
    margin-left: 7%;
    margin-top: 30px;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#cm h1{
    color: #ffffff;
    font-size: 280%;
}
#cm video {
    width: 60%;
    height: auto;
    display: block;
    margin: 30px auto;
  }
  }
@media  (min-width: 768px) and (max-width: 1000px) {
  *{
  padding: 0;
  margin: 0;
}
body {
  font-family: "Zen Old Mincho", serif;
  background-color: #101e4e; 
}
#intro {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #101e4e;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000;
  animation: fadeOut 1s ease forwards;
  animation-delay: 2.5s; /* 2.5秒後にフェードアウト */
}

#intro-logo {
  width: 40%;
  animation: dropLogo 2s ease forwards;
}

@keyframes dropLogo {
  0% {
    transform: translateY(-100vh);
    opacity: 0;
  }
  60% {
    transform: translateY(0);
    opacity: 1;
  }
  75% {
    transform: translateY(-20px); /* 着地の弾み */
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes fadeOut {
  to {
    opacity: 0;
    visibility: hidden;
  }
}
.snow {
  color: snow;
  font-size: 10px;
  position: fixed;
  top: -5%;
  text-shadow:
  5vw   -100px 2px,
  10vw  -400px 3px,
  20vw  -500px 4px,
  30vw  -580px 1px,
  39vw  -250px 2px,
  42vw  -340px 5px,
  56vw  -150px 2px,
  63vw  -180px 0,
  78vw  -220px 4px,
  86vw  -320px 9px,
  94vw  -170px 7px;
  animation: roll 5s linear infinite;
}
.snow2nd{animation: anim 8s linear infinite;}

@keyframes roll {
    0% {transform:rotate(0deg);}
   90% {opacity:1;}
   100% {transform:rotate(20deg);top:100%;opacity:0;}
}
@keyframes anim {
  100% {color:transparent;top:150%;}
}
header {
  width: 90%;
  margin: 0 auto;
  padding: 10px 50px 0 10px;
  position: relative;
  background-color: transparent;
  transition: all 0.4s ease;
  z-index: 999;
}

header nav ul {
  display: flex;
  justify-content: flex-end;
  list-style: none;
  gap: 5%;
}

header nav ul li a {
  color: black;
  -webkit-text-stroke: 0.4px #333333;
  font-weight: bold;
  text-decoration: none;
  font-size: 120%;
}
#header.fixed {
  position: fixed;
  top: 0; 
  left: 0;
  right: 0; 
  margin: 0 auto; 
  width: 90%; 
  background-color: transparent;
  z-index: 999;}
#logo{
    text-align: center;
    width:100%;
    height: auto;
    position: relative;
}
#logo img{
    width: 60%;
    height: auto;
    margin-top: 40px;
    margin-bottom: 70px;
    filter: drop-shadow(0 0 30px #ffffff)
}
#logo .wave {
  display: block;
  width: 100%;
  height: auto;
  left: 0;
}

#logo .wave {
  position: absolute;
  bottom: -50px; /* 見た目が良ければ微調整して */
  /* bottom は px の方が安定。%やvwだと視点でずれることがある */
  pointer-events: none;
}
#logo .wave path {
  fill: #ffffff; 
}
.wave-container {
  position: relative;
  width: 100%;
  height: auto;
  line-height: 0; 
}
.bottom {
  background-color: #ffffff;
}
#about .A{
    color: #c63527;
    font-size: 230%;
    margin-left: 7%;
}
#about h1{
    color: #333333;
    font-size: 380%;
}
#about h3{
    font-size: 150%;
    color: #333333;
    margin-left: 10%;
}
#date .D{
    color: #c63527;
    font-size: 230%;
    text-align: right;
}
#date h1{
    color: #333333;
    font-size: 380%;
    text-align: right;
    margin-right: 25%;
}
#date h3{
    font-size: 155%;
    color: #333333;
    margin-right: 7%;
    text-align: right;
}
#date h4{
    font-size: 155%;
    color: #333333;
    margin-right: 7%;
    text-align: right;
    padding-bottom: 130pt;
}
.fade-in {
  opacity: 0;
  transform: translateY(20px); /* ちょっと下にずらす（浮かび上がる感） */
  transition: all 1s ease;
}

.fade-in.show {
  opacity: 1;
  transform: translateY(0);
}

#shutuennsha .S{
    color: #c63527;
    font-size: 220%;
    margin-left: 14%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#shutuennsha h1{
    color: #ffffff;
    font-size: 370%;
}

#nami {
  position: relative;   /* ← これがないと absolute が画面基準になる */
  width: 100%;
  overflow: visible;    /* 必要なら hidden にして波はみ出しを隠す */
}

/* --- 波(svg)の共通設定 --- */
#nami .nami2{
  display: block;
  width: 100%;
  height: auto;
  left: 0;
}
#nami .nami2 {
  position: absolute;
  bottom: 0;       /* 親要素(#nami)の底に合わせる */
  transform: translateY(0); /* 必要なら微調整: translateY(30%) 等 */
  pointer-events: none;
}
#nami .nami2 path {
  fill: #101e4e; 
}
.nami2-container {
  position: relative;
  width: 100%;
  height: auto;
  line-height: 0; 
}
.slider-container {
  display: flex;
  align-items: center;
  position: relative;
  width: 90%;
  max-width: 1000px;
  justify-content: center; 
  margin: 0 auto; 
}
.slider-wrapper {
  overflow: hidden;
  width: 100%;
}
.slider {
  display: flex;
  transition: transform 0.5s ease;
}

.slider img {
  width: 300px;
  height: auto;
  flex-shrink: 0;
  margin: 0 10px;
}

.slide-btn {
  background: none;
  border: none;
  color: #ffffff;
  font-size: 50px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
  user-select: none;
  margin: 0 20px;
}

.slide-btn:hover {
  color: #777;
}

.slide-btn:disabled {
  opacity: 0.3;
  cursor: default;
}
#sinnsainn .N{
    color: #c63527;
    font-size: 220%;
    margin-top: 30px;
    margin-left: 14%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#sinnsainn h1{
    color: #ffffff;
    font-size: 370%;
  }
  #sinnsainn img{
    width: 40%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
   #cm .C{
    color: #c63527;
    font-size: 200%;
    margin-left: 14%;
     animation: soft-white-glow 4s ease-in-out infinite;
}

@keyframes soft-white-glow {
    0%, 100% {
        text-shadow:
            0 0 3px rgba(255, 255, 255, 0.8),
            0 0 6px rgba(255, 255, 255, 0.5),
            0 0 9px rgba(255, 255, 255, 0.3);
    }
    50% {
        text-shadow:
            0 0 5px rgba(255, 255, 255, 1),
            0 0 10px rgba(255, 255, 255, 0.7),
            0 0 15px rgba(255, 255, 255, 0.4);
    }
}
#cm h1{
    color: #ffffff;
    font-size: 450%;
}
#cm video {
    width: 60%;
    height: auto;
    display: block;
    margin: 30px auto;
  }
}