@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@700;900&display=swap");

/*
  disco-ray — Discord Reactive 用オーバーレイテーマ
  ここが唯一のマスターファイル。/theme.css はこの内容に :root の上書きを足して返す。
  値はすべて CSS 変数なので、生成側（src/index.js）から差し替えられる。
*/
:root {
  /* リングのグラデーション色（rgb の数値3つで指定） */
  --dr-c1: 243, 230, 255;
  --dr-c2: 216, 184, 255;
  --dr-c3: 184, 133, 255;
  --dr-c4: 142, 91, 222;

  --dr-ring-op: 1;          /* リング全体の不透明度 */
  --dr-radius: 30%;         /* アイコン／リングの角丸（50% で円） */
  --dr-avatar: 120px;       /* アイコンサイズ */

  --dr-font: "LINE Seed JP", sans-serif;
  --dr-name-size: 48px;
  --dr-name-bg: 0, 0, 0;
  --dr-name-op: 0.5;
  --dr-name-radius: 20px;

  --dr-anim: 300ms;         /* ぴょこアニメの1周期 */
}

/* 全体を左上寄せに */
#embed > div > .flex {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  padding: 20px 0 0 16px !important;
}

/* メンバーを縦に並べる */
#embed > div > .flex > .flex > .flex {
  flex-direction: column !important;
  gap: 16px !important;
}

#embed [data-discord-id] {
  width: auto !important;
  flex-shrink: 0 !important;
}

/* アイコン枠。Reactive がインラインで付ける aspect-ratio（=モデル画像の縦横比）に
   負けないよう、幅・高さ・比率をすべて固定する */
#embed [data-discord-id] > .relative {
  width: var(--dr-avatar) !important;
  height: var(--dr-avatar) !important;
  aspect-ratio: 1 / 1 !important;
  flex: 0 0 var(--dr-avatar) !important;
  gap: 10px !important;
}

/* アイコンの後ろの光るリング */
#embed [data-discord-id] > .relative::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: -6px !important;
  width: calc(var(--dr-avatar) + 12px) !important;
  height: calc(var(--dr-avatar) + 12px) !important;
  transform: translateY(-50%);
  border-radius: var(--dr-radius) !important;
  opacity: var(--dr-ring-op);
  background:
    radial-gradient(120% 120% at 18% 14%, rgba(255, 255, 255, 0.32) 0%, rgba(255, 255, 255, 0) 38%),
    linear-gradient(
      155deg,
      rgba(var(--dr-c1), 0.58) 0%,
      rgba(var(--dr-c2), 0.52) 32%,
      rgba(var(--dr-c3), 0.46) 66%,
      rgba(var(--dr-c4), 0.4) 100%
    ) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -6px 10px rgba(90, 42, 181, 0.14),
    0 0 8px rgba(203, 163, 255, 0.18),
    0 0 16px rgba(166, 120, 255, 0.12) !important;
  pointer-events: none !important;
}

#embed [data-discord-id] canvas {
  z-index: 1 !important;
  width: var(--dr-avatar) !important;
  height: var(--dr-avatar) !important;
  /* Tailwind の max-w-full/max-h-full が幅を親サイズでクランプするのを防ぐ */
  max-width: none !important;
  max-height: none !important;
  flex: 0 0 var(--dr-avatar) !important;
  border-radius: var(--dr-radius) !important;
}

/* 名前の帯 */
#embed [data-discord-id] .text-center {
  font-family: var(--dr-font) !important;
  font-weight: 800 !important;
  font-style: normal !important;
  font-size: var(--dr-name-size) !important;
  position: static !important;
  width: auto !important;
  flex: 0 0 auto !important;
  text-align: left !important;
  padding: 8px 16px !important;
  border-radius: var(--dr-name-radius) !important;
  background: rgba(var(--dr-name-bg), var(--dr-name-op)) !important;
  color: #fff;
  -webkit-text-stroke: 1.5px rgba(0, 0, 0, 0.95);
  text-shadow: 0 0 2px rgba(49, 16, 89, 0.95), 0 1px 3px rgba(49, 16, 89, 0.85);
}

@keyframes pyoko {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(0, -10px) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes pyoko-ring {
  0% { transform: translateY(-50%) translate(0, 0) rotate(0deg); }
  50% { transform: translateY(-50%) translate(0, -10px) rotate(0deg); }
  100% { transform: translateY(-50%) translate(0, 0) rotate(0deg); }
}

[data-speaking="true"] canvas {
  animation: pyoko var(--dr-anim) infinite linear alternate;
}

#embed [data-speaking="true"] > .relative::before {
  animation: pyoko-ring var(--dr-anim) infinite linear alternate !important;
}

/* generated by disco-ray */
:root {
  --dr-c1: 193, 239, 210;
  --dr-c2: 140, 225, 171;
  --dr-c3: 74, 207, 123;
  --dr-c4: 31, 177, 85;
  --dr-ring-op: 1;
  --dr-radius: 30%;
  --dr-avatar: 120px;
  --dr-font: "Zen Maru Gothic", sans-serif;
  --dr-name-size: 48px;
  --dr-name-bg: 0, 0, 0;
  --dr-name-op: 0.5;
  --dr-anim: 300ms;
}
