@import url('https://fonts.googleapis.com/css2?family=Klee+One&family=Tsukimi+Rounded&family=Yomogi&family=Yuji+Boku&family=Zen+Kurenaido&display=swap');



hr {
    border: none;
}

a,
a:visited,
a:hover,
a:active {
  color: inherit;
  text-decoration: none;
}

.name {
    color: rgba(220, 230, 240, 0.72);
}
.name a {
    color: inherit;
}


body {
  background: linear-gradient(to bottom, #5C9BBC 0%, #2A3E71 100%);
  background-repeat: no-repeat;
  min-height: 100vh;
  margin: 0;

  color: rgba(220, 230, 240, 0.72); /* さっきより一段暗め */
}



/* 泡1 */
body::before {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  left: 20%;
  bottom: -10%;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  animation: float1 12s linear infinite;
}

/* 泡2 */
body::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  left: 70%;
  bottom: -10%;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  animation: float2 14s linear infinite;
}

/* アニメーション */
@keyframes float1 {
  0% {
    transform: translateY(0) scale(0.6);
    opacity: 0;
  }
  30% { opacity: 1; }
  100% {
    transform: translateY(-120vh) scale(1);
    opacity: 0;
  }
}

@keyframes float2 {
  0% {
    transform: translateY(0) scale(0.4);
    opacity: 0;
  }
  40% { opacity: 1; }
  100% {
    transform: translateY(-130vh) scale(1);
    opacity: 0;
  }
}


.center-wrapper {
  text-align: center;
}

.fluffy-heading {
  display: inline-block;
  font-size: 3rem; /* 少し大きめに */
  font-weight: bold; /* ウェイト強め */
  color: #ffffff;
  font-family: 'Yomogi', cursive;
  text-shadow:
    0 0 3px rgba(255, 255, 255, 0.8),
    0 0 6px rgba(255, 255, 255, 0.6);
  animation: fluffyMove 4s ease-in-out infinite;
}

/* ふわふわ上下＆少し回転 */
@keyframes fluffyMove {
  0%, 100% {
    transform: translateY(0) rotate(-2deg);
  }
  25% {
    transform: translateY(-6px) rotate(1deg);
  }
  50% {
    transform: translateY(0) rotate(2deg);
  }
  75% {
    transform: translateY(6px) rotate(-1deg);
  }
}


.box_tl {
  border: solid 1px rgba(255, 255, 255, 0); /* 枠線を透明に */
  box-shadow: none; /* 必要に応じて影を無効に */
  padding: 1em;
  width: 330px;
  height: 150px; /* スクロール可能な高さを指定 */
  overflow: auto; /* 中身があふれたらスクロール */
  margin: 2em auto;
  background-color: rgba(255, 255, 255, 0.1); /* 背景も透明に */
  border-radius: 8px;
  animation: floaty 4s ease-in-out infinite;

font-size: 12px;

}


.box_00 {
  border: solid 1px #fff;
  box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.2);
  padding: 1em;
  width: 330px;
  margin: 2em auto;
  background-color: #fff;
  border-radius: 8px; /* 角を丸く */
  animation: floaty 4s ease-in-out infinite;

font-family: "Klee One", cursive;
font-size: 12px;
color: #000;

}


.box_ex {
  border: solid 2px #5C9BBC;
  box-shadow: 2px 5px 8px rgba(0, 0, 0, 0.25);
  padding: 1em;
  width: 330px;
  margin: 2em auto;
  background-color: rgba(255, 255, 255, 0.75);
  border-radius: 8px;
  animation: floaty 4s ease-in-out infinite;

  font-family: "Klee One", cursive;
  font-size: 12px;
  color: #5C9BBC;

  line-height: 1.9;  /* 行間はここだけに */

  /* ゆるい波線の下線 */
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #c0c0c0;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}


.box_ax {
  border: solid 2px #00A6FE;
  box-shadow: 2px 5px 8px rgba(0, 0, 0, 0.25);
  padding: 1em;
  width: 330px;
  margin: 2em auto;
  background-color: rgba(255, 255, 255, 0.75);
  border-radius: 8px;
  animation: floaty 4s ease-in-out infinite;

  font-family: "Klee One", cursive;
  font-size: 12px;
  color: #00A6FE;

  line-height: 1.9;  /* 行間はここだけに */

  /* ゆるい波線の下線 */
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #c0c0c0;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}


.box_rore {
  border: solid 2px #C10E49;
  box-shadow: 2px 5px 8px rgba(0, 0, 0, 0.25);
  padding: 1em;
  width: 330px;
  margin: 2em auto;
  background-color: rgba(255, 255, 255, 0.75);
  border-radius: 8px;
  animation: floaty 4s ease-in-out infinite;

  font-family: "Klee One", cursive;
  font-size: 12px;
  color: #C10E49;

  line-height: 1.9;  /* 行間はここだけに */

  /* ゆるい波線の下線 */
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #c0c0c0;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}


.box_naru {
  border: solid 2px #ff77ff;
  box-shadow: 2px 5px 8px rgba(0, 0, 0, 0.25);
  padding: 1em;
  width: 330px;
  margin: 2em auto;
  background-color: rgba(255, 255, 255, 0.75);
  border-radius: 8px;
  animation: floaty 4s ease-in-out infinite;

  font-family: "Klee One", cursive;
  font-size: 12px;
  color: #ff77ff;

  line-height: 1.9;  /* 行間はここだけに */

  /* ゆるい波線の下線 */
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #c0c0c0;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}


.box_free {
  border: solid 2px #808080;
  box-shadow: 2px 5px 8px rgba(0, 0, 0, 0.25);
  padding: 1em;
  width: 330px;
  margin: 2em auto;
  background-color: rgba(255, 255, 255, 0.75);
  border-radius: 8px;
  animation: floaty 4s ease-in-out infinite;

  font-family: "Klee One", cursive;
  font-size: 12px;
  color: #808080;

  line-height: 1.9;  /* 行間はここだけに */

  /* ゆるい波線の下線 */
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #c0c0c0;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}


@keyframes floaty {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}




.markerex {
  background: linear-gradient(transparent 50%, #5C9BBC 50%);
font-weight: bold;
}

.markerax {
  background: linear-gradient(transparent 50%, #00A6FE 50%);
font-weight: bold;

}

.markerrore {
  background: linear-gradient(transparent 50%, #C10E49 50%);
font-weight: bold;
}

.markernaru {
  background: linear-gradient(transparent 50%, #ff77ff 50%);
font-weight: bold;

}

.markerhiba {
  background: linear-gradient(transparent 50%, #CD3764 50%);
font-weight: bold;

}

.markeraki {
  background: linear-gradient(transparent 50%, #F03C32 50%);
font-weight: bold;

}

.markerkana {
  background: linear-gradient(transparent 50%, #ABD3D8 50%);
font-weight: bold;

}

.markerama {
  background: linear-gradient(transparent 50%, #C5EDFF 50%);
font-weight: bold;

}

.markerkuzu {
  background: linear-gradient(transparent 50%, #ACA7BB 50%);
font-weight: bold;

}

.markerfuwa {
  background: linear-gradient(transparent 50%, #BF69F4 50%);
font-weight: bold;

}

.markerkage {
  background: linear-gradient(transparent 50%, #6EB487 50%);
font-weight: bold;

}

.markerari {
  background: linear-gradient(transparent 50%, #ea7b3a 50%);
font-weight: bold;

}

.markerdaru {
  background: linear-gradient(transparent 50%, #E83926 50%);
font-weight: bold;

}

.markerriri {
  background: linear-gradient(transparent 50%, #EF6F94 50%);
font-weight: bold;

}




/* アイコン＋文字を縦に並べるコンテナ */
.icon-container {
  display: flex;
  flex-direction: column; /* 縦に並べる */
  gap: 8px;               /* 各行の間隔 */
  padding: 10px;
}

/* 各アイコン＋文字の行 */
.icon-item {
  display: flex;
  align-items: center;    /* アイコンと文字を縦方向で中央揃え */
  gap: 6px;               /* アイコンと文字の間隔 */
}

/* ベースのアイコン */
.profile-solid.icon {
  width: 14px;
  height: 6px;
  border-left: solid 1px currentColor;
  border-right: solid 1px currentColor;
  border-top: solid 1px currentColor;
  border-bottom: solid 1px transparent;
  background-color: currentColor;
  border-radius: 6px 6px 0 0;
  position: relative;
}

.profile-solid.icon:before {
  content: '';
  position: absolute;
  left: 2px;
  top: -10px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: solid 1px currentColor;
  background-color: currentColor;
}

/* 色バリエーション */
.profile-color-ex   { color: #5C9BBC; }
.profile-color-ax   { color: #00A6FE; }
.profile-color-rore { color: #C10E49; }
.profile-color-naru { color: #ff77ff; }
.profile-color-free { color: #808080; }



.music-container {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
}

.music-text {
  display: inline-block;
  padding-left: 100%;
  animation: music-marquee 10s linear infinite;
}

@keyframes music-marquee {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-100%);
  }
}



/*---------------------------------
アコーディオンボックス
--------------------------------*/

.acbox {
  margin: 0 8px;
  text-align: left;
}

.acbox label {
  font-size: 10px;
  font-weight: 300;
  text-align: left;
  background: transparent;
  color: #333;
  position: relative;
  display: block;
  padding: 6px 6px 2px 24px;
  border-radius: 4px;
  cursor: pointer;
  line-height: 16px;
  text-decoration: none; /* 下線なし */
}

.acbox label:hover {
  background: transparent;
}

.acbox input {
  display: none;
}

.acbox label:after {
  color: #333;
  content: "🪸"; /* 初期アイコン */
  position: absolute;
  top: 50%;
  left: 6px;
  margin-top: -8px;
  font-size: 10px;
}

.acbox input:checked ~ label::after {
  content: "🦐"; /* 開いたときのアイコン */
}

.acbox div {
  height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 1.5s ease; /* 1.5秒でゆっくり開閉 */
  margin-top: 6px; /* タイトルとの間隔 */
}

.acbox input:checked ~ div {
  height: auto;
  padding: 1px 10px; /* 上下：1px、左右：10px */
  background: #F3F4F5;
  opacity: 1;
  border-radius: 8px;
}

.acbox input:checked ~ label {
  background: transparent;
}

.acbox-under {
  font-size: 10px;
  color: #555555;
}



.talk {
    width: 60%;
    height: 150px;
    margin: 0 auto;
    padding: 15px;
    border: 1px #ddd solid;
    background: rgba(255, 255, 255, 0.8); /* 👈 白の80%不透明 */
    color: #333;
    overflow-y: scroll;
}



/* talk を削除版 */

.ax,
.ex,
.kage,
.lore,
.kana {
  position: relative;
  display: inline-block;
  max-width: 192px;
  margin: 1px 10px 6px;
  padding: 9px 14px;
  border-radius: 19px;
  overflow-wrap: break-word;
  clear: both;
  color: #ffffff;
  box-sizing: content-box;
}

.ax.no,
.ex.no,
.kage.no,
.lore.no,
.kana.no {
  margin-bottom: 0;
}

.kage.left {
  float: left;
  background: #6EB487;
}

.lore.left,
.lore.right {
  float: left; /* 左右で float は後で上書きされるので問題なし */
  background: #C10E49;
}

.kana.left,
.kana.right {
  float: left;
  background: #ABD3D8;
}

.ax.right {
  float: right;
  background: #00A6FE;
}

.ex.right {
  float: right;
  background: #5C9BBC;
}

.kage.left {
  float: left;
}

.lore.right,
.kana.right {
  float: right;
}

.ax::after,
.ex::after,
.kage::after,
.lore::after,
.kana::after {
  position: absolute;
  content: "";
  width: 17px;
  height: 17px;
  bottom: 0;
}

.kage.left::after {
  left: -6px;
  border-radius: 0 0 17px 0 / 0 0 13px 0;
  box-shadow: -14px 2px 0 -3px #6EB487 inset;
}

.lore.left::after {
  left: -6px;
  border-radius: 0 0 17px 0 / 0 0 13px 0;
  box-shadow: -14px 2px 0 -3px #C10E49 inset;
}

.kana.left::after {
  left: -6px;
  border-radius: 0 0 17px 0 / 0 0 13px 0;
  box-shadow: -14px 2px 0 -3px #ABD3D8 inset;
}

.ax.right::after {
  right: -6px;
  border-radius: 0 0 0 17px / 0 0 0 13px;
  box-shadow: 14px 2px 0 -3px #00A6FE inset;
}

.ex.right::after {
  right: -6px;
  border-radius: 0 0 0 17px / 0 0 0 13px;
  box-shadow: 14px 2px 0 -3px #5C9BBC inset;
}

.lore.right::after {
  right: -6px;
  border-radius: 0 0 0 17px / 0 0 0 13px;
  box-shadow: 14px 2px 0 -3px #C10E49 inset;
}

.kana.right::after {
  right: -6px;
  border-radius: 0 0 0 17px / 0 0 0 13px;
  box-shadow: 14px 2px 0 -3px #ABD3D8 inset;
}

.ax.no::after,
.ex.no::after,
.kage.no::after,
.lore.no::after,
.kana.no::after {
  content: none;
}



.m1 {
 margin: 2em auto;
 padding: 1em;
 width: 200px;
 border: 1px solid #ccc; /* 枠線 */
 border-radius: 15px;
 background-color: #dcdcdc; /* 背景色 */
 box-shadow: 1px 1px 2px #ccc;
animation: floaty 4s ease-in-out infinite;

}

.m2 {
   position: relative;
    width:90px;
    height:100px;
	margin:2em auto;
	padding:2em;/*内側余白*/
	border:solid 1px #333;/*線の種類・太さ・色*/
}


.wave-bar-loader {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 4px;
  height: 60px;
}

.wave-bar-loader span {
  display: block;
  width: 6px;
  height: 60px;
  background-color: #3498db;
  border-radius: 3px;
  transform-origin: bottom;
  animation: musicWave 2.4s infinite ease-in-out; /* ゆっくりに */
}

/* 遅延をずらしてリズム感 */
.wave-bar-loader span:nth-child(1) { animation-delay: 0s; }
.wave-bar-loader span:nth-child(2) { animation-delay: 0.2s; }
.wave-bar-loader span:nth-child(3) { animation-delay: 0.4s; }
.wave-bar-loader span:nth-child(4) { animation-delay: 0.6s; }
.wave-bar-loader span:nth-child(5) { animation-delay: 0.8s; }
.wave-bar-loader span:nth-child(6) { animation-delay: 1s; }
.wave-bar-loader span:nth-child(7) { animation-delay: 1.2s; }

/* ゆったりマイルドな波形 */
@keyframes musicWave {
  0%   { transform: scaleY(0.5); }
  10%  { transform: scaleY(0.7); }
  20%  { transform: scaleY(0.6); }
  30%  { transform: scaleY(0.8); }
  40%  { transform: scaleY(0.65); }
  50%  { transform: scaleY(1); }
  60%  { transform: scaleY(0.7); }
  70%  { transform: scaleY(0.85); }
  80%  { transform: scaleY(0.6); }
  90%  { transform: scaleY(0.75); }
  100% { transform: scaleY(0.5); }
}


.scroll {
  margin     : auto;
  width      : 80%;
  font-size  : 100%;
  text-align : center;
  line-height: 1.5em;
  color      : #000000;
 
  overflow   : hidden;
}
.scroll span{
  display     : inline-block;
  padding-left: 100%;
  white-space : nowrap;
  line-height : 1em;
  animation   : scrollAnime 10s linear infinite;
}
@keyframes scrollAnime{
    0% { transform: translateX(0)}
  100% { transform: translateX(-100%)}
}


