/* ── ロマサガしりとり（リンク限定β版） ───────────────────────── */
.shiritori-shell {
  --sh-pink: #ff4f9a;
  --sh-yellow: #ffd84a;
  --sh-cyan: #38e3ff;
  --sh-mint: #70f2b4;
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  padding: 64px 14px 20px;
  color: #fff;
  background:
    radial-gradient(circle at 12% 8%, rgba(255, 79, 154, .28), transparent 24rem),
    radial-gradient(circle at 88% 16%, rgba(56, 227, 255, .22), transparent 26rem),
    radial-gradient(circle at 50% 100%, rgba(112, 242, 180, .16), transparent 30rem),
    #121125;
  font-family: var(--font-nitalago);
}

.shiritori-shell::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .45;
  background-image: radial-gradient(circle, rgba(255,255,255,.2) 1.2px, transparent 1.5px);
  background-size: 22px 22px;
  mask-image: linear-gradient(#000, transparent 90%);
}

.shiritori-shell.is-connection-time {
  background:
    radial-gradient(circle at 12% 10%, rgba(255,225,85,.56), transparent 26rem),
    radial-gradient(circle at 88% 22%, rgba(255,183,31,.44), transparent 28rem),
    radial-gradient(circle at 50% 92%, rgba(255,211,75,.34), transparent 35rem),
    linear-gradient(145deg, #241411 0%, #4a2812 34%, #221431 70%, #17111e 100%);
  background-size: 120% 120%, 124% 124%, 116% 116%, 100% 100%;
  animation: shiritori-connection-time-background 5.8s ease-in-out infinite alternate;
  box-shadow: inset 0 0 100px rgba(255,193,38,.16);
}

@keyframes shiritori-connection-time-background {
  from { background-position: 0% 0%, 100% 10%, 42% 100%, center; }
  to { background-position: 10% 7%, 90% 22%, 56% 90%, center; }
}

.shiritori-confetti {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.shiritori-confetti > i {
  position: absolute;
  display: block;
  width: 48px;
  height: 48px;
  color: var(--sh-cyan);
  opacity: .42;
  filter: drop-shadow(0 0 9px currentColor);
  animation: shiritori-space-float 7s ease-in-out infinite alternate;
}

.shiritori-confetti > i span,
.shiritori-confetti > i::before,
.shiritori-confetti > i::after { position: absolute; content: ""; display: block; }

.shiritori-confetti .is-ufo { top: 13%; left: max(2%, calc(50% - 430px)); color: var(--sh-cyan); transform: rotate(-8deg); }
.shiritori-confetti .is-ufo::before { left: 12px; top: 12px; width: 24px; height: 13px; border: 3px solid currentColor; border-radius: 50% 50% 35% 35%; }
.shiritori-confetti .is-ufo::after { left: 4px; top: 23px; width: 40px; height: 10px; border: 3px solid currentColor; border-radius: 50%; background: rgba(18,17,37,.78); }
.shiritori-confetti .is-ufo span { left: 17px; top: 35px; width: 14px; height: 8px; background: linear-gradient(90deg, transparent, currentColor, transparent); clip-path: polygon(35% 0,65% 0,100% 100%,0 100%); opacity: .7; }

.shiritori-confetti .is-planet { top: 30%; right: max(1%, calc(50% - 440px)); color: var(--sh-pink); animation-delay: -2.3s; }
.shiritori-confetti .is-planet::before { inset: 10px; border: 3px solid currentColor; border-radius: 50%; background: rgba(255,79,154,.08); }
.shiritori-confetti .is-planet::after { left: 1px; top: 20px; width: 46px; height: 13px; border: 3px solid currentColor; border-radius: 50%; transform: rotate(-18deg); }

.shiritori-confetti .is-satellite { top: 58%; left: max(1%, calc(50% - 445px)); color: var(--sh-yellow); transform: rotate(-13deg); animation-delay: -4.1s; }
.shiritori-confetti .is-satellite::before { left: 18px; top: 15px; width: 14px; height: 20px; border: 3px solid currentColor; border-radius: 3px; background: rgba(255,216,74,.1); }
.shiritori-confetti .is-satellite::after { left: 0; top: 17px; width: 48px; height: 16px; background: linear-gradient(90deg, transparent 0 4px, currentColor 4px 15px, transparent 15px 33px, currentColor 33px 44px, transparent 44px); opacity: .85; }
.shiritori-confetti .is-satellite span { left: 23px; top: 7px; width: 16px; height: 16px; border-top: 2px solid currentColor; transform: rotate(34deg); }

.shiritori-confetti .is-dish { top: 79%; right: max(2%, calc(50% - 430px)); color: var(--sh-mint); animation-delay: -1.2s; }
.shiritori-confetti .is-dish::before { left: 7px; top: 5px; width: 28px; height: 28px; border-right: 4px solid currentColor; border-bottom: 4px solid currentColor; border-radius: 0 0 100% 0; transform: rotate(42deg); }
.shiritori-confetti .is-dish::after { left: 23px; top: 29px; width: 4px; height: 16px; border-radius: 3px; background: currentColor; }
.shiritori-confetti .is-dish span { left: 13px; top: 43px; width: 25px; height: 3px; border-radius: 50%; background: currentColor; }

@keyframes shiritori-space-float {
  from { translate: 0 -5px; opacity: .31; }
  to { translate: 0 7px; opacity: .55; }
}

.shiritori-board {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  margin: 0 auto;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.25);
  border-radius: 32px;
  background: rgba(21, 20, 40, .9);
  box-shadow: 0 28px 80px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.12);
  backdrop-filter: blur(14px);
}

.shiritori-history-board {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  margin: 48px auto 0;
}

.shiritori-xavi-growth {
  position: relative;
  overflow: hidden;
  margin-top: 18px;
  padding: 9px 12px;
  border-color: rgba(255, 216, 74, .42);
  background:
    radial-gradient(circle at 12% 18%, rgba(255,79,154,.16), transparent 36%),
    linear-gradient(145deg, rgba(30,24,54,.96), rgba(16,25,47,.96));
  transition: border-color .2s ease, box-shadow .2s ease;
}

.shiritori-xavi-growth::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(255,216,74,.12);
  border-radius: inherit;
  pointer-events: none;
}

.shiritori-xavi-growth.is-open {
  padding: 11px 14px 14px;
  border-color: rgba(255, 216, 74, .58);
  box-shadow: 0 20px 52px rgba(0,0,0,.42), inset 0 1px rgba(255,255,255,.12);
}

.shiritori-connection-time-history {
  overflow: visible;
  margin-top: 12px;
  border-color: rgba(255, 214, 71, .7);
  border-radius: 22px;
  background:
    radial-gradient(circle at 10% 0, rgba(255,231,112,.27), transparent 35%),
    radial-gradient(circle at 96% 96%, rgba(255,156,45,.18), transparent 46%),
    linear-gradient(145deg, rgba(70,45,22,.95), rgba(31,27,43,.96) 72%);
  box-shadow: 0 15px 38px rgba(0,0,0,.35), 0 0 26px rgba(255,203,59,.14), inset 0 1px rgba(255,255,255,.18);
}

.shiritori-connection-time-history::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(255,242,166,.19);
  border-radius: 17px;
  pointer-events: none;
}

.shiritori-connection-time-history-toggle {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 13px;
  border: 0;
  color: #fff9d9;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.shiritori-connection-time-history-toggle > span { display: inline-flex; align-items: center; gap: 8px; }
.shiritori-connection-time-history-toggle i {
  color: #ffe35c;
  font-size: 18px;
  font-style: normal;
  text-shadow: 0 0 10px rgba(255,231,103,.9), 0 0 20px rgba(255,171,45,.7);
  animation: shiritori-connection-time-star 2.1s ease-in-out infinite;
}
.shiritori-connection-time-history-toggle b { font-size: 16px; font-weight: 950; letter-spacing: .05em; }
.shiritori-connection-time-history-toggle em {
  color: rgba(255,248,210,.78);
  font-size: 20px;
  font-style: normal;
  line-height: .7;
  transition: transform .2s ease;
}
.shiritori-connection-time-history.is-open .shiritori-connection-time-history-toggle em { transform: translateY(2px) rotate(180deg); }

.shiritori-connection-time-history-details {
  position: relative;
  z-index: 1;
  padding: 0 13px 14px;
  border-top: 1px solid rgba(255,240,161,.23);
  animation: shiritori-growth-open .22s ease-out both;
}

.shiritori-connection-time-discoveries {
  margin: 10px 0 9px;
  text-align: center;
}
.shiritori-connection-time-discoveries > small {
  display: block;
  margin: 0 0 6px;
  color: rgba(255,248,213,.78);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .16em;
}
.shiritori-connection-time-discoveries > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px 7px;
}
.shiritori-connection-time-discoveries span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 21px;
  padding: 2px 10px 3px;
  border: 1px solid rgba(255,233,130,.58);
  border-radius: 999px;
  color: #fff4ad;
  background: linear-gradient(115deg, rgba(126,87,28,.72), rgba(50,37,42,.88));
  box-shadow: inset 0 1px rgba(255,255,255,.13), 0 0 8px rgba(255,207,70,.12);
  font-size: 11px;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}
.shiritori-connection-time-discoveries span.is-undiscovered {
  border-color: rgba(163,141,63,.42);
  color: rgba(203,190,132,.48);
  background: rgba(44,37,37,.58);
  box-shadow: none;
}
.shiritori-connection-time-discoveries span.is-saga-talk.is-discovered {
  border-color: rgba(116,235,255,.92);
  color: #ddfbff;
  background: linear-gradient(115deg, rgba(13,129,190,.88), rgba(32,58,173,.9));
  box-shadow: inset 0 1px rgba(255,255,255,.28), 0 0 10px rgba(49,210,255,.35);
}
.shiritori-connection-time-discoveries span.is-saga-talk.is-undiscovered {
  border-color: rgba(82,151,186,.38);
  color: rgba(142,203,225,.45);
  background: rgba(22,53,74,.58);
}
.shiritori-connection-time-discoveries span.is-active-new-theme {
  animation: shiritoriNewDiscoveryThemePulse 1.1s ease-in-out infinite;
}
@keyframes shiritoriNewDiscoveryThemePulse {
  50% { filter: brightness(1.38); transform: scale(1.07); box-shadow: 0 0 15px rgba(255,229,95,.92), inset 0 1px rgba(255,255,255,.32); }
}

.shiritori-connection-time-history-list { display: grid; gap: 7px; margin: 11px 0 0; padding: 0; list-style: none; }
.shiritori-connection-time-history-list li,
.shiritori-connection-time-history-best p {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 8px 11px;
  border: 1px solid rgba(255,233,130,.25);
  border-radius: 12px;
  background: linear-gradient(115deg, rgba(83,55,24,.68), rgba(22,27,50,.76));
  box-shadow: inset 0 1px rgba(255,255,255,.08);
}
.shiritori-connection-time-discoveries span { position: relative; }
.shiritori-connection-time-discoveries em,
.shiritori-connection-time-history-new { color:#fff09b; font-family:"fot-chiaro-std",sans-serif; font-weight:700; font-style:normal; text-shadow:0 0 10px #ffe34d; }
.shiritori-connection-time-discoveries em { position:absolute; top:-15px; left:5px; font-size:12px; }
.shiritori-connection-time-history-list li { position:relative; }
.shiritori-connection-time-history-new { position:absolute; top:-10px; left:7px; font-size:13px; }
.shiritori-connection-time-history-list li.is-live time { color: #fff1a3; text-shadow: 0 0 8px rgba(255,224,91,.8); }
.shiritori-connection-time-history-live-count { display: inline-block; animation: shiritoriLiveConnectionCount 1s ease-in-out infinite; }
@keyframes shiritoriLiveConnectionCount { 50% { color: #fff7b3; text-shadow: 0 0 13px #ffe35d; transform: scale(1.16); } }
.shiritori-connection-time-history.is-new-theme-active { animation: shiritoriNewThemeHistoryPulse 1.35s ease-in-out infinite; }
@keyframes shiritoriNewThemeHistoryPulse { 50% { filter: brightness(1.35); box-shadow: 0 0 28px rgba(255,229,95,.85), inset 0 0 22px rgba(255,224,82,.32); } }
.shiritori-connection-time-history-summary {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: clamp(9px, 2.4vw, 18px);
}
.shiritori-connection-time-history-summary > strong { flex: 0 1 auto; }
.shiritori-connection-time-history-list strong,
.shiritori-connection-time-history-best strong {
  min-width: 0;
  overflow: hidden;
  color: #fff4ad;
  font-size: 14px;
  font-weight: 950;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shiritori-connection-time-history-list span,
.shiritori-connection-time-history-best span { color: #fff; font-size: 12px; font-weight: 900; white-space: nowrap; }
.shiritori-connection-time-history-list span b,
.shiritori-connection-time-history-best span b { margin-left: 2px; color: #ffe35d; font-family: var(--font-bebas), sans-serif; font-size: 21px; line-height: .7; vertical-align: -.08em; }
.shiritori-connection-time-history-list time,
.shiritori-connection-time-history-best time { color: #fff; font-family: var(--font-bebas), sans-serif; font-size: 15px; letter-spacing: .04em; white-space: pre; }

.shiritori-connection-time-history-empty { margin: 15px 2px 4px; color: rgba(255,248,213,.65); font-size: 11px; font-weight: 800; text-align: center; }
.shiritori-connection-time-history-more {
  display: block;
  min-width: min(100%, 220px);
  margin: 9px auto 0;
  padding: 5px 18px 6px;
  border: 1px solid rgba(255,222,106,.34);
  border-radius: 9px;
  color: #fff7d3;
  background: linear-gradient(105deg, rgba(105,61,21,.88), rgba(83,48,24,.86));
  box-shadow: inset 0 1px rgba(255,255,255,.1);
  font: inherit;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
}
.shiritori-connection-time-history-more:hover:not(:disabled) { filter: brightness(1.16); }
.shiritori-connection-time-history-more:disabled { cursor: wait; opacity: .68; }
.shiritori-connection-time-history-load-error { margin: 7px 0 0; color: #ffd6d6; font-size: 11px; font-weight: 800; text-align: center; }
.shiritori-connection-time-history-best { margin-top: 11px; padding-top: 11px; border-top: 1px dashed rgba(255,237,145,.33); }
.shiritori-connection-time-history-best small { display: block; margin: 0 3px 10px; color: #ffe264; font-size: 20px; font-weight: 950; letter-spacing: .32em; text-align: center; text-shadow: 0 0 10px rgba(255,209,62,.4); white-space: nowrap; }
.shiritori-connection-time-history-best p { border-color: rgba(255,222,85,.7); background: linear-gradient(115deg, rgba(139,89,22,.6), rgba(62,38,44,.86)); box-shadow: 0 0 17px rgba(255,202,57,.17), inset 0 1px rgba(255,255,255,.13); }

.shiritori-connection-time-end-marker,
.shiritori-connection-time-start-marker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: min(92%, 570px);
  margin: 20px auto 8px;
  color: #fff;
  font-size: clamp(11px, 3vw, 14px);
  font-weight: 900;
  letter-spacing: .035em;
  line-height: 1.25;
  text-align: center;
  text-shadow: 0 2px 5px rgba(0,0,0,.78), 0 0 8px rgba(255,255,255,.18);
}

.shiritori-connection-time-end-marker::before,
.shiritori-connection-time-end-marker::after,
.shiritori-connection-time-start-marker::before,
.shiritori-connection-time-start-marker::after {
  content: "";
  flex: 1 1 42px;
  max-width: 76px;
  height: 1px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 1px 4px rgba(0,0,0,.58);
}

.shiritori-connection-time-end-marker span,
.shiritori-connection-time-end-marker b,
.shiritori-connection-time-start-marker span,
.shiritori-connection-time-start-marker b { white-space: nowrap; }
.shiritori-connection-time-end-marker b,
.shiritori-connection-time-start-marker b { font-weight: 950; }
.shiritori-connection-time-start-marker { margin: 8px auto 20px; }

@keyframes shiritori-connection-time-star { 0%, 100% { opacity: .65; transform: scale(.88) rotate(-8deg); } 50% { opacity: 1; transform: scale(1.12) rotate(10deg); } }

.shiritori-xavi-growth-toggle {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0;
  border: 0;
  color: #fff;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.shiritori-xavi-open-hint {
  position: absolute;
  right: 29px;
  bottom: -5px;
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  color: rgba(255,255,255,.96);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .035em;
  line-height: 1;
  text-shadow: 0 1px 5px rgba(255,255,255,.18), 0 2px 5px rgba(0,0,0,.48);
  animation: shiritori-open-hint 2.4s ease-in-out infinite;
}

.shiritori-xavi-open-hint > b {
  font-family: var(--font-bebas), sans-serif;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: .72;
}

.shiritori-xavi-like-hint {
  display: inline-flex;
  grid-column: 2;
  justify-self: center;
  margin: 0 6px;
  padding: 3px 8px;
  border: 1px solid rgba(255,216,74,.45);
  border-radius: 999px 999px 4px 999px;
  color: #33263d;
  background: rgba(255,248,207,.92);
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  font-size: 8px;
  font-weight: 900;
  white-space: nowrap;
  animation: shiritori-like-hint-peek 4.2s ease-in-out infinite;
}

@keyframes shiritori-open-hint { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
@keyframes shiritori-like-hint-peek { 0%, 15%, 100% { transform: translateY(2px); opacity: .68; } 30%, 72% { transform: translateY(0); opacity: .94; } }

.shiritori-xavi-growth-avatar {
  position: relative;
  flex: 0 0 auto;
}

.shiritori-xavi-growth-avatar img {
  display: block;
  width: 46px;
  height: 46px;
  border: 2px solid rgba(255,255,255,.84);
  border-radius: 50%;
  object-fit: cover;
  background: #21162d;
  filter: drop-shadow(0 4px 7px rgba(0,0,0,.38));
}

.shiritori-xavi-growth-avatar i {
  position: absolute;
  top: -4px;
  right: -4px;
  display: grid;
  min-width: 19px;
  height: 19px;
  padding: 0 4px;
  place-items: center;
  border: 2px solid #241a38;
  border-radius: 999px;
  color: #fff;
  background: var(--sh-pink);
  font-size: 9px;
  font-style: normal;
  font-weight: 950;
}

.shiritori-xavi-growth-toggle > span:nth-child(2) {
  flex: 1 1 auto;
  font-size: 18px;
  font-weight: 950;
}

.shiritori-xavi-growth-toggle > strong {
  flex: 0 0 auto;
  min-width: 64px;
  color: #ffe77a;
  font-family: var(--font-bebas), sans-serif;
  font-size: 31px;
  font-weight: 950;
  line-height: .9;
  letter-spacing: .02em;
  text-align: right;
  text-shadow: 0 2px 0 #6d3900, 0 0 8px rgba(255,216,74,.72), 0 0 20px rgba(255,135,45,.28);
}

.shiritori-xavi-growth-toggle > strong small {
  margin-right: 3px;
  color: #fff3b7;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .06em;
}

.shiritori-xavi-growth-toggle > em {
  flex: 0 0 auto;
  color: rgba(255,255,255,.56);
  font-size: 19px;
  font-style: normal;
  transform: translateY(-2px) rotate(0deg);
  transition: transform .2s ease;
}

.shiritori-xavi-growth.is-open .shiritori-xavi-growth-toggle > em { transform: translateY(2px) rotate(180deg); }

.shiritori-xavi-growth-details {
  margin-top: 11px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.12);
  animation: shiritori-growth-open .22s ease-out both;
}

@keyframes shiritori-growth-open {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

.shiritori-xavi-mode-switch {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;
  margin: -2px 0 10px;
  padding: 6px 7px 6px 10px;
  border: 1px solid rgba(255,216,74,.2);
  border-radius: 9px;
  background: rgba(5,10,27,.46);
}
.shiritori-xavi-mode-switch > span {
  color: rgba(255,255,255,.5);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
}
.shiritori-xavi-mode-switch > div {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  padding: 2px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 7px;
  background: rgba(0,0,0,.3);
}
.shiritori-xavi-mode-switch button {
  min-width: 62px;
  min-height: 27px;
  padding: 0 9px;
  border: 0;
  border-radius: 5px;
  color: rgba(255,255,255,.5);
  background: transparent;
  font-size: 9px;
  font-weight: 900;
}
.shiritori-xavi-mode-switch button.is-active {
  color: #24172c;
  background: linear-gradient(180deg, #fff2a4, #e9aa20);
  box-shadow: 0 1px 0 #81510a, 0 0 9px rgba(255,216,74,.22);
}
.shiritori-xavi-mode-switch button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.shiritori-xavi-mode-switch > .shiritori-xavi-speech-reroll {
  grid-column: 1 / -1;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  min-height: 29px;
  margin: -2px 0 0;
  padding: 5px 10px;
  border: 1px solid rgba(255,231,122,.5);
  border-radius: 999px;
  color: rgba(255,245,201,.92);
  background: rgba(34,22,52,.92);
  font-size: 10px;
  letter-spacing: .02em;
  box-shadow: 0 0 10px rgba(255,216,74,.09);
}

.shiritori-xavi-mode-switch > .shiritori-xavi-speech-reroll span {
  color: #ffe77a;
  font-size: 15px;
  line-height: 1;
}

.shiritori-xavi-growth-speech {
  position: relative;
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 10px 13px;
  border: 1px solid rgba(255,216,74,.55);
  border-radius: 8px 15px 15px 15px;
  color: #2a2137;
  background: linear-gradient(145deg, #fffdf2, #ffeeb3);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.45;
  box-shadow: 0 4px 0 rgba(79,42,85,.32);
}

.shiritori-xavi-growth-speech::before {
  display: none;
}

.shiritori-xavi-growth-speech.is-reaction {
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  border-color: rgba(255,104,176,.72);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 4px 0 rgba(79,42,85,.32), 0 0 15px rgba(255,92,165,.16);
  transition: transform .18s ease, box-shadow .18s ease;
}

.shiritori-xavi-growth-speech.is-reaction:active {
  transform: translateY(2px) scale(.995);
  box-shadow: 0 2px 0 rgba(79,42,85,.32), 0 0 10px rgba(255,92,165,.14);
}

.shiritori-xavi-growth-speech.is-reaction small {
  align-self: flex-end;
  color: #b22872;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .03em;
}

.shiritori-xavi-growth-speech.is-reaction:disabled {
  cursor: wait;
  opacity: .86;
}

.shiritori-xavi-growth-speech.is-connection {
  border-color: rgba(237,182,49,.94);
  background: linear-gradient(145deg, #fff9d8, #ffe497);
  box-shadow: 0 4px 0 rgba(110,72,20,.32), 0 0 18px rgba(255,207,67,.38);
  animation: shiritori-connection-notice-glow 1.8s ease-in-out infinite;
}

.shiritori-xavi-growth-speech.is-connection small {
  color: #9b6314;
}

@keyframes shiritori-connection-notice-glow {
  50% { box-shadow: 0 4px 0 rgba(110,72,20,.32), 0 0 27px rgba(255,219,85,.72); }
}

.shiritori-xavi-system-announcement {
  position: relative;
  overflow: hidden;
  margin-top: 11px;
  padding: 13px 14px 14px;
  border: 1px solid rgba(100,235,255,.72);
  border-radius: 15px 9px 15px 15px;
  color: rgba(255,255,255,.96);
  background:
    radial-gradient(circle at 92% 8%, rgba(255,96,191,.28), transparent 34%),
    linear-gradient(135deg, rgba(33,19,69,.96), rgba(13,72,91,.94));
  box-shadow:
    0 5px 0 rgba(10,13,36,.38),
    0 0 19px rgba(71,220,255,.18),
    inset 0 1px 0 rgba(255,255,255,.1);
}

.shiritori-xavi-system-announcement::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 18%, rgba(255,255,255,.08) 45%, transparent 66%);
}

.shiritori-xavi-system-announcement > b {
  position: relative;
  z-index: 1;
  display: inline-flex;
  margin-bottom: 8px;
  padding: 3px 9px;
  border: 1px solid rgba(255,220,91,.72);
  border-radius: 999px;
  color: #ffe66f;
  background: rgba(25,15,49,.62);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .05em;
}

.shiritori-xavi-system-announcement p {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.65;
  text-wrap: pretty;
}

.shiritori-xavi-system-announcement p + p {
  margin-top: 9px;
  color: #fff2a5;
}

.shiritori-xavi-system-announcement-actions {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 13px;
}

.shiritori-xavi-system-announcement-actions button {
  min-height: 38px;
  border: 1px solid rgba(122,235,255,.68);
  border-radius: 12px;
  color: #f6fdff;
  background: rgba(8,18,43,.58);
  font: inherit;
  font-size: 13px;
  font-weight: 950;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 3px 9px rgba(0,0,0,.2);
  cursor: pointer;
}

.shiritori-xavi-system-announcement-actions button:hover,
.shiritori-xavi-system-announcement-actions button:focus-visible {
  border-color: #fff08a;
  color: #fff4a1;
}

.shiritori-xavi-system-announcement-actions button.is-selected {
  border-color: #fff08a;
  color: #241d42;
  background: linear-gradient(135deg, #fff59a, #6cecff);
  box-shadow: 0 0 16px rgba(101,232,255,.38), inset 0 1px 0 #fff;
}

.shiritori-xavi-system-announcement-actions button.is-selected.is-no {
  background: linear-gradient(135deg, #fff2a0, #ff83c8);
}

.shiritori-xavi-system-announcement-actions button:disabled {
  cursor: wait;
  opacity: .72;
}

.shiritori-xavi-system-announcement-voted {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 6px;
  color: rgba(231,248,255,.7);
  font-size: 9px;
  font-weight: 800;
  text-align: center;
}

.shiritori-xavi-system-announcement-poll {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 9px;
  padding: 7px 9px;
  border: 1px dashed rgba(255,231,110,.58);
  border-radius: 10px;
  color: #fff;
  background: rgba(4,12,30,.42);
  font-size: 10px;
  font-weight: 850;
}

.shiritori-xavi-system-announcement-poll > b {
  margin-right: auto;
  color: #ffe66f;
  font-size: 9px;
}

.shiritori-xavi-system-announcement-poll strong {
  color: #7defff;
  font-size: 13px;
}

.shiritori-xavi-system-announcement-poll small {
  color: rgba(255,255,255,.65);
}

.shiritori-xavi-speech-reroll {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 25px;
  margin: 7px 1px 0 auto;
  padding: 3px 8px;
  border: 1px solid rgba(255,231,122,.5);
  border-radius: 999px;
  color: rgba(255,245,201,.86);
  background: rgba(7,13,31,.52);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .03em;
}

.shiritori-xavi-speech-reroll span {
  color: #ffe77a;
  font-size: 14px;
  line-height: 1;
}

.shiritori-xavi-love { margin-top: 13px; }
.shiritori-xavi-love > div { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; color: rgba(255,255,255,.75); font-size: 11px; }
.shiritori-xavi-love b { color: #ff93c0; }
.shiritori-xavi-love-value { grid-column: 3; }
.shiritori-xavi-love progress {
  display: block;
  width: 100%;
  height: 18px;
  margin-top: 4px;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
}
.shiritori-xavi-love progress::-webkit-progress-bar { background: rgba(255,255,255,.1); }
.shiritori-xavi-love progress::-webkit-progress-value {
  border-radius: 999px;
  background: linear-gradient(90deg, #ff4f9a, #ff8c72, #ffd84a, #ff4f9a) 0 0 / 220% 100%;
  box-shadow: 0 0 12px rgba(255,79,154,.62);
  animation: shiritori-love-flow 2.8s linear infinite;
}
.shiritori-xavi-love progress::-moz-progress-bar {
  border-radius: 999px;
  background: linear-gradient(90deg, #ff4f9a, #ff8c72, #ffd84a, #ff4f9a) 0 0 / 220% 100%;
  animation: shiritori-love-flow 2.8s linear infinite;
}

@keyframes shiritori-love-flow {
  to { background-position: 220% 0; }
}

.shiritori-xavi-love.is-gaining {
  animation: shiritori-love-bar-impact 1.35s ease-out both;
}

.shiritori-xavi-love.is-gaining progress {
  box-shadow: 0 0 0 1px rgba(255,238,145,.8), 0 0 24px rgba(255,79,154,.85), 0 0 46px rgba(255,216,74,.42);
}

@keyframes shiritori-love-bar-impact {
  0% { filter: brightness(1); transform: scaleX(1); }
  20% { filter: brightness(1.75); transform: scaleX(1.018); }
  48% { filter: brightness(1.18); transform: scaleX(.996); }
  100% { filter: brightness(1); transform: scaleX(1); }
}

.shiritori-love-gain-stage {
  position: fixed;
  z-index: 1080;
  top: max(22px, env(safe-area-inset-top));
  left: 50%;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px 8px;
  border: 1px solid rgba(255,236,136,.92);
  border-radius: 999px;
  color: #2a1830;
  background: linear-gradient(110deg, #ff61ac, #ffe56f 54%, #fff5c5);
  box-shadow: 0 7px 0 rgba(101,48,76,.55), 0 0 22px rgba(255,79,154,.72), 0 0 42px rgba(255,216,74,.35);
  pointer-events: none;
  transform: translateX(-50%);
  animation: shiritori-love-gain-pop 2.8s cubic-bezier(.18,.86,.22,1) both;
}

.shiritori-love-gain-stage span {
  color: #fff;
  font-size: 22px;
  line-height: 1;
  text-shadow: 0 0 10px #ff276f;
}

.shiritori-love-gain-stage strong {
  font-family: var(--font-nitalago), sans-serif;
  font-size: 18px;
  letter-spacing: .04em;
  line-height: 1;
}

.shiritori-connection-stage {
  --connection-burst-duration: 1.9s;
  position: fixed;
  z-index: 1085;
  inset: 0;
  display: grid;
  grid-template-rows: auto auto;
  place-content: center;
  justify-items: center;
  gap: 2px;
  overflow: hidden;
  pointer-events: none;
  color: #fff;
  text-align: center;
  animation: shiritori-connection-stage var(--connection-burst-duration) cubic-bezier(.14,.83,.23,1) both;
}

.shiritori-connection-stage::before,
.shiritori-connection-stage::after,
.shiritori-connection-stage i {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "";
  border-radius: 50%;
  pointer-events: none;
}

.shiritori-connection-stage::before {
  width: min(104vw, 620px);
  aspect-ratio: 1;
  border: 6px solid rgba(255,232,89,.78);
  box-shadow: 0 0 0 10px rgba(255,83,168,.18), 0 0 56px rgba(69,230,255,.72), inset 0 0 48px rgba(255,216,74,.55);
  transform: translate(-50%, -50%) scale(.18) rotate(0deg);
  animation: shiritori-connection-ring var(--connection-burst-duration) ease-out both;
}

.shiritori-connection-stage::after {
  width: min(110vw, 680px);
  aspect-ratio: 1;
  opacity: .68;
  background: repeating-conic-gradient(from 0deg, rgba(255,233,112,.76) 0 2deg, transparent 2deg 13deg);
  -webkit-mask-image: radial-gradient(circle, transparent 0 22%, #000 27%, transparent 68%);
  mask-image: radial-gradient(circle, transparent 0 22%, #000 27%, transparent 68%);
  animation: shiritori-connection-rays var(--connection-burst-duration) linear both;
}

.shiritori-connection-stage i {
  width: 40px;
  height: 40px;
  background: #fff4a1;
  box-shadow: 0 0 15px #fff, 0 0 32px #ff5bae;
  transform: rotate(45deg);
  animation: shiritori-connection-core var(--connection-burst-duration) ease-out both;
}

.shiritori-connection-copy {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: min(96vw, 760px);
  transform: translate(-50%, -50%);
}

.shiritori-connection-stage strong,
.shiritori-connection-stage b {
  text-shadow: 0 4px 0 #6a284a, 0 0 11px #fff4a1, 0 0 27px #ff4eaa;
}

.shiritori-connection-stage strong {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-family: "kokuryu", sans-serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0;
  color: #fff5a1;
  line-height: 1;
  white-space: nowrap;
}

.shiritori-connection-stage strong > span {
  display: block;
  flex: 0 0 auto;
  font-style: normal;
  line-height: 1;
}

.shiritori-connection-stage .shiritori-connection-start-copy {
  align-items: center;
  font-size: clamp(88px, 24vw, 174px);
  -webkit-text-stroke: 1.2px rgba(255,255,255,.98);
  paint-order: stroke fill;
}

.shiritori-connection-start-copy > span:not(:last-child) { margin-right: -.18em; }
.shiritori-connection-start-copy > span:nth-child(2) { margin-right: -.22em; }
.shiritori-connection-start-copy > span:nth-child(4) { margin-right: -.27em; }

.shiritori-connection-number {
  position: relative;
  z-index: 4;
  font-size: clamp(125px, 34.32vw, 238px);
  margin-right: -.20em;
}

.shiritori-connection-ren,
.shiritori-connection-kei,
.shiritori-connection-mark {
  font-size: clamp(96px, 26.4vw, 182px);
}

.shiritori-connection-ren {
  position: relative;
  z-index: 3;
  margin-right: -.22em;
}

.shiritori-connection-kei {
  position: relative;
  z-index: 2;
  margin-right: -.30em;
}

.shiritori-connection-stage b {
  display: block;
  width: 100%;
  font-family: var(--font-nitalago), sans-serif;
  font-weight: 600;
  letter-spacing: .04em;
  color: #fff;
  font-size: clamp(22px, 6vw, 38px);
  line-height: 1.05;
}

@keyframes shiritori-connection-stage {
  0% { opacity: 0; filter: brightness(1.8); }
  10%, 68% { opacity: 1; filter: brightness(1); }
  82% { opacity: .58; filter: brightness(1.06) blur(.25px); }
  100% { opacity: 0; filter: brightness(.92) blur(1.4px); }
}

@keyframes shiritori-connection-ring {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.18) rotate(0); }
  14% { opacity: 1; transform: translate(-50%, -50%) scale(.68) rotate(65deg); }
  78% { opacity: .8; transform: translate(-50%, -50%) scale(1.03) rotate(175deg); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.22) rotate(250deg); }
}

@keyframes shiritori-connection-rays {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.16) rotate(0); }
  15%, 80% { opacity: .7; transform: translate(-50%, -50%) scale(1) rotate(120deg); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.18) rotate(180deg); }
}

@keyframes shiritori-connection-core {
  0% { opacity: 0; transform: translate(-50%, -50%) rotate(45deg) scale(.12); }
  18% { opacity: 1; transform: translate(-50%, -50%) rotate(45deg) scale(1.4); }
  74% { opacity: 1; transform: translate(-50%, -50%) rotate(45deg) scale(.82); }
  100% { opacity: 0; transform: translate(-50%, -50%) rotate(45deg) scale(1.8); }
}

.shiritori-memorial-stage {
  --memorial-duration: 2.9s;
  position: fixed;
  z-index: 1090;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  pointer-events: none;
  color: #fff;
  background: radial-gradient(circle at center, rgba(42,25,91,.76) 0 12%, rgba(7,7,25,.7) 48%, rgba(3,4,16,.9) 100%);
  animation: shiritori-memorial-stage var(--memorial-duration) ease both;
}

.shiritori-memorial-rays {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(145vw, 940px);
  aspect-ratio: 1;
  background: repeating-conic-gradient(from 8deg, rgba(255,226,84,.9) 0 1.4deg, transparent 1.4deg 10deg);
  -webkit-mask-image: radial-gradient(circle, transparent 0 17%, #000 25%, transparent 70%);
  mask-image: radial-gradient(circle, transparent 0 17%, #000 25%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: shiritori-memorial-rays var(--memorial-duration) cubic-bezier(.15,.72,.22,1) both;
}

.shiritori-memorial-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(88vw, 620px);
  aspect-ratio: 1;
  border: clamp(3px, .8vw, 7px) double rgba(255,226,90,.95);
  border-radius: 50%;
  box-shadow: 0 0 0 9px rgba(72,232,255,.16), 0 0 44px rgba(255,212,50,.72), inset 0 0 70px rgba(255,88,178,.26);
  transform: translate(-50%, -50%);
  animation: shiritori-memorial-ring var(--memorial-duration) cubic-bezier(.16,.82,.28,1) both;
}

.shiritori-memorial-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(94vw, 760px);
  text-align: center;
  filter: drop-shadow(0 7px 0 rgba(71,28,83,.62));
  animation: shiritori-memorial-copy var(--memorial-duration) cubic-bezier(.16,.86,.25,1) both;
}

.shiritori-memorial-title {
  display: block;
  color: #ffe765;
  font-family: var(--font-nitalago), sans-serif;
  font-size: clamp(30px, 8vw, 62px);
  font-weight: 900;
  line-height: .95;
  letter-spacing: .04em;
  white-space: nowrap;
  text-shadow: 0 3px 0 #713d19, 0 0 10px rgba(255,190,42,.72), 0 0 24px rgba(255,77,166,.46);
}

.shiritori-memorial-chain {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-block: clamp(4px, 1.2vw, 10px) clamp(12px, 3vw, 24px);
  white-space: nowrap;
}

.shiritori-memorial-number {
  display: block;
  color: #ffe24f;
  font-family: "kokuryu", sans-serif;
  font-size: clamp(116px, 34vw, 220px);
  font-weight: 400;
  font-style: normal;
  line-height: .78;
  letter-spacing: -.3em;
  transform: translateX(-.15em);
  text-shadow: 0 5px 0 #6b294d, 0 0 12px rgba(255,190,42,.82), 0 0 30px rgba(255,77,166,.54);
}

.shiritori-memorial-chain-label {
  display: block;
  margin-top: clamp(10px, 2.5vw, 20px);
  color: #ffe765;
  font-family: var(--font-nitalago), sans-serif;
  font-size: clamp(36px, 10vw, 76px);
  font-weight: 900;
  line-height: .92;
  letter-spacing: .01em;
  text-shadow: 0 4px 0 #713d19, 0 0 10px rgba(255,190,42,.72), 0 0 24px rgba(255,77,166,.46);
}

.shiritori-memorial-love {
  display: block;
  margin-top: 0;
  color: #fff;
  font-family: var(--font-nitalago), sans-serif;
  font-size: clamp(28px, 7.2vw, 54px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: .04em;
  text-shadow: 0 4px 0 #673268, 0 0 10px #fff, 0 0 28px #55eaff, 0 0 52px #ff4da6;
}

@keyframes shiritori-memorial-stage {
  0% { opacity: 0; }
  8%, 83% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes shiritori-memorial-rays {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.1) rotate(-35deg); }
  18% { opacity: .8; transform: translate(-50%, -50%) scale(1) rotate(25deg); }
  82% { opacity: .62; transform: translate(-50%, -50%) scale(1.08) rotate(95deg); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.22) rotate(130deg); }
}

@keyframes shiritori-memorial-ring {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.08) rotate(-20deg); }
  16% { opacity: 1; transform: translate(-50%, -50%) scale(1.06) rotate(5deg); }
  25%, 82% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.18) rotate(14deg); }
}

@keyframes shiritori-memorial-copy {
  0% { opacity: 0; filter: blur(12px) brightness(2.2); transform: scale(2.1); }
  15% { opacity: 1; filter: blur(0) brightness(1.25); transform: scale(.93); }
  22%, 82% { opacity: 1; filter: none; transform: scale(1); }
  100% { opacity: 0; filter: blur(3px); transform: scale(1.08); }
}

@keyframes shiritori-love-gain-pop {
  0% { opacity: 0; filter: blur(7px) brightness(1.8); transform: translate(-50%, 15px) scale(.72); }
  12% { opacity: 1; filter: none; transform: translate(-50%, 0) scale(1.1); }
  22% { transform: translate(-50%, 0) scale(1); }
  86% { opacity: 1; filter: none; transform: translate(-50%, -3px) scale(1); }
  100% { opacity: 0; filter: blur(2px); transform: translate(-50%, -18px) scale(.94); }
}

.shiritori-level-up-stage {
  position: fixed;
  z-index: 1090;
  inset: 0;
  display: grid;
  grid-template-rows: auto auto auto auto auto;
  place-content: center;
  justify-items: center;
  overflow: hidden;
  color: #fff;
  background: radial-gradient(circle at 50% 48%, rgba(255,216,74,.28), rgba(61,29,87,.2) 32%, rgba(5,7,22,.72) 66%);
  backdrop-filter: blur(5px);
  pointer-events: none;
  animation: shiritori-level-up-stage 4.6s ease both;
}

.shiritori-level-up-rays {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(112vw, 760px);
  aspect-ratio: 1;
  opacity: .52;
  background: repeating-conic-gradient(from 0deg, rgba(255,235,121,.72) 0 3deg, transparent 3deg 12deg);
  -webkit-mask-image: radial-gradient(circle, transparent 0 12%, #000 25%, transparent 68%);
  mask-image: radial-gradient(circle, transparent 0 12%, #000 25%, transparent 68%);
  transform: translate(-50%, -50%);
  animation: shiritori-level-up-rays 8s linear infinite;
}

.shiritori-level-up-stage::before,
.shiritori-level-up-stage::after {
  content: "✦   ✧   ✦";
  position: absolute;
  left: 50%;
  color: #fff1a5;
  font-size: clamp(20px, 6vw, 42px);
  letter-spacing: 8vw;
  white-space: nowrap;
  text-shadow: 0 0 13px #fff, 0 0 26px #ffd84a;
  animation: shiritori-level-up-sparkle 1.25s ease-in-out infinite alternate;
}

.shiritori-level-up-stage::before { top: 20%; transform: translateX(-50%) rotate(-8deg); }
.shiritori-level-up-stage::after { bottom: 18%; transform: translateX(-50%) rotate(8deg); animation-delay: -.55s; }

.shiritori-level-up-stage img {
  position: relative;
  z-index: 2;
  width: 92px;
  height: 92px;
  border: 4px solid #fff1a5;
  border-radius: 50%;
  object-fit: cover;
  background: #21162d;
  box-shadow: 0 0 0 5px rgba(255,216,74,.18), 0 0 36px rgba(255,216,74,.8);
  animation: shiritori-level-up-avatar 4.6s cubic-bezier(.18,.86,.2,1.08) both;
}

.shiritori-level-up-stage p {
  position: relative;
  z-index: 2;
  margin: 11px 0 0;
  color: #fff7cf;
  font-size: 16px;
  font-weight: 950;
  letter-spacing: .12em;
}

.shiritori-level-up-stage > strong {
  position: relative;
  z-index: 2;
  margin-top: 2px;
  color: #ffe169;
  font-family: var(--font-nitalago), sans-serif;
  font-size: clamp(38px, 11vw, 67px);
  font-weight: 950;
  letter-spacing: .04em;
  line-height: .92;
  text-shadow: 0 4px 0 #8b4900, 0 0 12px #fff5b2, 0 0 36px rgba(255,132,47,.9);
  animation: shiritori-level-up-title 4.6s cubic-bezier(.16,.9,.22,1.15) both;
}

.shiritori-level-up-stage > b {
  position: relative;
  z-index: 2;
  margin-top: 9px;
  color: #fff;
  font-family: var(--font-bebas), sans-serif;
  font-size: 50px;
  line-height: 1;
  text-shadow: 0 0 16px #ffce3f;
}

.shiritori-level-up-stage > b small { margin-right: 5px; color: #ffeaa0; font-size: 22px; }
.shiritori-level-up-stage > span { position: relative; z-index: 2; margin-top: 8px; color: #fff4bf; font-size: 14px; font-weight: 950; }

@keyframes shiritori-level-up-stage {
  0% { opacity: 0; }
  8%, 90% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes shiritori-level-up-rays {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes shiritori-level-up-sparkle {
  from { opacity: .25; filter: blur(1px); }
  to { opacity: 1; filter: none; }
}

@keyframes shiritori-level-up-avatar {
  0% { opacity: 0; filter: blur(8px) brightness(2); transform: translateY(24px) scale(.45) rotate(-10deg); }
  14% { opacity: 1; filter: none; transform: translateY(0) scale(1.1) rotate(2deg); }
  22%, 90% { opacity: 1; filter: none; transform: translateY(0) scale(1) rotate(0); }
  100% { opacity: 0; filter: blur(2px); transform: translateY(-12px) scale(.9); }
}

@keyframes shiritori-level-up-title {
  0%, 7% { opacity: 0; filter: blur(9px); transform: scale(1.55); }
  16% { opacity: 1; filter: none; transform: scale(.96); }
  22%, 90% { opacity: 1; filter: none; transform: scale(1); }
  100% { opacity: 0; filter: blur(2px); transform: scale(1.08); }
}

.shiritori-xavi-stats {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding: 8px;
  border: 1px solid rgba(255,216,74,.22);
  border-radius: 12px;
  background:
    linear-gradient(90deg, transparent, rgba(255,216,74,.08) 50%, transparent) top / 100% 1px no-repeat,
    linear-gradient(145deg, rgba(7,13,31,.78), rgba(31,21,52,.74));
  box-shadow: inset 0 0 22px rgba(0,0,0,.34), 0 8px 20px rgba(0,0,0,.2);
}

.shiritori-xavi-admin-debug {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 12px 2px -5px;
  color: rgba(255,255,255,.5);
  font-size: 8px;
  font-weight: 800;
}
.shiritori-xavi-admin-debug b {
  color: #ffe77a;
  font-size: 10px;
  letter-spacing: .06em;
}

.shiritori-xavi-stat {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  min-height: 39px;
  padding: 5px 6px 5px 8px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
}

.shiritori-xavi-stat.has-admin-debug { grid-template-columns: 96px minmax(0, 1fr) 46px; }

.shiritori-xavi-stat-label { min-width: 0; }
.shiritori-xavi-stat-label > span { display: block; color: #fff4c5; font-size: 16px; font-weight: 950; line-height: 1; letter-spacing: .04em; text-shadow: 0 1px 0 #5c3500, 0 0 7px rgba(255,216,74,.22); }
.shiritori-xavi-stat-label small { display: block; margin-top: 4px; color: rgba(255,255,255,.48); font-size: 8px; font-weight: 800; line-height: 1; letter-spacing: .04em; }

.shiritori-xavi-stat-meter {
  position: relative;
  height: 12px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 3px;
  background: linear-gradient(180deg, rgba(0,0,0,.7), rgba(255,255,255,.05));
  box-shadow: inset 0 2px 4px rgba(0,0,0,.8), 0 0 0 1px rgba(0,0,0,.25);
}

.shiritori-xavi-stat-meter i {
  position: absolute;
  inset: 1px auto 1px 1px;
  width: 0;
  border-radius: 2px;
  background: linear-gradient(90deg, #118cd1, #43e9ff 62%, #e9ffff);
  box-shadow: 0 0 9px rgba(56,227,255,.65);
  transition: width .45s cubic-bezier(.2,.8,.2,1);
}
.shiritori-xavi-stat-meter i.is-level-1 { width: calc(20% - 2px); }
.shiritori-xavi-stat-meter i.is-level-2 { width: calc(40% - 2px); }
.shiritori-xavi-stat-meter i.is-level-3 { width: calc(60% - 2px); }
.shiritori-xavi-stat-meter i.is-level-4 { width: calc(80% - 2px); }
.shiritori-xavi-stat-meter i.is-level-5 { width: calc(100% - 2px); }
.shiritori-xavi-stat.is-comedy .shiritori-xavi-stat-meter i { background: linear-gradient(90deg, #d92f7b, #ff7a3d 65%, #fff0a6); box-shadow: 0 0 9px rgba(255,79,154,.62); }
.shiritori-xavi-stat.is-affection .shiritori-xavi-stat-meter i { background: linear-gradient(90deg, #c446da, #ff5aa5 62%, #ffe57d); box-shadow: 0 0 9px rgba(255,90,165,.68); }
.shiritori-xavi-stat-meter em { position: relative; z-index: 2; float: left; width: 20%; height: 100%; border-right: 1px solid rgba(5,8,24,.72); }
.shiritori-xavi-stat-meter em:last-child { border-right: 0; }
.shiritori-xavi-stat-meter > b {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: 4px;
  color: rgba(255,255,255,.88);
  font-family: var(--font-bebas), sans-serif;
  font-size: 8px;
  letter-spacing: .08em;
  line-height: 1;
  text-shadow: 0 1px 2px #000;
  transform: translateY(-50%);
}
.shiritori-xavi-stat button {
  width: 34px;
  height: 29px;
  padding: 0;
  border: 1px solid rgba(255,231,122,.74);
  border-radius: 6px;
  color: #22152b;
  background: linear-gradient(180deg, #fff2a4, #e9aa20);
  box-shadow: 0 2px 0 #81510a, 0 0 10px rgba(255,216,74,.24);
  font-size: 11px;
  font-weight: 950;
}
.shiritori-xavi-stat button:disabled { opacity: .55; }
.shiritori-xavi-stat-debug-input {
  width: 46px;
  height: 29px;
  padding: 1px 3px 0;
  border: 1px solid rgba(255,231,122,.74);
  border-radius: 6px;
  color: #fff4c5;
  background: rgba(4,8,24,.78);
  box-shadow: inset 0 1px 4px rgba(0,0,0,.75), 0 0 10px rgba(255,216,74,.2);
  font-family: var(--font-bebas), sans-serif;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  text-align: center;
}
.shiritori-xavi-stat-debug-input:focus {
  border-color: #ffe77a;
  outline: 2px solid rgba(255,231,122,.22);
  outline-offset: 1px;
}
.shiritori-xavi-stat-debug-input:disabled { opacity: .55; }
.shiritori-xavi-growth-note {
  margin: 10px 0 0;
  color: rgba(255,255,255,.64);
  font-size: 11px;
  line-height: 1.55;
  text-align: center;
}

.shiritori-affection-trigger {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 11px;
  border: 1px solid rgba(255, 116, 175, .58);
  border-radius: 13px;
  color: #ffeaf3;
  background: linear-gradient(135deg, rgba(255,79,154,.2), rgba(157,87,201,.13));
  font-size: 12px;
  font-weight: 900;
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 0 18px rgba(255,79,154,.09);
  cursor: pointer;
}

.shiritori-record-burst { position:fixed; z-index:1300; inset:0; display:grid; place-items:center; pointer-events:none; overflow:hidden; background:rgba(5,5,16,.4); }
.shiritori-record-burst > div { position:relative; width:min(920px,100vw); animation:shiritori-record-burst 4s ease-out both; }
.shiritori-record-burst img { display:block; width:100%; height:auto; }
.shiritori-record-burst strong { position:absolute; left:65%; top:75%; transform:translate(-50%,-50%); color:#fff8bd; font-family:"Tamanegi Kaisho",serif; font-size:clamp(92px,24vw,235px); line-height:.8; letter-spacing:-.08em; -webkit-text-stroke:clamp(3px,.65vw,7px) #9b0051; text-shadow:0 5px 0 #5d0032,0 9px 17px rgba(33,0,18,.8),0 0 18px rgba(255,211,68,.66); }
.shiritori-connection-time-history.is-record-new { animation: shiritori-record-history-flash 900ms ease-in-out infinite; }
@keyframes shiritori-record-burst { 0% { opacity:0; transform:scale(.84); } 12%,72% { opacity:1; transform:scale(1); } 100% { opacity:0; transform:scale(1.03); } }
@keyframes shiritori-record-history-flash { 50% { box-shadow:0 0 42px rgba(255,222,85,.98), inset 0 0 24px rgba(255,222,85,.26); border-color:#fff19a; } }

.shiritori-affection-trigger span {
  display: grid;
  width: 23px;
  height: 20px;
  place-items: center;
  border-radius: 999px;
  color: #3d1e37;
  background: #ff9bc6;
  letter-spacing: 1px;
  line-height: 1;
}
.shiritori-affection-trigger.is-knowledge {
  border-color: rgba(91, 218, 255, .62);
  color: #e8fbff;
  background: linear-gradient(135deg, rgba(42,177,255,.2), rgba(102,104,255,.16));
  box-shadow: inset 0 1px rgba(255,255,255,.08), 0 0 18px rgba(66,187,255,.14);
}
.shiritori-affection-trigger.is-knowledge span { color: #102e52; background: #7be3ff; }
.shiritori-affection-trigger.is-comedy { border-color:rgba(104,255,143,.66); color:#e9ffef; background:linear-gradient(135deg,rgba(34,168,77,.24),rgba(20,58,37,.28)); box-shadow:inset 0 1px rgba(255,255,255,.08),0 0 18px rgba(65,234,112,.16); }
.shiritori-affection-trigger.is-comedy span { color:#123a20; background:#80ff9e; }
.shiritori-affection-backdrop.is-knowledge {
  background: radial-gradient(circle at 50% 22%, rgba(57,183,255,.2), transparent 38%), rgba(4,5,17,.82);
}
.shiritori-affection-event.is-knowledge {
  border-color: rgba(105,222,255,.78);
  background: radial-gradient(circle at 16% 7%, rgba(75,204,255,.22), transparent 32%), linear-gradient(150deg, #17354a, #15162f 62%, #172b45);
  box-shadow: 0 25px 80px rgba(0,0,0,.62), 0 0 38px rgba(71,198,255,.17), inset 0 1px rgba(255,255,255,.12);
}
.shiritori-affection-event.is-knowledge > header img { border-color: #96eaff; background: #16344e; box-shadow: 0 0 22px rgba(76,205,255,.36); }
.shiritori-affection-event.is-knowledge header small { color: #82e9ff; }
.shiritori-affection-event.is-knowledge .shiritori-affection-actions button.is-accept { border-color: rgba(142,234,255,.9); color: #14304b; background: linear-gradient(180deg, #d1f8ff, #67c8ff); box-shadow: 0 4px 0 #26648c, 0 0 20px rgba(78,201,255,.2); }
.shiritori-affection-backdrop.is-comedy { background:radial-gradient(circle at 50% 22%,rgba(64,225,110,.2),transparent 38%),rgba(4,10,7,.84); }
.shiritori-affection-event.is-comedy { border-color:rgba(105,255,144,.78); background:radial-gradient(circle at 16% 7%,rgba(72,220,112,.21),transparent 32%),linear-gradient(150deg,#183c28,#121b18 62%,#173124); box-shadow:0 25px 80px rgba(0,0,0,.62),0 0 38px rgba(75,233,122,.18),inset 0 1px rgba(255,255,255,.12); }
.shiritori-affection-event.is-comedy > header img { border-color:#9effb7; background:#163d28; box-shadow:0 0 22px rgba(76,235,124,.34); }
.shiritori-affection-event.is-comedy header small { color:#8dffac; }
.shiritori-affection-event.is-comedy .shiritori-affection-actions button.is-accept { border-color:rgba(146,255,178,.9); color:#10341e; background:linear-gradient(180deg,#d7ffe2,#6fe991); box-shadow:0 4px 0 #257247,0 0 20px rgba(75,232,121,.22); }
.shiritori-damage-lab-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 14px;
  padding: 10px 13px;
  border: 1px solid rgba(96,225,255,.72);
  border-radius: 12px;
  color: #ddfaff;
  background: linear-gradient(135deg, rgba(51,185,255,.27), rgba(66,91,190,.3));
  box-shadow: inset 0 1px rgba(255,255,255,.13), 0 4px 0 rgba(19,68,108,.75);
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
}
.shiritori-damage-lab-link span { font-size: 15px; line-height: 1; }
.shiritori-damage-lab-link.is-brick-breaker { border-color:rgba(104,255,143,.76); color:#eaffef; background:linear-gradient(135deg,rgba(28,137,64,.32),rgba(18,58,37,.34)); box-shadow:inset 0 1px rgba(255,255,255,.13),0 4px 0 rgba(13,77,38,.76); }

.shiritori-affection-backdrop {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background:
    radial-gradient(circle at 50% 22%, rgba(255,91,162,.2), transparent 38%),
    rgba(4,5,17,.82);
  backdrop-filter: blur(11px);
}

.shiritori-affection-event {
  width: min(440px, 100%);
  max-height: calc(100dvh - 36px);
  overflow-y: auto;
  padding: 22px;
  border: 2px solid rgba(255,141,190,.76);
  border-radius: 26px;
  color: #fff;
  background:
    radial-gradient(circle at 16% 7%, rgba(255,113,174,.2), transparent 32%),
    linear-gradient(150deg, #2c193c, #15162f 62%, #171d36);
  box-shadow: 0 25px 80px rgba(0,0,0,.62), 0 0 38px rgba(255,79,154,.15), inset 0 1px rgba(255,255,255,.12);
  animation: shiritori-affection-pop 420ms cubic-bezier(.16,.9,.22,1.12) both;
}

.shiritori-affection-event > header {
  display: flex;
  align-items: center;
  gap: 13px;
}

.shiritori-affection-event > header img {
  width: 66px;
  height: 66px;
  flex: 0 0 auto;
  border: 3px solid #ffc0da;
  border-radius: 50%;
  object-fit: cover;
  background: #27162f;
  box-shadow: 0 0 22px rgba(255,92,161,.36);
}

.shiritori-affection-event header small {
  display: block;
  margin-bottom: 3px;
  color: #ff91bf;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
}

.shiritori-affection-event h2 {
  margin: 0;
  font-size: 20px;
  line-height: 1.25;
}

.shiritori-affection-confession {
  position: relative;
  margin-top: 16px;
  padding: 17px 18px;
  border: 1px solid rgba(255,214,127,.7);
  border-radius: 8px 18px 18px 18px;
  color: #302037;
  background: linear-gradient(145deg, #fffdf4, #ffedc3);
  font-size: 13px;
  font-weight: 820;
  line-height: 1.65;
  box-shadow: 0 5px 0 rgba(82,37,80,.38);
}

.shiritori-affection-confession p { margin: 0 0 8px; }
.shiritori-affection-confession p:last-child { margin-bottom: 0; }
.shiritori-affection-confession b { color: #d82d77; }
.shiritori-affection-confession .is-embarrassed { color: #744b70; font-size: 11px; }
.shiritori-affection-confession .shiritori-strength-event-note { color: #d51f35; font-weight: 800; font-size: 12px; }

.shiritori-affection-actions {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 9px;
  margin-top: 18px;
}

.shiritori-affection-actions button {
  min-height: 48px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  color: #fff;
  background: rgba(255,255,255,.07);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.shiritori-affection-actions button.is-accept {
  border-color: rgba(255,159,200,.88);
  color: #35162b;
  background: linear-gradient(180deg, #ffd2e5, #ff79b4);
  box-shadow: 0 4px 0 #8e2859, 0 0 20px rgba(255,79,154,.2);
}

.shiritori-affection-actions button:disabled { opacity: .5; }

@keyframes shiritori-affection-pop {
  from { opacity: 0; transform: translateY(18px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.shiritori-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px 15px;
}

.shiritori-test-environment {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 9px 16px;
  border-bottom: 1px solid rgba(255, 218, 65, .5);
  color: #fff;
  background: linear-gradient(90deg, rgba(231, 58, 137, .82), rgba(74, 62, 190, .82));
  box-shadow: 0 5px 20px rgba(255, 79, 154, .2);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .03em;
}

.shiritori-test-environment strong {
  color: #27152e;
  padding: 3px 8px 2px;
  border-radius: 999px;
  background: #ffe45e;
  font-family: bebas-neue-pro, sans-serif;
  font-size: 14px;
  letter-spacing: .08em;
}

.shiritori-title-block {
  position: relative;
  z-index: 5;
  flex: 1 1 auto;
  min-width: 0;
}

.shiritori-title-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 9px;
}

.shiritori-header h1 {
  margin: 0;
  font-size: clamp(24px, 5vw, 38px);
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
  text-shadow: 0 3px 0 rgba(0,0,0,.32);
}

.shiritori-title-row > span {
  display: inline-flex;
  flex: 0 0 auto;
  padding: 5px 10px 4px;
  border-radius: 999px;
  color: #21172b;
  background: var(--sh-yellow);
  font-weight: 900;
  transform: rotate(-4deg);
}

.shiritori-title-row > span.is-test {
  color: #fff;
  background: linear-gradient(135deg, #ee2b83, #6f55d9);
  box-shadow: 0 0 12px rgba(255, 79, 154, .55);
}

.shiritori-title-block > p {
  display: inline-block;
  margin: 9px 0 0;
  padding: 6px 12px 5px;
  border: 2px solid var(--sh-pink);
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(90deg, rgba(255,79,154,.27), rgba(56,227,255,.16));
  font-size: clamp(12px, 2.7vw, 15px);
  font-weight: 900;
  line-height: 1.25;
  box-shadow: 0 4px 0 rgba(0,0,0,.25), 0 0 18px rgba(255,79,154,.17);
  transform: rotate(-1deg);
}

.shiritori-close {
  flex: 0 0 auto;
  padding: 10px 15px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 15px;
  color: #fff;
  background: rgba(255,255,255,.08);
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 0 rgba(0,0,0,.28);
}

.shiritori-header-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.shiritori-header-actions > * {
  width: 52px;
  min-width: 52px;
  height: 52px;
  min-height: 52px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  padding: 0;
  border-radius: 50%;
}

.shiritori-header-actions .shiritori-close { padding: 0; border-radius: 50%; font-size: 28px; line-height: 1; }

.shiritori-site-help-button,
.shiritori-growth-help-button {
  border: 1px solid rgba(255,216,74,.62);
  border-radius: 999px;
  color: #fff4bd;
  background: linear-gradient(145deg, rgba(255,216,74,.18), rgba(255,79,154,.14));
  font-family: var(--font-bebas), sans-serif;
  font-weight: 900;
  letter-spacing: .08em;
  box-shadow: 0 4px 0 rgba(0,0,0,.25), 0 0 15px rgba(255,216,74,.12);
  cursor: pointer;
}

.shiritori-site-help-button {
  padding: 0;
  border-radius: 50%;
  font-family: var(--font-nitalago);
  font-size: 28px;
  line-height: 1;
}

.shiritori-growth-help-button {
  padding: 6px 12px 4px;
  font-size: 13px;
}

.shiritori-xavi-growth-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 38px;
  margin-top: 10px;
}

.shiritori-xavi-growth-primary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.shiritori-my-words-button {
  min-height: 34px;
  padding: 6px 14px;
  border: 1px solid rgba(56,227,255,.55);
  border-radius: 999px;
  color: #eafcff;
  background: linear-gradient(135deg, rgba(34,155,202,.34), rgba(96,79,190,.3));
  box-shadow: 0 4px 0 rgba(0,0,0,.22), 0 0 14px rgba(56,227,255,.12);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  cursor: pointer;
}

.shiritori-my-words-button:hover,
.shiritori-my-words-button:focus-visible {
  border-color: rgba(56,227,255,.9);
  box-shadow: 0 4px 0 rgba(0,0,0,.22), 0 0 20px rgba(56,227,255,.28);
}

.shiritori-journey-admin-button {
  min-height: 34px;
  padding: 6px 13px;
  border: 1px solid rgba(255,216,74,.7);
  border-radius: 999px;
  color: #fff8d0;
  background: linear-gradient(135deg, rgba(255,183,43,.28), rgba(255,79,154,.3));
  box-shadow: 0 4px 0 rgba(0,0,0,.22), 0 0 16px rgba(255,193,54,.16);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.shiritori-journey-admin-button small {
  margin-left: 4px;
  color: #5df4ff;
  font-size: 8px;
}

.shiritori-connection-preview-button {
  min-height: 34px;
  padding: 6px 13px;
  border: 1px solid rgba(255,132,205,.74);
  border-radius: 999px;
  color: #fff8d0;
  background: linear-gradient(135deg, rgba(255,216,74,.28), rgba(255,79,154,.36) 54%, rgba(69,230,255,.24));
  box-shadow: 0 4px 0 rgba(0,0,0,.22), 0 0 16px rgba(255,124,196,.2);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.shiritori-connection-preview-button:hover,
.shiritori-connection-preview-button:focus-visible {
  border-color: #fff2a1;
  box-shadow: 0 4px 0 rgba(0,0,0,.22), 0 0 22px rgba(255,216,74,.38);
}

.shiritori-connection-preview-button.is-memorial {
  border-color: rgba(255,225,77,.88);
  color: #fff9c8;
  background: linear-gradient(135deg, rgba(255,196,38,.42), rgba(255,79,154,.32) 55%, rgba(69,230,255,.28));
}

.shiritori-connection-preview-button.is-connection-time {
  border-color: rgba(86,232,255,.82);
  color: #dfffff;
  background: linear-gradient(135deg, rgba(54,225,255,.32), rgba(126,98,255,.34) 55%, rgba(255,79,154,.24));
}

.shiritori-connection-preview-button.is-saga-talk {
  border-color: rgba(255,235,120,.86);
  color: #fff9cb;
  background: linear-gradient(135deg, rgba(255,184,44,.4), rgba(255,91,180,.33) 52%, rgba(73,225,255,.3));
}

.shiritori-connection-preview-button.is-force-end {
  border-color: rgba(255,119,119,.88);
  color: #fff;
  background: linear-gradient(135deg, rgba(196,45,64,.62), rgba(255,96,151,.45) 58%, rgba(255,205,87,.32));
}

.shiritori-connection-preview-button:disabled {
  opacity: .46;
  cursor: default;
  box-shadow: none;
}

.shiritori-my-words-backdrop {
  position: fixed;
  z-index: 88;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(6,7,22,.78);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.shiritori-my-words-window {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(620px, 92vw);
  max-height: 91svh;
  overflow: hidden;
  border: 2px solid rgba(56,227,255,.5);
  border-radius: 25px;
  color: #f8f8ff;
  background:
    radial-gradient(circle at 0 0, rgba(56,227,255,.13), transparent 23rem),
    radial-gradient(circle at 100% 12%, rgba(255,79,154,.13), transparent 25rem),
    linear-gradient(145deg, #1c2038, #11152a 72%);
  box-shadow: 0 28px 90px rgba(0,0,0,.65), inset 0 1px rgba(255,255,255,.15);
}

.shiritori-my-words-window.has-admin-tabs { grid-template-rows: auto auto minmax(0, 1fr); }

.shiritori-my-words-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  margin: 11px 15px 0;
  padding: 4px;
  border-radius: 12px;
  background: rgba(3,7,25,.64);
}

.shiritori-my-words-tabs button {
  min-height: 34px;
  border: 0;
  border-radius: 9px;
  color: rgba(255,255,255,.52);
  background: transparent;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}

.shiritori-my-words-tabs button.is-active {
  color: #1d1831;
  background: linear-gradient(100deg, #ffe15c, #ff866e);
  box-shadow: 0 4px 12px rgba(255,107,117,.2);
}

.shiritori-my-words-window > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px 15px;
  border-bottom: 1px solid rgba(255,255,255,.13);
}

.shiritori-my-words-window > header h2 { margin: 0; font-size: 25px; line-height: 1.15; }
.shiritori-my-words-window > header p { margin: 5px 0 0; color: rgba(255,255,255,.56); font-size: 10px; }
.shiritori-my-words-window > header p b { color: var(--sh-yellow); font-family: var(--font-bebas); font-size: 15px; }
.shiritori-my-words-window > header button {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.07);
  font: inherit;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}

.shiritori-my-words-list {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 0;
  padding: 15px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.shiritori-my-word-card {
  padding: 11px 12px 9px;
  border: 1px solid rgba(56,227,255,.42);
  border-radius: 17px;
  background: linear-gradient(105deg, rgba(56,227,255,.14), rgba(147,60,219,.1));
}

.shiritori-my-word-card.is-rolled-back {
  border-color: rgba(185,185,194,.18);
  background: rgba(135,135,145,.09);
  filter: saturate(.15);
}

.shiritori-my-word-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 3px 2px 8px;
  border-bottom: 1px solid rgba(56,227,255,.25);
}

.shiritori-my-word-heading strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--sh-yellow);
  font-size: 21px;
  line-height: 1.25;
}

.shiritori-my-word-like {
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 64px;
  min-height: 40px;
  padding: 4px 10px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 13px;
  color: rgba(255,255,255,.42);
  background: rgba(255,255,255,.04);
  font-weight: 900;
  white-space: nowrap;
}
.shiritori-my-word-like > span { font-size: 22px; line-height: 1; }
.shiritori-my-word-like > b { font-size: 14px; }
.shiritori-my-word-like.has-likes {
  overflow: visible;
  border-color: #ffe46d;
  color: #fff7bf;
  background: linear-gradient(145deg, rgba(255,230,102,.28), rgba(180,112,10,.34));
  box-shadow: inset 0 1px rgba(255,255,255,.55), 0 0 8px rgba(255,216,74,.7), 0 0 20px rgba(255,181,24,.4);
  text-shadow: 0 1px 0 #7b4900;
  animation: shiritori-own-like-glow 1.8s ease-in-out infinite;
}
.shiritori-my-word-like.has-likes > span {
  color: #ffd84a;
  filter: drop-shadow(0 0 5px #fff1a1) drop-shadow(0 0 9px #ffb51a);
}
.shiritori-my-word-like.has-likes::before,
.shiritori-my-word-like.has-likes::after {
  content: "✦";
  position: absolute;
  color: #fff3a0;
  line-height: 1;
  pointer-events: none;
  text-shadow: 0 0 6px #ffc52d;
}
.shiritori-my-word-like.has-likes::before {
  top: -7px;
  right: -5px;
  font-size: 13px;
  animation: shiritori-own-like-sparkle 1.4s ease-in-out infinite;
}
.shiritori-my-word-like.has-likes::after {
  bottom: -5px;
  left: -4px;
  font-size: 9px;
  animation: shiritori-own-like-sparkle 1.4s .7s ease-in-out infinite;
}

.shiritori-my-word-card.is-rolled-back .shiritori-my-word-heading { border-bottom: 0; }
.shiritori-my-word-card.is-rolled-back .shiritori-my-word-heading strong { color: rgba(168,168,178,.25); font-size: 16px; }
.shiritori-my-word-card footer { display: flex; justify-content: flex-end; margin-top: 8px; }
.shiritori-my-word-card time { color: rgba(255,255,255,.38); font-size: 10px; }

.shiritori-my-words-status { margin: 35px 0; color: rgba(255,255,255,.58); text-align: center; font-weight: 800; }
.shiritori-my-words-more {
  min-height: 42px;
  border: 1px solid rgba(56,227,255,.38);
  border-radius: 12px;
  color: #eefcff;
  background: rgba(56,227,255,.1);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.shiritori-my-words-more:disabled { opacity: .55; }

.shiritori-journey-view,
.shiritori-collection-view {
  min-height: 0;
  padding: 14px 15px 18px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.shiritori-journey-badge {
  width: fit-content;
  margin: 0 auto 10px;
  padding: 5px 12px;
  border: 1px solid rgba(255,216,74,.5);
  border-radius: 999px;
  color: #33263c;
  background: #fff4bd;
  font-size: 9px;
  font-weight: 900;
}

.shiritori-journey-route {
  padding: 20px 14px;
  border: 1px solid rgba(107,202,255,.23);
  border-radius: 18px;
  text-align: center;
  background: radial-gradient(circle at 20% 0, rgba(255,75,159,.16), transparent 58%), linear-gradient(135deg, rgba(20,24,58,.95), rgba(26,51,83,.82));
}

.shiritori-journey-route small { display: block; color: rgba(255,255,255,.5); font-size: 9px; }
.shiritori-journey-route h3 { margin: 8px 0 12px; color: #ffe36d; font-size: 22px; line-height: 1.25; overflow-wrap: anywhere; }
.shiritori-journey-route p { margin: 0 0 12px; color: rgba(255,255,255,.68); font-size: 10px; }
.shiritori-journey-route p b { color: #fff; font-family: var(--font-bebas); font-size: 30px; vertical-align: -.08em; }
.shiritori-journey-route strong { display: block; margin-top: 7px; color: #5beaff; font-size: 23px; overflow-wrap: anywhere; }

.shiritori-journey-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  margin-top: 8px;
}
.shiritori-journey-stats div { display: grid; place-items: center; min-height: 62px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(5,10,32,.58); }
.shiritori-journey-stats b { color: #ffe05d; font-family: var(--font-bebas); font-size: 27px; line-height: 1; }
.shiritori-journey-stats span { color: rgba(255,255,255,.57); font-size: 8px; }

.shiritori-journey-xavi { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 8px; margin-top: 9px; }
.shiritori-journey-xavi img { border: 2px solid rgba(255,255,255,.72); border-radius: 50%; }
.shiritori-journey-xavi p { margin: 0; padding: 10px 12px; border: 1px solid #f0d877; border-radius: 13px; color: #272137; background: #fff5c9; font-size: 10px; font-weight: 800; line-height: 1.55; }
.shiritori-journey-xavi p b { display: block; color: #e82f83; font-size: 9px; }

.shiritori-journey-actions { display: grid; grid-template-columns: 1fr 1fr .62fr; gap: 7px; margin-top: 10px; }
.shiritori-journey-actions button { min-height: 40px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; color: #fff; background: rgba(255,255,255,.08); font: inherit; font-size: 10px; font-weight: 900; cursor: pointer; }
.shiritori-journey-actions button.is-profile { border-color: rgba(92,233,255,.58); color: #e7fdff; background: linear-gradient(135deg, rgba(44,125,205,.9), rgba(97,55,158,.86)); box-shadow: inset 0 1px rgba(255,255,255,.18), 0 0 15px rgba(68,219,255,.12); }
.shiritori-journey-actions button.is-share { border-color: rgba(255,79,154,.58); background: linear-gradient(135deg, #c92067, #aa2d83); }
.shiritori-journey-path { display: grid; gap: 5px; margin: 11px 0 0; padding: 10px; border-radius: 12px; background: rgba(2,6,23,.58); list-style: none; }
.shiritori-journey-path li { display: grid; grid-template-columns: 25px minmax(0,1fr); align-items: center; gap: 7px; color: rgba(255,255,255,.78); font-size: 10px; }
.shiritori-journey-path li span { color: #5deeff; font-family: var(--font-bebas); font-size: 14px; text-align: right; }

.shiritori-bias-profile { position: relative; overflow: hidden; padding: 2px 0 6px; }
.shiritori-bias-profile::before { content: ""; position: absolute; z-index: 0; inset: -85px -70px auto; height: 270px; pointer-events: none; background: radial-gradient(circle at 22% 45%, rgba(255,70,160,.24), transparent 43%), radial-gradient(circle at 75% 35%, rgba(63,222,255,.18), transparent 44%); filter: blur(12px); }
.shiritori-bias-profile > * { position: relative; z-index: 1; }
.shiritori-bias-profile-header { display: flex; align-items: start; justify-content: space-between; gap: 10px; padding: 3px 3px 0; }
.shiritori-bias-profile-header span { display: inline-block; padding: 3px 7px; border: 1px solid rgba(255,220,101,.42); border-radius: 999px; color: #ffe57d; background: rgba(255,220,101,.09); font-size: 8px; font-weight: 900; }
.shiritori-bias-profile-header h3 { margin: 7px 0 3px; color: #fff8de; font-size: 23px; letter-spacing: .03em; text-shadow: 0 2px 16px rgba(255,183,67,.45); }
.shiritori-bias-profile-header p { margin: 0; color: rgba(235,249,255,.7); font-size: 9px; }
.shiritori-bias-profile-header p b { color: #fff0a5; font-family: var(--font-bebas); font-size: 17px; vertical-align: -.07em; }
.shiritori-bias-profile-header button { flex: 0 0 auto; min-height: 32px; padding: 0 10px; border: 1px solid rgba(255,255,255,.23); border-radius: 9px; color: rgba(255,255,255,.88); background: rgba(7,12,36,.55); font: inherit; font-size: 9px; font-weight: 900; cursor: pointer; }
.shiritori-bias-profile-radar-shell { position: relative; margin: 12px -3px 7px; padding: 3px; overflow: hidden; border: 1px solid rgba(109,239,255,.35); border-radius: 22px; background: radial-gradient(circle at 50% 48%, rgba(102,237,255,.15), transparent 41%), linear-gradient(135deg, rgba(22,24,70,.88), rgba(40,24,73,.82)); box-shadow: inset 0 1px rgba(255,255,255,.13), 0 14px 30px rgba(0,0,0,.25), 0 0 20px rgba(74,216,255,.12); }
.shiritori-bias-profile-radar-shell::after { content: ""; position: absolute; inset: 13% 10%; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(255,238,143,.16) 0 1px, transparent 2px); background-size: 13px 13px; mask-image: radial-gradient(circle, #000, transparent 72%); opacity: .54; }
.shiritori-bias-profile-radar { position: relative; z-index: 1; display: block; width: 100%; max-width: 350px; margin: auto; }
.shiritori-bias-profile-grid { fill: rgba(84,205,255,.035); stroke: rgba(184,239,255,.22); stroke-width: 1; }
.shiritori-bias-profile-spoke { stroke: rgba(192,238,255,.2); stroke-width: 1; }
.shiritori-bias-profile-fill-shadow { fill: rgba(51,233,255,.24); filter: blur(9px); transform: scale(1.02); transform-origin: 160px 160px; }
.shiritori-bias-profile-fill { fill: url(#shiritori-bias-fill); fill-opacity: .58; stroke: #b7f9ff; stroke-width: 2; stroke-linejoin: round; }
.shiritori-bias-profile-dot { fill: #fff4a4; stroke: #47e9ff; stroke-width: 2; }
.shiritori-bias-profile-core { fill: #111a45; stroke: #ffe874; stroke-width: 1.5; }
.shiritori-bias-profile-core-label { fill: #f6f0ff; font-size: 10px; font-weight: 900; text-anchor: middle; }
.shiritori-bias-profile-core-value { fill: #ffe765; font-family: var(--font-bebas); font-size: 20px; text-anchor: middle; }
.shiritori-bias-profile-label { fill: #f8f7ff; font-size: 9.5px; font-weight: 900; paint-order: stroke; stroke: #0c112c; stroke-width: 3px; stroke-linejoin: round; }
.shiritori-bias-profile-axes { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 8px; }
.shiritori-bias-profile-axes > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 7px; padding: 8px 9px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-left: 3px solid #6fefff; border-radius: 10px; background: linear-gradient(115deg, rgba(8,15,43,.82), rgba(32,38,77,.64)); }
.shiritori-bias-profile-axes > div.is-character { border-left-color: #ff6fad; }.shiritori-bias-profile-axes > div.is-battle { border-left-color: #ffbd54; }.shiritori-bias-profile-axes > div.is-world { border-left-color: #61e9cc; }.shiritori-bias-profile-axes > div.is-gear { border-left-color: #92b6ff; }.shiritori-bias-profile-axes > div.is-story { border-left-color: #f39aff; }.shiritori-bias-profile-axes > div.is-community { border-left-color: #ff85d0; }.shiritori-bias-profile-axes > div.is-creator { border-left-color: #ffe06e; }
.shiritori-bias-profile-axes span { min-width: 0; color: #f9fbff; font-size: 9px; font-weight: 900; }.shiritori-bias-profile-axes small { display: block; margin-top: 1px; color: rgba(222,241,255,.52); font-size: 7px; font-weight: 700; }
.shiritori-bias-profile-axes b { align-self: center; color: #ffe574; font-family: var(--font-bebas); font-size: 21px; line-height: 1; }.shiritori-bias-profile-axes em { margin-left: 1px; color: rgba(255,255,255,.58); font-family: var(--font-nitalago); font-size: 7px; font-style: normal; }
.shiritori-bias-profile-axes > div > i { grid-column: 1 / -1; display: block; height: 3px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.08); }.shiritori-bias-profile-axes > div > i > i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #55e8ff, #ff72bd, #ffe273); box-shadow: 0 0 8px rgba(103,229,255,.75); }
.shiritori-bias-profile-note { margin: 12px 4px 2px; color: rgba(233,241,255,.64); font-size: 9px; line-height: 1.55; text-align: center; }

.shiritori-collection-summary { display: flex; align-items: end; justify-content: space-between; gap: 15px; padding: 17px; border: 1px solid rgba(255,216,74,.28); border-radius: 17px; background: linear-gradient(135deg, rgba(255,79,154,.11), rgba(31,56,101,.5)); }
.shiritori-collection-summary small { color: rgba(255,255,255,.5); font-size: 9px; }
.shiritori-collection-summary h3 { margin: 3px 0 0; font-size: 24px; }
.shiritori-collection-summary > strong { color: #ffe35e; font-family: var(--font-bebas); font-size: 40px; line-height: 1; }
.shiritori-collection-summary > strong span { margin-left: 3px; font-family: var(--font-nitalago); font-size: 10px; }
.shiritori-collection-bar { height: 6px; margin: 10px 2px 13px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.1); }
.shiritori-collection-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ff4f9a, #ff9b62, #ffe25c); box-shadow: 0 0 12px rgba(255,173,60,.5); }
.shiritori-collection-categories { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.shiritori-collection-categories div { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 47px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.08); border-radius: 11px; background: rgba(5,10,32,.52); }
.shiritori-collection-categories span { color: rgba(255,255,255,.65); font-size: 9px; }
.shiritori-collection-categories b { color: #5deeff; font-family: var(--font-bebas); font-size: 24px; }
.shiritori-collection-words { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }
.shiritori-collection-words span { padding: 5px 8px; border: 1px solid rgba(93,238,255,.2); border-radius: 999px; color: rgba(226,251,255,.72); background: rgba(93,238,255,.06); font-size: 8px; }

.shiritori-help-backdrop {
  position: fixed;
  z-index: 80;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(6,7,22,.82);
  backdrop-filter: blur(12px);
}

.shiritori-greeting-backdrop {
  position: fixed;
  z-index: 95;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(6,7,22,.07);
  -webkit-backdrop-filter: blur(3px) brightness(.97) saturate(.94);
  backdrop-filter: blur(3px) brightness(.97) saturate(.94);
  animation: shiritori-greeting-backdrop-in .52s ease-out both;
}

.shiritori-greeting-window {
  position: relative;
  width: min(560px, 80vw);
  max-height: 92svh;
  overflow: auto;
  border: 2px solid rgba(255,216,74,.62);
  border-radius: 27px;
  color: #f8f7ff;
  background:
    radial-gradient(circle at 8% 0, rgba(255,79,154,.18), transparent 25rem),
    radial-gradient(circle at 100% 36%, rgba(56,227,255,.12), transparent 24rem),
    linear-gradient(150deg, rgba(41,33,63,.7), rgba(17,22,44,.7) 72%);
  box-shadow: 0 30px 95px rgba(0,0,0,.7), inset 0 1px rgba(255,255,255,.2), 0 0 36px rgba(255,216,74,.13);
  transform-origin: 50% 54%;
  will-change: transform, opacity, filter;
  animation:
    shiritori-greeting-magical-in .72s cubic-bezier(.18,.82,.2,1.08) both,
    shiritori-greeting-float 2.1s ease-in-out .72s infinite alternate;
  scrollbar-width: none;
}

.shiritori-greeting-window::-webkit-scrollbar { display: none; }

.shiritori-greeting-window::before,
.shiritori-greeting-window::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.shiritori-greeting-window::before {
  background:
    radial-gradient(circle at 11% 16%, rgba(255,238,134,.96) 0 2px, transparent 3px),
    radial-gradient(circle at 87% 13%, rgba(107,238,255,.92) 0 2px, transparent 3px),
    radial-gradient(circle at 94% 58%, rgba(255,136,213,.9) 0 1.5px, transparent 3px),
    radial-gradient(circle at 8% 72%, rgba(255,228,104,.88) 0 1.5px, transparent 3px),
    radial-gradient(circle at 76% 91%, rgba(124,235,255,.85) 0 1.5px, transparent 3px);
  opacity: 0;
  animation: shiritori-greeting-sparkles .92s .08s ease-out both;
}

.shiritori-greeting-window::after {
  inset: -14px;
  border: 1px solid rgba(255,230,116,.3);
  box-shadow: 0 0 34px rgba(255,216,74,.22), inset 0 0 28px rgba(255,92,179,.08);
  opacity: 0;
  animation: shiritori-greeting-aura .9s .05s ease-out both;
}

.shiritori-greeting-backdrop.is-closing {
  animation: shiritori-greeting-backdrop-out .46s ease-in both;
}

.shiritori-greeting-backdrop.is-closing .shiritori-greeting-window {
  animation: shiritori-greeting-magical-out .46s cubic-bezier(.55,0,.9,.45) both;
}

.shiritori-greeting-backdrop.is-closing .shiritori-greeting-window::before,
.shiritori-greeting-backdrop.is-closing .shiritori-greeting-window::after {
  animation: shiritori-greeting-sparkles-out .42s ease-in both;
}

@keyframes shiritori-greeting-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes shiritori-greeting-backdrop-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes shiritori-greeting-magical-in {
  0% { opacity: 0; filter: blur(9px) brightness(1.75); transform: translateY(14px) scale(.86) rotate(-1.2deg); }
  54% { opacity: 1; filter: blur(0) brightness(1.22); transform: translateY(-4px) scale(1.025) rotate(.25deg); }
  100% { opacity: 1; filter: none; transform: translateY(0) scale(1) rotate(0); }
}

@keyframes shiritori-greeting-float {
  from { transform: translateY(-5px); }
  to { transform: translateY(5px); }
}

@keyframes shiritori-greeting-magical-out {
  0% { opacity: 1; filter: none; transform: translateY(0) scale(1); }
  35% { opacity: 1; filter: brightness(1.35); transform: translateY(-4px) scale(1.018); }
  100% { opacity: 0; filter: blur(10px) brightness(1.8); transform: translateY(-18px) scale(.82); }
}

@keyframes shiritori-greeting-sparkles {
  0% { opacity: 0; transform: scale(.72) rotate(-3deg); }
  38% { opacity: 1; }
  100% { opacity: .38; transform: scale(1.06) rotate(1deg); }
}

@keyframes shiritori-greeting-aura {
  0% { opacity: 0; transform: scale(.82); }
  50% { opacity: .95; }
  100% { opacity: .42; transform: scale(1); }
}

@keyframes shiritori-greeting-sparkles-out {
  from { opacity: .55; transform: scale(1); }
  to { opacity: 0; transform: scale(1.14) rotate(2deg); }
}

.shiritori-greeting-header {
  position: relative;
  padding: 32px 34px 23px;
  border-bottom: 1px solid rgba(255,255,255,.14);
  text-align: center;
}

.shiritori-greeting-header > span {
  display: block;
  margin-bottom: 4px;
  color: var(--sh-yellow);
  font-size: 24px;
  text-shadow: 0 0 18px rgba(255,216,74,.55);
}

.shiritori-greeting-header h2 {
  margin: 0;
  font-size: clamp(29px, 7vw, 43px);
  font-weight: 950;
  line-height: 1.08;
  letter-spacing: .015em;
  text-shadow: 0 3px 12px rgba(4,5,18,.92);
}

.shiritori-greeting-copy {
  display: grid;
  gap: 0;
  padding: 12px 34px 18px;
  text-align: center;
}

.shiritori-greeting-copy p {
  margin: 0;
  padding: 18px 4px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.83);
  font-size: 16px;
  font-weight: 760;
  line-height: 1.72;
  text-shadow: 0 2px 8px rgba(4,5,18,.96);
}

.shiritori-greeting-copy .is-lead {
  color: #fff;
  font-size: 19px;
  font-weight: 900;
}

.shiritori-greeting-copy strong { color: #fff0a5; font-weight: 950; }
.shiritori-greeting-copy strong.is-white { color: #fff; }
.shiritori-greeting-copy strong.is-white .is-accent { color: #fff0a5; }

.shiritori-greeting-copy .is-callout {
  border-bottom: 0;
  color: var(--sh-yellow);
  font-size: 19px;
  font-weight: 950;
  text-shadow: 0 0 16px rgba(255,216,74,.22);
}

.shiritori-greeting-window.is-feature-notice {
  width: min(620px, 88vw);
  height: 80svh;
  max-height: 80svh;
  overflow-x: hidden;
  overflow-y: auto;
  touch-action: pan-y;
  border-color: rgba(255,220,82,.84);
  background:
    radial-gradient(circle at 8% 0, rgba(255,79,154,.18), transparent 25rem),
    radial-gradient(circle at 100% 36%, rgba(56,227,255,.12), transparent 24rem),
    linear-gradient(150deg, rgba(41,33,63,.7), rgba(17,22,44,.7) 72%);
}

.shiritori-greeting-backdrop.is-saga-talk-guide {
  background: rgba(6,7,22,.52);
  -webkit-backdrop-filter: blur(7px) brightness(.84);
  backdrop-filter: blur(7px) brightness(.84);
}

.shiritori-greeting-window.is-saga-talk-guide {
  width: min(600px, 90vw);
  max-width: 90vw;
  max-height: 84svh;
  overflow-x: hidden;
  overflow-x: clip;
  overflow-y: auto;
  touch-action: pan-y pinch-zoom;
  overscroll-behavior-x: none;
  border-color: rgba(255,226,91,.9);
  background:
    radial-gradient(circle at 8% 0, rgba(255,202,54,.17), transparent 23rem),
    radial-gradient(circle at 100% 35%, rgba(63,228,255,.15), transparent 24rem),
    linear-gradient(150deg, rgba(46,29,61,.98), rgba(14,22,46,.98) 72%);
}

.shiritori-greeting-window.is-saga-talk-guide > * {
  min-width: 0;
  max-width: 100%;
}

.shiritori-greeting-window.is-saga-talk-guide .shiritori-greeting-header {
  padding: 23px 30px 19px;
}

.shiritori-greeting-window.is-saga-talk-guide .shiritori-greeting-header > span {
  display: inline-block;
  margin-bottom: 8px;
  padding: 4px 11px 3px;
  border: 1px solid rgba(255,236,135,.76);
  border-radius: 999px;
  color: #27182e;
  background: linear-gradient(100deg, #fff080, #ff9bcf 54%, #78ebff);
  font-family: var(--font-nitalago), sans-serif;
  font-size: 15px;
  font-weight: 950;
  letter-spacing: .1em;
  text-shadow: none;
}

.shiritori-greeting-window.is-saga-talk-guide .shiritori-greeting-header h2 {
  white-space: nowrap;
  font-size: clamp(20px, 4.6vw, 31px);
}

.shiritori-greeting-window.is-saga-talk-guide .shiritori-greeting-header h2 b {
  color: #ffe96d;
  font-weight: inherit;
  text-shadow: 0 0 13px rgba(255,222,83,.36), 0 3px 10px rgba(4,5,18,.9);
}

.shiritori-saga-talk-guide-copy {
  display: grid;
  gap: 15px;
  padding: 22px 30px 25px;
  min-width: 0;
  overflow-x: hidden;
}

.shiritori-saga-talk-guide-copy .is-lead {
  margin: 0;
  color: #fff;
  font-size: 16px;
  font-weight: 850;
  line-height: 1.75;
}

.shiritori-saga-talk-guide-copy .is-saga-talk-required { color: #ffe15a; }

.shiritori-saga-talk-guide-copy section {
  padding: 15px 17px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 15px;
  background: rgba(6,9,29,.28);
  min-width: 0;
}

.shiritori-saga-talk-guide-copy h3 {
  margin: 0 0 10px;
  color: #ffe976;
  font-size: 15px;
  font-weight: 950;
}

.shiritori-saga-talk-guide-copy ul,
.shiritori-saga-talk-guide-copy ol {
  margin: 0;
  padding-left: 1.65em;
}

.shiritori-saga-talk-guide-copy ul { list-style: disc; }

.shiritori-saga-talk-guide-copy li {
  margin: 6px 0;
  color: rgba(255,255,255,.9);
  font-size: 14px;
  font-weight: 760;
  line-height: 1.55;
}

.shiritori-saga-talk-example-chain { display: grid; justify-items: start; }

.shiritori-saga-talk-example-chain p {
  margin: 0;
  color: rgba(255,255,255,.94);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  min-width: 0;
  overflow-wrap: anywhere;
}

.shiritori-saga-talk-example-chain p .is-saga-term {
  color: #ffe96d;
  font-weight: 950;
  text-shadow: 0 0 10px rgba(255,222,83,.28);
}

.shiritori-saga-talk-example-chain p .is-ending {
  color: #d9fbff;
  font-weight: 950;
  text-shadow: 0 0 9px rgba(117,237,255,.46);
}

.shiritori-saga-talk-example-chain i {
  height: 18px;
  margin: 1px 0;
  color: #75edff;
  font-size: 17px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  text-shadow: 0 0 8px rgba(117,237,255,.5);
}

.shiritori-greeting-footer.is-saga-talk-guide-footer {
  justify-content: center;
}

.shiritori-greeting-footer.is-saga-talk-guide-footer button {
  min-width: 176px;
  padding: 14px 24px 12px;
  font-family: var(--font-nitalago), sans-serif;
  font-weight: 600;
  font-size: 18px;
}

.shiritori-greeting-window.is-feature-notice .shiritori-greeting-header {
  padding: 20px 34px 15px;
}

.shiritori-greeting-window.is-feature-notice .shiritori-greeting-header > span {
  display: inline-block;
  padding: 4px 12px 3px;
  border: 1px solid rgba(255,235,133,.72);
  border-radius: 999px;
  color: #23172d;
  background: linear-gradient(100deg, #fff080, #ff9bcf 54%, #78ebff);
  font-family: var(--font-bebas), sans-serif;
  font-size: 18px;
  letter-spacing: .08em;
  text-shadow: none;
  box-shadow: 0 0 19px rgba(255,216,74,.28);
}

.shiritori-feature-notice-copy {
  padding: 25px 37px 27px;
  color: #fff;
}

.shiritori-feature-notice-copy h3 {
  margin: 0;
  color: #71edff;
  font-size: clamp(25px, 6vw, 35px);
  font-weight: 950;
  line-height: 1.25;
  text-align: center;
  text-shadow: 0 0 18px rgba(62,228,255,.38), 0 3px 10px rgba(4,5,18,.9);
}

.shiritori-connection-time-kicker {
  margin: 0 0 4px !important;
  color: #ff9b42 !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  letter-spacing: .13em;
  line-height: 1.2 !important;
  text-align: center;
  text-shadow: 0 2px 8px rgba(83,27,4,.92) !important;
}

.shiritori-feature-notice-rule {
  height: 1px;
  margin: 20px 0 21px;
  background: linear-gradient(90deg, transparent, rgba(255,224,91,.9) 18% 82%, transparent);
  box-shadow: 0 0 10px rgba(255,224,91,.32);
}

.shiritori-feature-notice-copy p {
  margin: 0 0 17px;
  color: #fff;
  font-size: 16px;
  font-weight: 760;
  line-height: 1.78;
  text-shadow: 0 2px 8px rgba(4,5,18,.92);
}

.shiritori-feature-notice-copy strong {
  color: #fff178;
  font-weight: 950;
}

.shiritori-feature-notice-copy .is-xavi-caution {
  margin: 23px 0 0;
  padding: 14px 16px;
  border: 1px solid rgba(255,117,184,.36);
  border-radius: 15px;
  color: #fff;
  background: rgba(255,79,154,.09);
  font-weight: 850;
  text-align: center;
}

.shiritori-connection-time-lead {
  text-align: center;
  font-size: 17px !important;
  font-weight: 900 !important;
}

.shiritori-connection-time-guide {
  margin: 7px 0 18px;
  padding: 7px;
  border: 1px solid rgba(255,191,65,.68);
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(255,151,40,.14), rgba(11,13,37,.26) 44%, rgba(255,88,160,.12));
  box-shadow: 0 10px 22px rgba(2,3,14,.28), inset 0 1px rgba(255,255,255,.16);
}

.shiritori-connection-time-guide img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 9px;
  background: #06060d;
}

.shiritori-connection-time-flow {
  display: grid;
  justify-items: stretch;
  gap: 5px;
  margin: 7px 0 19px;
}

.shiritori-connection-time-flow > div {
  display: grid;
  gap: 2px;
  padding: 12px 14px;
  border: 1px solid rgba(255,222,105,.48);
  border-radius: 14px;
  text-align: center;
  background: rgba(10,13,36,.32);
  box-shadow: inset 0 1px rgba(255,255,255,.13);
}

.shiritori-connection-time-flow > div.is-timer {
  border-color: rgba(70,227,255,.68);
  background: linear-gradient(100deg, rgba(47,204,255,.18), rgba(146,83,255,.18));
  box-shadow: inset 0 1px rgba(255,255,255,.18), 0 0 19px rgba(54,221,255,.12);
}

.shiritori-connection-time-flow > div.is-free {
  border-color: rgba(255,127,195,.48);
  background: rgba(255,79,154,.08);
}

.shiritori-connection-time-flow small {
  color: #79eeff;
  font-family: var(--font-bebas), sans-serif;
  font-size: 12px;
  letter-spacing: .12em;
}

.shiritori-connection-time-flow b {
  color: #fff8bd;
  font-size: 17px;
  font-weight: 950;
}

.shiritori-connection-time-flow span {
  color: rgba(255,255,255,.92);
  font-size: 13px;
  font-weight: 760;
  line-height: 1.5;
}

.shiritori-connection-time-flow .is-connection-success {
  display: inline-block;
  color: #ffe45d;
  text-shadow: 0 2px 7px rgba(3,5,19,.9), 0 0 12px rgba(255,213,52,.22);
}

.shiritori-connection-time-flow i {
  color: #ffdf63;
  font-size: 19px;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-shadow: 0 0 12px rgba(255,219,79,.55);
}

.shiritori-connection-time-rules {
  margin-bottom: 0 !important;
}

.shiritori-admin-preview-label {
  color: #72ebff;
  font-size: 12px;
  font-weight: 850;
}

.shiritori-greeting-mobile-break { display: none; }

.shiritori-greeting-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 25px 22px;
  border-top: 1px solid rgba(255,255,255,.14);
  background: rgba(5,7,20,.16);
}

.shiritori-greeting-footer label {
  display: flex;
  align-items: center;
  gap: 9px;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.shiritori-greeting-footer input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--sh-pink);
}

.shiritori-greeting-footer button {
  flex: 0 0 auto;
  min-width: 112px;
  padding: 12px 19px 10px;
  border: 1px solid rgba(255,216,74,.7);
  border-radius: 15px;
  color: #171329;
  background: linear-gradient(180deg, #ffe977, #ffcc3f);
  font: inherit;
  font-size: 15px;
  font-weight: 950;
  box-shadow: 0 5px 0 rgba(125,76,0,.55), 0 0 18px rgba(255,216,74,.17);
  cursor: pointer;
}

.shiritori-greeting-footer button:disabled { cursor: default; }

.shiritori-help-window {
  position: relative;
  width: min(680px, 100%);
  max-height: 88svh;
  overflow: auto;
  border: 2px solid rgba(255,216,74,.58);
  border-radius: 26px;
  color: #f8f7ff;
  background:
    radial-gradient(circle at 12% 0, rgba(255,79,154,.22), transparent 27rem),
    radial-gradient(circle at 100% 24%, rgba(56,227,255,.15), transparent 25rem),
    linear-gradient(150deg, #24203d, #11152c 70%);
  box-shadow: 0 30px 90px rgba(0,0,0,.68), inset 0 1px rgba(255,255,255,.18), 0 0 35px rgba(255,216,74,.12);
  overscroll-behavior: contain;
  scrollbar-color: var(--sh-pink) transparent;
  animation: shiritori-help-in .24s ease-out both;
}

@keyframes shiritori-help-in {
  from { opacity: 0; transform: translateY(18px) scale(.97); }
  to { opacity: 1; transform: none; }
}

.shiritori-help-close {
  position: sticky;
  z-index: 2;
  top: 12px;
  float: right;
  width: 40px;
  height: 40px;
  margin: 12px 12px -52px 0;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  color: #fff;
  background: rgba(17,17,38,.86);
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.shiritori-help-hero { padding: 32px 30px 25px; border-bottom: 1px solid rgba(255,255,255,.14); }
.shiritori-help-hero h2 { margin: 7px 48px 16px 0; font-size: clamp(27px, 6vw, 42px); font-weight: 950; line-height: 1.05; }
.shiritori-help-hero h2 b { color: var(--sh-yellow); font-family: var(--font-bebas), sans-serif; letter-spacing: .06em; }
.shiritori-help-hero p { margin: 8px 0 0; color: rgba(255,255,255,.82); font-size: 15px; font-weight: 750; line-height: 1.75; }

.shiritori-help-content { padding: 12px 25px 30px; }
.shiritori-help-content > section { padding: 23px 5px; border-bottom: 1px solid rgba(255,255,255,.11); }
.shiritori-help-content h3 { margin: 0 0 14px; color: var(--sh-yellow); font-size: 23px; font-weight: 950; line-height: 1.2; }
.shiritori-help-content p,
.shiritori-help-content li { color: rgba(255,255,255,.83); font-size: 14px; font-weight: 720; line-height: 1.75; }
.shiritori-help-content p { margin: 9px 0; }
.shiritori-help-content ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.shiritori-help-content li { position: relative; padding-left: 20px; }
.shiritori-help-content li::before { content: "◆"; position: absolute; left: 0; top: .1em; color: var(--sh-pink); font-size: 9px; }
.shiritori-help-example { color: var(--sh-cyan); }
.shiritori-help-example-card { margin: 14px 0; padding: 13px 15px; border: 1px solid rgba(56,227,255,.35); border-radius: 12px; color: #e9fbff; background: rgba(56,227,255,.08); font-size: 14px; font-weight: 850; line-height: 1.8; }
.shiritori-help-connection-time { border-color: rgba(255,216,74,.34) !important; }
.shiritori-help-connection-time h3 { color: #ffe56a; text-shadow: 0 0 14px rgba(255,205,52,.28); }
.shiritori-help-connection-time-figure { margin: 18px 0 17px; padding: 8px; border: 1px solid rgba(255,217,81,.52); border-radius: 15px; background: linear-gradient(135deg, rgba(255,194,44,.17), rgba(255,91,168,.10) 48%, rgba(57,224,255,.13)); box-shadow: 0 10px 28px rgba(0,0,0,.26), inset 0 1px rgba(255,255,255,.18); }
.shiritori-help-connection-time-figure img { display: block; width: 100%; height: auto; border-radius: 9px; background: #070711; }
.shiritori-help-connection-time-figure figcaption { margin: 9px 5px 2px; color: #fff2ac; font-size: 12px; font-weight: 800; line-height: 1.55; text-align: center; }
.shiritori-help-content section.is-xavi { margin-top: 12px; padding-inline: 18px; border: 1px solid rgba(255,79,154,.3); border-radius: 17px; background: rgba(255,79,154,.07); }
.shiritori-help-switch { margin-top: 10px; padding: 11px 16px; border: 1px solid var(--sh-pink); border-radius: 999px; color: #fff; background: linear-gradient(90deg, rgba(255,79,154,.55), rgba(144,80,219,.55)); font: inherit; font-size: 14px; font-weight: 900; cursor: pointer; }
.shiritori-love-list { max-width: 450px; }
.shiritori-love-list li { display: grid; grid-template-columns: minmax(0,1fr) 48px; align-items: baseline; column-gap: 18px; }
.shiritori-love-list b { color: var(--sh-yellow); font-family: var(--font-bebas), sans-serif; font-size: 29px; letter-spacing: .04em; line-height: 1; text-shadow: 0 0 12px rgba(255,216,74,.28); }
.shiritori-love-list b i { display: inline-block; margin-right: 2px; font-family: var(--font-nitalago); font-size: 16px; font-style: normal; vertical-align: .18em; }
.shiritori-love-list small { grid-column: 1 / -1; color: rgba(255,255,255,.5); }
.shiritori-help-stat { margin: 13px 0 0; padding-inline: 18px !important; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(255,255,255,.035); }
.shiritori-help-stat h3 { font-size: 29px; }
.shiritori-help-stat h3 small { margin-left: 8px; color: rgba(255,255,255,.62); font-size: 13px; }
.shiritori-help-stat.is-power { border-color: rgba(255,79,154,.3); }
.shiritori-help-stat.is-knowledge { border-color: rgba(56,227,255,.3); }
.shiritori-help-stat.is-love { border-color: rgba(225,85,234,.3); }
.shiritori-help-growth-image { display: block; width: 100%; height: auto; margin: 25px 0 4px; border: 1px solid rgba(255,216,74,.28); border-radius: 16px; box-shadow: 0 12px 34px rgba(0,0,0,.32); }
.shiritori-help-content .is-finale { border-bottom: 0; text-align: center; }
.shiritori-help-content .is-finale h3 { font-size: 27px; }
.shiritori-help-content .is-finale p:last-child { color: #fff0a5; font-size: 16px; font-weight: 900; }

.shiritori-now {
  position: relative;
  margin: 0 16px;
  padding: 23px 18px 26px;
  overflow: hidden;
  border: 3px solid var(--sh-yellow);
  border-radius: 27px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 30%, rgba(255,255,255,.18), transparent 45%),
    linear-gradient(135deg, #ff418d, #933cdb 52%, #1bbbd9);
  box-shadow: 0 8px 0 #6b236b, 0 18px 35px rgba(255,79,154,.22);
}

.shiritori-now.is-connection {
  border-color: #fff59a;
  background-size: 100% 100%, 220% 220%;
  animation: shiritori-jackpot-glow 2.8s ease-in-out infinite, shiritori-jackpot-shift 6s ease-in-out infinite alternate;
}

.shiritori-now.is-updating {
  animation: shiritori-current-word-shake 760ms linear both;
}

.shiritori-now.is-connection.is-updating {
  animation:
    shiritori-jackpot-glow 2.8s ease-in-out infinite,
    shiritori-jackpot-shift 6s ease-in-out infinite alternate,
    shiritori-current-word-shake 760ms linear both;
}

.shiritori-shell.is-connection-time .shiritori-now.is-connection.is-updating {
  animation:
    shiritori-golden-panel-glow 2.15s ease-in-out infinite alternate,
    shiritori-golden-panel-shift 4.4s cubic-bezier(.38,.02,.24,1) infinite alternate,
    shiritori-current-word-shake 760ms linear both;
}

.shiritori-word-update-smoke {
  position: absolute;
  z-index: 4;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.shiritori-word-update-smoke i {
  --smoke-x: 0px;
  --smoke-y: -80px;
  --smoke-scale: 1;
  --smoke-delay: 0ms;
  position: absolute;
  left: 50%;
  top: 62%;
  width: clamp(72px, 20vw, 135px);
  aspect-ratio: 1;
  border-radius: 50%;
  opacity: 0;
  background:
    radial-gradient(circle at 38% 38%, rgba(255,239,195,.82) 0 13%, rgba(211,169,113,.64) 32%, rgba(113,77,42,.3) 58%, transparent 72%);
  filter: blur(5px);
  mix-blend-mode: screen;
  animation: shiritori-word-update-smoke 1120ms var(--smoke-delay) cubic-bezier(.14,.62,.2,1) both;
}

.shiritori-word-update-smoke i:nth-child(1)  { --smoke-x: -180px; --smoke-y: -70px;  --smoke-scale: 1.2; --smoke-delay: 0ms; }
.shiritori-word-update-smoke i:nth-child(2)  { --smoke-x: -122px; --smoke-y: -122px; --smoke-scale: 1.05; --smoke-delay: 45ms; }
.shiritori-word-update-smoke i:nth-child(3)  { --smoke-x: -61px;  --smoke-y: -100px; --smoke-scale: 1.3; --smoke-delay: 80ms; }
.shiritori-word-update-smoke i:nth-child(4)  { --smoke-x: 18px;   --smoke-y: -138px; --smoke-scale: 1.14; --smoke-delay: 20ms; }
.shiritori-word-update-smoke i:nth-child(5)  { --smoke-x: 92px;   --smoke-y: -102px; --smoke-scale: 1.32; --smoke-delay: 95ms; }
.shiritori-word-update-smoke i:nth-child(6)  { --smoke-x: 168px;  --smoke-y: -56px;  --smoke-scale: 1.14; --smoke-delay: 55ms; }
.shiritori-word-update-smoke i:nth-child(7)  { --smoke-x: -156px; --smoke-y: 22px;   --smoke-scale: 1.12; --smoke-delay: 120ms; }
.shiritori-word-update-smoke i:nth-child(8)  { --smoke-x: -80px;  --smoke-y: 48px;   --smoke-scale: 1.28; --smoke-delay: 30ms; }
.shiritori-word-update-smoke i:nth-child(9)  { --smoke-x: 0px;    --smoke-y: 28px;   --smoke-scale: 1.42; --smoke-delay: 75ms; }
.shiritori-word-update-smoke i:nth-child(10) { --smoke-x: 73px;   --smoke-y: 52px;   --smoke-scale: 1.24; --smoke-delay: 135ms; }
.shiritori-word-update-smoke i:nth-child(11) { --smoke-x: 146px;  --smoke-y: 15px;   --smoke-scale: 1.08; --smoke-delay: 35ms; }
.shiritori-word-update-smoke i:nth-child(12) { --smoke-x: 190px;  --smoke-y: -102px; --smoke-scale: 1; --smoke-delay: 105ms; }

.shiritori-now.is-connection::before,
.shiritori-now.is-connection::after {
  color: #fffbd0;
  text-shadow: 0 0 8px #fff, 0 0 18px #ffe24f, 0 0 30px #ff68bd;
  animation: shiritori-jackpot-star .82s ease-in-out infinite alternate;
}

.shiritori-now.is-connection .shiritori-current-word {
  text-shadow: 0 5px 0 rgba(50,12,84,.42), 0 0 10px rgba(255,246,173,.46);
}

/* 連携タイム中だけ、お題枠を確変らしい琥珀～黄金の面へ切り替える。
   放射線は固定し、背景の琥珀・金・橙だけを躍動的に脈動させる。
   明るい中央には濃い琥珀を残し、白文字・黄色数字の輪郭を保つ。 */
.shiritori-shell.is-connection-time .shiritori-now.is-connection {
  border-color: #fff3a0;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(116,24,8,.58) 0 10%, rgba(116,24,8,.11) 43%, transparent 72%),
    radial-gradient(circle at 50% 42%, rgba(112,25,10,.48) 0 20%, rgba(112,25,10,.12) 43%, transparent 66%),
    repeating-conic-gradient(from 258deg at 50% 46%, rgba(255,255,194,.36) 0deg 3deg, rgba(255,150,12,.07) 3deg 9deg, rgba(255,222,53,.28) 9deg 12deg, transparent 12deg 19deg),
    radial-gradient(circle at 50% -10%, rgba(255,255,230,.98) 0 3%, rgba(255,231,77,.72) 19%, transparent 47%),
    linear-gradient(122deg, #a72d0f 0%, #ef5b0c 18%, #ffd047 42%, #df4410 65%, #ff9416 82%, #96260d 100%);
  background-size: 126% 122%, 112% 112%, 108% 108%, 122% 122%, 180% 180%;
  box-shadow:
    0 8px 0 #8a3c0e,
    0 0 34px rgba(255,234,93,.84),
    0 22px 64px rgba(255,118,13,.58),
    inset 0 0 48px rgba(255,251,177,.38),
    inset 0 -28px 55px rgba(91,26,19,.22);
  animation: shiritori-golden-panel-glow 2.15s ease-in-out infinite alternate, shiritori-golden-panel-shift 4.4s cubic-bezier(.38,.02,.24,1) infinite alternate;
}

.shiritori-shell.is-connection-time .shiritori-now.is-connection .shiritori-current-word {
  color: #fffdf1;
  -webkit-text-stroke: 1px rgba(67,17,64,.78);
  paint-order: stroke fill;
  text-shadow: 0 5px 0 #5b164d, 0 0 4px #4d133f, 0 0 16px rgba(255,255,227,.72);
}

.shiritori-shell.is-connection-time .shiritori-now.is-connection > p {
  color: #fffdf2;
  text-shadow: 0 2px 4px rgba(75,23,19,.86);
}

.shiritori-shell.is-connection-time .shiritori-now.is-connection::before,
.shiritori-shell.is-connection-time .shiritori-now.is-connection::after {
  color: #fff8c0;
  text-shadow: 0 0 5px rgba(255,255,255,.72), 0 0 14px rgba(255,210,69,.72), 0 0 23px rgba(255,94,34,.34);
  animation-duration: 2.7s;
}

/* 連携タイムの主役となるお題枠と連結カーソルは動かし、長い履歴カード側の常時合成だけを止める。 */
.shiritori-shell.is-connection-time .shiritori-entry.is-connection,
.shiritori-shell.is-connection-time .shiritori-connection-badge,
.shiritori-shell.is-connection-time .shiritori-connection-start-badge,
.shiritori-shell.is-connection-time .shiritori-input-row input:not(:disabled) {
  animation: none;
}

@keyframes shiritori-golden-panel-glow {
  from {
    border-color: #f5ce67;
    box-shadow: 0 8px 0 #73300d, 0 0 22px rgba(255,204,63,.58), 0 20px 44px rgba(208,71,17,.34), inset 0 0 30px rgba(255,244,151,.22), inset 0 -28px 55px rgba(78,20,15,.30);
  }
  to {
    border-color: #fffbd0;
    box-shadow: 0 8px 0 #b85a0a, 0 0 56px rgba(255,244,130,.98), 0 24px 82px rgba(255,117,10,.72), inset 0 0 66px rgba(255,255,218,.58), inset 0 -28px 55px rgba(89,22,15,.16);
  }
}

@keyframes shiritori-golden-panel-shift {
  0% {
    background-position: 46% 104%, 53% 48%, center, 52% -8%, 0% 44%;
    background-size: 118% 116%, 106% 106%, 108% 108%, 114% 114%, 170% 170%;
  }
  48% {
    background-position: 56% 91%, 44% 42%, center, 45% 8%, 58% 50%;
    background-size: 142% 134%, 121% 121%, 108% 108%, 134% 134%, 200% 200%;
  }
  100% {
    background-position: 43% 106%, 55% 55%, center, 56% -2%, 100% 56%;
    background-size: 123% 120%, 112% 112%, 108% 108%, 120% 120%, 180% 180%;
  }
}

/* サガトークは会話の自由さを示す、金とは別系統の鮮やかな青い連携タイム。 */
.shiritori-shell.is-connection-time.is-saga-talk-connection-time {
  background:
    radial-gradient(circle at 12% 10%, rgba(61,225,255,.58), transparent 27rem),
    radial-gradient(circle at 88% 20%, rgba(44,111,255,.5), transparent 29rem),
    radial-gradient(circle at 50% 94%, rgba(26,172,255,.4), transparent 36rem),
    linear-gradient(145deg, #061a56 0%, #092c82 35%, #062260 70%, #080e38 100%);
  box-shadow: inset 0 0 110px rgba(34,187,255,.24);
}

.shiritori-shell.is-connection-time.is-saga-talk-connection-time .shiritori-now.is-connection {
  border-color: #9df8ff;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(9,48,135,.72) 0 12%, rgba(9,48,135,.14) 45%, transparent 74%),
    radial-gradient(circle at 50% 43%, rgba(12,107,225,.56) 0 22%, rgba(12,107,225,.1) 48%, transparent 69%),
    repeating-conic-gradient(from 258deg at 50% 46%, rgba(221,255,255,.34) 0deg 3deg, rgba(36,182,255,.08) 3deg 9deg, rgba(87,235,255,.28) 9deg 12deg, transparent 12deg 19deg),
    radial-gradient(circle at 50% -10%, rgba(234,255,255,.98) 0 3%, rgba(91,230,255,.78) 19%, transparent 49%),
    linear-gradient(122deg, #082778 0%, #0962d4 18%, #25d6f2 42%, #0d63d5 65%, #21a8fb 82%, #062467 100%);
  box-shadow:
    0 8px 0 #073678,
    0 0 38px rgba(69,230,255,.94),
    0 22px 68px rgba(24,114,255,.62),
    inset 0 0 52px rgba(202,255,255,.4),
    inset 0 -28px 55px rgba(5,28,101,.34);
  animation: shiritori-saga-talk-panel-glow 2.15s ease-in-out infinite alternate, shiritori-golden-panel-shift 4.4s cubic-bezier(.38,.02,.24,1) infinite alternate;
}

.shiritori-shell.is-connection-time.is-saga-talk-connection-time .shiritori-now.is-connection.is-updating {
  animation: shiritori-saga-talk-panel-glow 2.15s ease-in-out infinite alternate, shiritori-golden-panel-shift 4.4s cubic-bezier(.38,.02,.24,1) infinite alternate, shiritori-current-word-shake 760ms linear both;
}

.shiritori-shell.is-connection-time.is-saga-talk-connection-time .shiritori-now.is-connection .shiritori-current-word {
  -webkit-text-stroke-color: rgba(7,36,104,.86);
  text-shadow: 0 5px 0 #08256d, 0 0 5px #082567, 0 0 18px rgba(226,255,255,.78);
}

.shiritori-shell.is-connection-time.is-saga-talk-connection-time .shiritori-now.is-connection > p {
  text-shadow: 0 2px 4px rgba(4,26,82,.9);
}

.shiritori-shell.is-connection-time.is-saga-talk-connection-time .shiritori-now.is-connection::before,
.shiritori-shell.is-connection-time.is-saga-talk-connection-time .shiritori-now.is-connection::after {
  color: #c9fbff;
  text-shadow: 0 0 5px rgba(255,255,255,.8), 0 0 15px rgba(75,230,255,.88), 0 0 25px rgba(43,117,255,.58);
}

@keyframes shiritori-saga-talk-panel-glow {
  from {
    border-color: #76dffc;
    box-shadow: 0 8px 0 #06316f, 0 0 24px rgba(41,205,255,.68), 0 20px 46px rgba(21,88,228,.42), inset 0 0 33px rgba(181,255,255,.25), inset 0 -28px 55px rgba(4,21,78,.36);
  }
  to {
    border-color: #e1ffff;
    box-shadow: 0 8px 0 #0755a7, 0 0 60px rgba(102,243,255,.98), 0 25px 85px rgba(28,113,255,.76), inset 0 0 70px rgba(218,255,255,.6), inset 0 -28px 55px rgba(4,23,87,.2);
  }
}

.shiritori-connection-time-status {
  margin: 68px auto -2px;
  color: #ffe56a;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .035em;
  text-align: center;
  -webkit-text-stroke: .35px rgba(111,53,0,.92);
  paint-order: stroke fill;
  text-shadow: 0 2px 3px rgba(54,23,0,.9), 0 0 8px rgba(255,225,77,.7), 0 0 18px rgba(255,178,33,.38);
}

.shiritori-connection-time-status.is-active {
  position: relative;
  display: grid;
  width: min(100%, 520px);
  gap: 5px;
  margin: 30px auto 2px;
  padding: 13px clamp(14px, 4vw, 22px) 15px;
  overflow: hidden;
  border: 2px solid rgba(255,245,160,.96);
  border-radius: 19px;
  background:
    radial-gradient(circle at 15% 0%, rgba(255,84,185,.19), transparent 38%),
    radial-gradient(circle at 90% 100%, rgba(74,225,255,.18), transparent 42%),
    linear-gradient(135deg, rgba(34,15,55,.93), rgba(38,27,76,.9));
  box-shadow:
    0 5px 0 rgba(91,34,19,.5),
    0 0 18px rgba(255,230,100,.34),
    inset 0 0 20px rgba(255,255,255,.06);
  -webkit-text-stroke: 0;
}

.shiritori-connection-time-status-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.shiritori-connection-time-status-line > strong {
  color: #ffe052;
  font-size: clamp(13px, 3.6vw, 17px);
  letter-spacing: .055em;
  white-space: nowrap;
}

.shiritori-connection-time-status-line > strong i {
  color: #fff7b1;
  font-style: normal;
  text-shadow: 0 0 8px #fff, 0 0 14px #ffdf42;
}

.shiritori-connection-time-status em {
  color: #fff5c6;
  font-size: clamp(15px, 3.8vw, 18px);
  font-style: normal;
  font-variant-numeric: tabular-nums;
  letter-spacing: .045em;
}

.shiritori-connection-time-status em b {
  color: inherit;
  font-family: var(--font-bebas), sans-serif;
  font-size: 1.24em;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: .065em;
  line-height: .75;
}

.shiritori-connection-time-target-label {
  margin-top: 3px;
  color: rgba(255,255,255,.8);
  font-size: clamp(10px, 2.8vw, 13px);
  font-weight: 900;
  letter-spacing: .19em;
  text-shadow: 0 2px 3px rgba(0,0,0,.75);
}

.shiritori-connection-time-theme {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .12em;
  font-size: clamp(24px, 7vw, 36px);
  font-weight: 950;
  letter-spacing: .045em;
  line-height: 1.15;
  filter: drop-shadow(0 0 5px rgba(103,236,255,.48)) drop-shadow(0 0 9px rgba(255,91,196,.4));
}

.shiritori-connection-time-theme > b {
  display: inline-block;
  color: #fff2a6;
  background: linear-gradient(90deg, #fff2a6 4%, #73efff 96%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.shiritori-connection-time-theme small {
  margin: 0;
  max-width: 100%;
  color: #fff4bd;
  font-size: .46em;
  font-weight: 900;
  letter-spacing: .02em;
  text-align: center;
  white-space: normal;
  line-height: 1.25;
  -webkit-text-fill-color: #fff4bd;
}

/* Chrome on desktop intermittently paints background-clipped Japanese glyphs
   as their transparent fallback.  Keep the mobile gradient, but use a bright
   opaque treatment on wide screens so the connection theme never turns black. */
@media (min-width: 561px) {
  .shiritori-connection-time-theme > b {
    color: #9df2ff;
    background: none;
    -webkit-text-fill-color: #9df2ff;
    text-shadow: 0 0 5px rgba(103,236,255,.62), 0 0 11px rgba(255,232,102,.46);
  }
}

@media (max-width: 560px) {
  .shiritori-connection-time-status.is-active {
    width: 80%;
    gap: 4px;
    margin-top: 24px;
    padding: 10px 12px 12px;
    border-radius: 15px;
  }

  .shiritori-connection-time-status-line {
    gap: 10px;
    padding-bottom: 6px;
  }

  .shiritori-connection-time-status-line > strong { font-size: clamp(10px, 2.9vw, 14px); }
  .shiritori-connection-time-status em { font-size: clamp(10px, 2.7vw, 13px); }
  .shiritori-connection-time-status em b { font-size: 1.42em; }
  .shiritori-connection-time-target-label { margin-top: 2px; font-size: clamp(8px, 2.25vw, 10px); }
  .shiritori-connection-time-theme { gap: .12em; font-size: clamp(22px, 6.2vw, 32px); }
}

.shiritori-connection-time-hint {
  color: #fff;
  font-size: clamp(12px, 3.2vw, 15px);
  font-weight: 850;
  letter-spacing: .035em;
  text-shadow: 0 2px 4px rgba(0,0,0,.8);
}

.shiritori-connection-time-status.is-ended {
  display: block;
  margin: 30px auto 0;
  color: #fff;
  font-size: clamp(18px, 4.8vw, 23px);
  animation: shiritori-connection-time-ended .7s ease-in-out infinite alternate;
}

@keyframes shiritori-connection-time-ended {
  from { opacity: .42; }
  to { opacity: 1; }
}

@keyframes shiritori-jackpot-glow {
  0%, 100% { box-shadow: 0 8px 0 #7a2b68, 0 0 20px rgba(255,229,72,.48), 0 18px 40px rgba(255,79,154,.3), inset 0 0 18px rgba(255,255,255,.08); }
  50% { box-shadow: 0 8px 0 #a66b08, 0 0 42px rgba(255,240,112,.95), 0 18px 58px rgba(255,79,154,.56), inset 0 0 34px rgba(255,255,255,.23); }
}

@keyframes shiritori-jackpot-shift {
  from { background-position: center, 0% 50%; }
  to { background-position: center, 100% 50%; }
}

@keyframes shiritori-jackpot-star {
  from { opacity: .62; transform: rotate(10deg) scale(.78); }
  to { opacity: 1; transform: rotate(-8deg) scale(1.28); }
}

.shiritori-now::before,
.shiritori-now::after {
  content: "✦";
  position: absolute;
  top: 18px;
  color: var(--sh-yellow);
  font-size: 26px;
  transform: rotate(15deg);
}

.shiritori-now::before { left: 24px; }
.shiritori-now::after { right: 24px; transform: rotate(-15deg); }

.shiritori-now > p {
  margin: 0 0 8px;
  color: rgba(255,255,255,.8);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em;
}

.shiritori-current-word {
  min-height: 1.3em;
  font-size: clamp(38px, 10vw, 72px);
  font-weight: 950;
  line-height: 1.15;
  overflow-wrap: anywhere;
  text-shadow: 0 5px 0 rgba(50,12,84,.4), 0 0 24px rgba(255,255,255,.22);
  animation: shiritori-word-in .34s cubic-bezier(.2,.8,.2,1) both;
}

@keyframes shiritori-word-in {
  from { opacity: .2; transform: scale(.94) rotate(-1deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes shiritori-current-word-shake {
  0%, 100% { transform: translate3d(0, 0, 0); }
  10% { transform: translate3d(-12px, 3px, 0) rotate(-.7deg); }
  22% { transform: translate3d(13px, -4px, 0) rotate(.8deg); }
  34% { transform: translate3d(-11px, -2px, 0) rotate(-.55deg); }
  47% { transform: translate3d(10px, 4px, 0) rotate(.5deg); }
  61% { transform: translate3d(-7px, 1px, 0) rotate(-.28deg); }
  76% { transform: translate3d(5px, -2px, 0) rotate(.2deg); }
  89% { transform: translate3d(-2px, 1px, 0); }
}

@keyframes shiritori-word-update-smoke {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) translate3d(0, 20px, 0) scale(.18);
  }
  22% { opacity: .8; }
  72% { opacity: .5; }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) translate3d(var(--smoke-x), var(--smoke-y), 0) scale(var(--smoke-scale));
  }
}

.shiritori-loading {
  min-height: 3.2em;
  display: grid;
  place-items: center;
  font-size: 20px;
}

.shiritori-load-error {
  min-height: 5.2em;
  display: grid;
  place-items: center;
  gap: 10px;
  padding: 8px 12px;
  font-size: 15px;
  font-weight: 750;
}

.shiritori-load-error p { margin: 0; }

.shiritori-load-error button {
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 999px;
  padding: 8px 18px;
  color: #282037;
  background: #fff;
  font: inherit;
  font-weight: 900;
  box-shadow: 0 4px 0 rgba(56,18,78,.32);
}

.shiritori-next-letter {
  display: inline-block;
  margin-top: 13px;
  padding: 7px 15px;
  border-radius: 999px;
  color: #262038;
  background: #fff;
  font-size: 16px;
  font-weight: 850;
  box-shadow: 0 4px 0 rgba(56,18,78,.32);
}

.shiritori-next-letter strong { color: #d81e71; font-size: 1.2em; }

.shiritori-live-xavi {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin: 20px 24px 0;
}

.shiritori-live-xavi-avatar {
  flex: 0 0 auto;
  width: 64px;
  margin: 0;
  text-align: center;
}

.shiritori-live-xavi-avatar img {
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  border: 3px solid rgba(255,255,255,.9);
  border-radius: 50%;
  object-fit: cover;
  background: #21162d;
  filter: drop-shadow(0 5px 8px rgba(0,0,0,.38));
}

.shiritori-live-xavi-avatar figcaption {
  margin-top: 3px;
  color: #ff4f9a;
  font-size: 10px;
  font-weight: 950;
  line-height: 1.1;
  white-space: nowrap;
}

.shiritori-live-xavi-bubble {
  position: relative;
  min-width: 0;
  padding: 10px 14px 11px;
  border: 2px solid rgba(255,216,74,.65);
  border-radius: 9px 18px 18px 18px;
  color: #292036;
  background: linear-gradient(145deg, #fffdf2, #ffeeb3);
  box-shadow: 0 5px 0 rgba(79,42,85,.32);
}

.shiritori-live-xavi-bubble::before {
  content: "";
  position: absolute;
  left: -10px;
  bottom: 10px;
  width: 16px;
  height: 16px;
  background: #fff4c8;
  clip-path: polygon(100% 0, 100% 100%, 0 70%);
}

.shiritori-live-xavi p {
  margin: 0;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.shiritori-live-xavi.is-thinking .shiritori-live-xavi-bubble {
  filter: saturate(1.15);
}

.shiritori-form { padding: 19px 18px 15px; }

.shiritori-form .shiritori-input-row input {
  transition: filter .24s ease, opacity .24s ease;
}

.shiritori-form.is-waiting .shiritori-input-row input {
  filter: brightness(.42) saturate(.42);
  opacity: .76;
}

.shiritori-form.is-waiting .shiritori-input-row button:disabled {
  opacity: 1;
  filter: none;
}

.shiritori-form > label {
  display: block;
  margin-bottom: 9px;
  color: #fff;
  font-size: 17px;
  font-weight: 850;
  text-align: center;
}

.shiritori-form > label.is-waiting {
  font-size: 13px;
  letter-spacing: .01em;
}

/* 連携タイム中は、通常の入力案内を「自由に投稿してよい」ことが伝わる
   二行のフィーバー案内に差し替える。画面幅に合わせて自動的に縮小する。 */
.shiritori-form > label.is-connection-time {
  position: relative;
  z-index: 5;
  min-height: 2.75em;
  margin-bottom: 10px;
  color: #fff2bb;
  font-size: clamp(10px, 3.55vw, 16px);
  font-weight: 950;
  line-height: 1.36;
  letter-spacing: .018em;
  text-shadow: 0 2px 4px rgba(58,18,10,.9), 0 0 11px rgba(255,205,48,.42);
}

.shiritori-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.shiritori-input-actions {
  position: relative;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.shiritori-submit-thinking {
  margin: 12px 0 0;
  color: #fff;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.35;
  letter-spacing: .035em;
  text-align: center;
  text-shadow: 0 2px 6px rgba(0, 0, 0, .82), 0 0 12px rgba(76, 223, 255, .42);
}

.shiritori-input-row input {
  width: 100%;
  min-height: 64px;
  padding: 12px 17px;
  border: 3px solid transparent;
  border-radius: 19px;
  outline: none;
  color: #241b31;
  caret-color: #d81e71;
  background:
    linear-gradient(180deg, #fff 0%, #fffdf7 46%, #f3efff 100%) padding-box,
    linear-gradient(112deg, #ffd84a 0%, #fff5b0 16%, #38e3ff 36%, #8f65ff 56%, #ff4f9a 76%, #ffd84a 100%) border-box;
  background-size: 100% 100%, 240% 100%;
  background-position: 0 0, 0 0;
  font-size: 19px;
  font-weight: 900;
  text-align: center;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.96),
    inset 0 -5px 12px rgba(116,78,174,.08),
    0 5px 0 rgba(19,26,58,.4),
    0 0 0 4px rgba(56,227,255,.15),
    0 0 20px rgba(56,227,255,.38),
    0 0 42px rgba(255,79,154,.18);
  user-select: text;
  -webkit-user-select: text;
}

.shiritori-input-row input:not(:disabled) {
  animation: shiritoriInputMajesty 3.1s ease-in-out infinite;
}

@keyframes shiritoriInputMajesty {
  0%, 100% {
    background-position: 0 0, 0% 0;
    box-shadow: inset 0 2px 0 rgba(255,255,255,.96), inset 0 -5px 12px rgba(116,78,174,.08), 0 5px 0 rgba(19,26,58,.4), 0 0 0 4px rgba(56,227,255,.13), 0 0 20px rgba(56,227,255,.34), 0 0 42px rgba(255,79,154,.16);
  }
  50% {
    background-position: 0 0, 100% 0;
    box-shadow: inset 0 2px 0 rgba(255,255,255,1), inset 0 -5px 12px rgba(255,216,74,.1), 0 5px 0 rgba(19,26,58,.4), 0 0 0 6px rgba(255,216,74,.18), 0 0 32px rgba(255,216,74,.58), 0 0 62px rgba(143,101,255,.28);
  }
}

.shiritori-input-row input::placeholder {
  color: #918d98;
  -webkit-text-fill-color: #918d98;
  opacity: 1;
}

.shiritori-input-row input:focus {
  animation-duration: 1.75s;
  box-shadow:
    inset 0 2px 0 #fff,
    inset 0 -6px 14px rgba(255,216,74,.12),
    0 5px 0 rgba(19,26,58,.4),
    0 0 0 7px rgba(255,216,74,.2),
    0 0 38px rgba(255,216,74,.72),
    0 0 72px rgba(255,79,154,.3);
}

.shiritori-input-row input:not(:placeholder-shown):not(:disabled) {
  color: #1e1529;
  letter-spacing: .025em;
  text-shadow: 0 1px 0 #fff, 0 0 12px rgba(255,216,74,.28);
}

.shiritori-input-row input:disabled {
  opacity: .72;
  color: rgba(36,27,49,.62);
  -webkit-text-fill-color: rgba(36,27,49,.62);
}

.shiritori-input-row button {
  min-width: 112px;
  padding: 0 18px;
  border: 0;
  border-radius: 17px;
  color: #22152b;
  background: linear-gradient(180deg, #fff27f, var(--sh-yellow));
  font-weight: 950;
  box-shadow: 0 6px 0 #b77d08;
  cursor: pointer;
}

.shiritori-input-row button:active:not(:disabled) { transform: translateY(3px); box-shadow: 0 3px 0 #b77d08; }
.shiritori-input-row button:disabled { opacity: .45; cursor: default; }
.shiritori-test-admin-entry { display:block; margin:10px auto 0; border:0; background:transparent; color:#83eaff; font-weight:800; text-decoration:underline; }

.shiritori-input-row .shiritori-saga-talk-guide-button {
  position: absolute;
  right: 0;
  left: auto;
  min-width: 76px;
  min-height: 38px;
  width: auto;
  padding: 0 9px;
  color: #fff4fb;
  background: linear-gradient(180deg, #ff83bd, #d83d83);
  box-shadow: 0 4px 0 #922257, 0 0 14px rgba(255,92,169,.35);
  font-size: .72em;
  letter-spacing: .01em;
}
.shiritori-input-row .shiritori-saga-talk-guide-button:active { box-shadow: 0 2px 0 #922257, 0 0 9px rgba(255,92,169,.25); }

/* Web鑑定を含む送信完了まで、二重送信を防いだまま待機の手応えを出す。 */
.shiritori-input-row button.is-sending:disabled {
  opacity: 1;
  color: #29152b;
  background: linear-gradient(112deg, #fff49a 0%, #ffd84a 28%, #fff9c8 49%, #ffcf42 72%, #fff49a 100%);
  background-size: 230% 100%;
  animation: shiritoriSubmitPulse 1.05s ease-in-out infinite;
}

@keyframes shiritoriSubmitPulse {
  0%, 100% {
    transform: scale(1);
    background-position: 0% 50%;
    box-shadow: 0 6px 0 #b77d08, 0 0 8px rgba(255,216,74,.42), 0 0 20px rgba(255,79,154,.16);
  }
  50% {
    transform: scale(1.055);
    background-position: 100% 50%;
    box-shadow: 0 6px 0 #b77d08, 0 0 18px rgba(255,246,139,.96), 0 0 40px rgba(255,79,154,.58), 0 0 62px rgba(56,227,255,.28);
  }
}

.shiritori-message {
  min-height: 1.6em;
  margin: 12px 2px 0;
  color: var(--sh-yellow);
  font-weight: 800;
}

.shiritori-message.is-visible::before { content: "● "; color: var(--sh-mint); }

.shiritori-history-section {
  position: relative;
  margin: 0;
  padding: 0 7px;
}

.shiritori-history-title {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  padding: 0 5px 10px;
}

.shiritori-history-title h2 { margin: 0; font-size: 21px; }

.shiritori-history {
  height: min(88svh, 920px);
  min-height: 560px;
  box-sizing: border-box;
  padding-top: 14px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: var(--sh-pink) transparent;
}

.shiritori-history-more-cue {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 9px;
  width: 30px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: rgba(20,20,28,.9);
  background: rgba(255,255,255,.7);
  font-family: sans-serif;
  font-size: 15px;
  filter: drop-shadow(0 3px 5px rgba(0,0,0,.42));
  border: 0;
  padding: 0;
  pointer-events: none;
  transform: translateX(-50%);
  animation: shiritori-more-cue 1.2s ease-in-out infinite;
}

.shiritori-history-more-cue.is-up {
  top: 43px;
  bottom: auto;
  pointer-events: auto;
  cursor: pointer;
  touch-action: manipulation;
  animation-name: shiritori-more-cue-up;
}

.shiritori-history-more-cue.is-up:active {
  color: #090911;
  background: rgba(255,255,255,.92);
}

@keyframes shiritori-more-cue {
  0%, 100% { transform: translate(-50%, -2px); }
  50% { transform: translate(-50%, 4px); }
}

@keyframes shiritori-more-cue-up {
  0%, 100% { transform: translate(-50%, 2px); }
  50% { transform: translate(-50%, -4px); }
}

.shiritori-entry {
  content-visibility: auto;
  contain-intrinsic-size: auto 520px;
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-height: 68px;
  margin: 0 0 6px;
  padding: 9px 10px;
  border: 1px solid rgba(226,231,246,.24);
  border-radius: 17px;
  background: linear-gradient(100deg, rgba(242,245,255,.105), rgba(228,232,247,.05));
}

.shiritori-entry.is-reaction-focus {
  animation: shiritori-reaction-focus 3.4s ease both;
}

.shiritori-entry.is-connection,
.shiritori-entry.is-connection.is-mine {
  /* The connection medal intentionally crosses the top border. Disable the
     paint containment implied by content-visibility so it cannot be clipped. */
  content-visibility: visible;
  border: 2px solid rgba(255,215,63,.98);
  background:
    linear-gradient(100deg, rgba(255,213,58,.12), rgba(255,255,255,.055) 42%, rgba(255,187,45,.09)),
    linear-gradient(100deg, rgba(242,245,255,.105), rgba(228,232,247,.05));
  box-shadow:
    0 0 0 1px rgba(255,246,175,.22),
    0 0 14px rgba(255,198,47,.32),
    inset 0 0 18px rgba(255,210,62,.08);
  animation: shiritori-connection-card-glow 2.8s ease-in-out infinite;
}

/* Keep the medal clear of the word: it sits on the card edge, while the
   heading starts below it. The lettering is intentionally larger than its
   compact plate so it feels stamped on rather than trapped in a pill. */
.shiritori-entry.is-connection > .shiritori-entry-heading {
  margin-top: 3px;
}

.shiritori-entry.is-connection-time-start > .shiritori-entry-heading,
.shiritori-entry.is-connection-time-start.is-memorial > .shiritori-entry-heading {
  /* The start plate is centered above the word, so give it its own row. */
  margin-top: 35px;
}

.shiritori-entry.is-memorial > .shiritori-entry-heading {
  margin-top: 26px;
}

.shiritori-memorial-badge {
  position: absolute;
  z-index: 6;
  top: 5px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  height: 26px;
  padding: 0 13px;
  border: 1.5px solid #fff3a7;
  border-radius: 999px;
  color: #fffceb;
  background: linear-gradient(105deg, #8e4e12, #efb927 33%, #a96a16 53%, #ffe66c 72%, #84410e);
  box-shadow: 0 0 0 2px rgba(255,211,54,.18), 0 3px 12px rgba(255,199,42,.5), inset 0 1px 0 rgba(255,255,255,.68);
  font-family: var(--font-nitalago), sans-serif;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .03em;
  text-shadow: 0 1px 2px rgba(64,31,0,.8), 0 0 5px rgba(255,245,169,.72);
  white-space: nowrap;
  pointer-events: none;
  animation: shiritori-memorial-badge-glory 2.6s ease-in-out infinite;
}

.shiritori-memorial-badge b {
  margin-right: .18em;
  color: #fff;
  font-size: 1.24em;
}

@keyframes shiritori-memorial-badge-glory {
  0%, 100% { filter: brightness(1); box-shadow: 0 0 0 2px rgba(255,211,54,.18), 0 3px 12px rgba(255,199,42,.5), inset 0 1px 0 rgba(255,255,255,.68); }
  50% { filter: brightness(1.22); box-shadow: 0 0 0 2px rgba(255,244,169,.32), 0 3px 20px rgba(255,215,68,.78), inset 0 1px 0 rgba(255,255,255,.82); }
}

.shiritori-connection-badge {
  position: absolute;
  z-index: 5;
  top: -6px;
  left: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 55px;
  height: 17px;
  padding: 0 4px;
  overflow: visible;
  isolation: isolate;
  border: 1px solid rgba(255,249,202,.98);
  border-radius: 999px;
  color: #24162d;
  background:
    linear-gradient(112deg, rgba(255,255,255,.75) 0 9%, transparent 10% 64%, rgba(255,255,255,.36) 65% 72%, transparent 73%),
    linear-gradient(105deg, #ffe766 0%, #ffb947 38%, #ff68b8 68%, #72eaff 100%);
  box-shadow:
    0 0 0 2px rgba(255,75,170,.2),
    0 3px 11px rgba(255,203,66,.55),
    inset 0 1px 0 rgba(255,255,255,.7);
  visibility: hidden;
  font-family: "kokuryu", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  -webkit-text-stroke: .65px rgba(255,255,255,.98);
  paint-order: stroke fill;
  text-shadow: 0 1px 0 rgba(255,255,255,.38), 0 2px 5px rgba(56,24,50,.24);
  white-space: nowrap;
  pointer-events: none;
  transform: rotate(-7deg);
  animation: shiritori-connection-sparkle 2.4s ease-in-out infinite;
}

.shiritori-connection-badge::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -3px;
  top: 50%;
  width: 5px;
  height: 5px;
  border: 1px solid rgba(255,249,202,.95);
  border-radius: 50%;
  background: #ffcf49;
  box-shadow: 0 0 7px rgba(255,220,91,.9);
  transform: translateY(-50%);
}

.shiritori-kokuryu-ready .shiritori-connection-badge { visibility: visible; }

.shiritori-special-connection-badge {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  justify-self: center;
  display: grid;
  gap: 1px;
  min-width: 116px;
  max-width: calc(100% - 8px);
  padding: 4px 10px 5px;
  margin: -2px auto 5px;
  overflow: hidden;
  border: 1px solid rgba(179,255,255,.95);
  border-radius: 5px 13px 5px 13px;
  color: #fff;
  background: linear-gradient(112deg, #151445 0%, #4730a2 42%, #007f9d 100%);
  box-shadow: 0 0 0 2px rgba(82,225,255,.22), 0 3px 14px rgba(95,56,255,.62), inset 0 1px 0 rgba(255,255,255,.5);
  font-family: "kokuryu", sans-serif;
  line-height: 1;
  letter-spacing: -.035em;
  transform: rotate(-1deg);
  pointer-events: none;
  animation: shiritori-special-connection-badge-glory 2.1s ease-in-out infinite;
}

.shiritori-special-connection-badge small { color: #91ffff; font-family: sans-serif; font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.shiritori-special-connection-badge b { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; -webkit-text-stroke: .45px rgba(20,13,72,.8); paint-order: stroke fill; }
@keyframes shiritori-special-connection-badge-glory {
  0%,100% { filter: brightness(1); box-shadow: 0 0 0 2px rgba(82,225,255,.22), 0 3px 14px rgba(95,56,255,.62), inset 0 1px 0 rgba(255,255,255,.5); }
  50% { filter: brightness(1.24) saturate(1.3); box-shadow: 0 0 0 2px rgba(147,255,255,.48), 0 3px 22px rgba(93,69,255,.94), inset 0 1px 0 rgba(255,255,255,.72); }
}

.shiritori-beta-closed {
  display: grid;
  min-height: 100dvh;
  place-items: center;
  padding: 24px;
  color: #fff;
  background: radial-gradient(circle at 50% 0%, #34305d, #0e1025 58%, #070817);
}
.shiritori-beta-closed section { width: min(100%, 440px); padding: 30px 24px; border: 1px solid rgba(126,228,255,.65); border-radius: 22px; text-align: center; background: linear-gradient(135deg, rgba(42,94,142,.66), rgba(37,28,71,.9)); box-shadow: 0 0 28px rgba(76,213,255,.2); }
.shiritori-beta-closed h1 { margin: 0; font-size: clamp(22px, 7vw, 31px); }
.shiritori-beta-closed p { margin: 18px 0 23px; color: rgba(255,255,255,.86); font-weight: 700; line-height: 1.7; }
.shiritori-beta-closed a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border: 1px solid #fff1a6; border-radius: 999px; color: #251c36; font-weight: 900; text-decoration: none; background: linear-gradient(135deg, #fff3a1, #72eaff); box-shadow: 0 4px 13px rgba(0,0,0,.28); }

.shiritori-special-connection-stage {
  position: fixed;
  z-index: 80;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  pointer-events: none;
  animation: shiritori-special-connection-stage 2.6s ease-out both;
}
.shiritori-special-connection-stage::before {
  content: "";
  position: absolute;
  width: min(84vw, 620px);
  height: min(84vw, 620px);
  border-radius: 50%;
  background: conic-gradient(from 0deg, transparent, rgba(34,242,255,.72), transparent, rgba(157,67,255,.82), transparent);
  filter: blur(2px);
  animation: shiritori-special-connection-spin 1.1s linear infinite;
}
.shiritori-special-connection-stage > i { position: absolute; width: 4px; height: 110vmax; background: linear-gradient(transparent, rgba(103,246,255,.94), transparent); transform: rotate(var(--angle)); }
.shiritori-special-connection-stage > i:nth-of-type(1) { --angle: 26deg; }
.shiritori-special-connection-stage > i:nth-of-type(2) { --angle: 86deg; }
.shiritori-special-connection-stage > i:nth-of-type(3) { --angle: 146deg; }
.shiritori-special-connection-stage > div { position: relative; display: grid; justify-items: center; gap: 7px; max-width: min(90vw, 690px); padding: 24px 30px 22px; border: 2px solid #bcffff; border-radius: 12px 28px 12px 28px; color: #fff; background: linear-gradient(125deg, rgba(14,14,63,.96), rgba(58,28,142,.94) 52%, rgba(0,112,143,.94)); box-shadow: 0 0 0 5px rgba(82,237,255,.22), 0 0 40px rgba(91,49,255,.92), inset 0 1px 0 rgba(255,255,255,.74); transform: skewX(-7deg); }
.shiritori-special-connection-stage small { color: #9cffff; font-weight: 900; letter-spacing: .25em; }
.shiritori-special-connection-stage strong { font-family: "kokuryu", sans-serif; font-size: clamp(34px, 9vw, 76px); line-height: 1; letter-spacing: -.06em; text-align: center; -webkit-text-stroke: 1px #21105c; paint-order: stroke fill; text-shadow: 0 0 13px #83faff, 3px 4px 0 #26076d; }
.shiritori-special-connection-stage b { color: #fff29a; font-size: 13px; letter-spacing: .36em; }
@keyframes shiritori-special-connection-spin { to { transform: rotate(360deg); } }
@keyframes shiritori-special-connection-stage { 0% { opacity: 0; transform: scale(.72); } 12%,76% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.16); } }

.shiritori-connection-badge > span {
  position: relative;
  z-index: 1;
  display: block;
  flex: 0 0 auto;
  line-height: 1;
}

.shiritori-connection-badge-number { margin-right: -.20em; font-size: 1.42em; }
/* 二桁以上は数字間だけを詰める。バッジ本体も数字1字ぶんだけ広げ、
   数字列と「連」の境界には独立した余白を残す。 */
.shiritori-connection-badge.is-multi-digit { width: 66px; }
.shiritori-connection-badge-number.is-multi-digit { display: inline-flex; margin-right: -.34em; }
.shiritori-connection-badge-number.is-multi-digit .shiritori-connection-badge-digit + .shiritori-connection-badge-digit { margin-left: -.56em; }
.shiritori-connection-badge-ren { margin-right: -.22em; }
.shiritori-connection-badge-kei { margin-right: -.30em; }

.shiritori-connection-start-badge {
  position: absolute;
  z-index: 6;
  top: 4px;
  left: 50%;
  min-width: 120px;
  height: 30px;
  padding: 2px 18px 0;
  border: 2px solid rgba(255,245,153,.98);
  border-radius: 5px 13px 5px 13px;
  color: #24142d;
  background:
    linear-gradient(112deg, rgba(255,255,255,.92) 0 9%, transparent 10% 63%, rgba(255,255,255,.46) 64% 72%, transparent 73%),
    linear-gradient(105deg, #ffe75c 0%, #ffbe3f 34%, #ff62b4 68%, #67ddff 100%);
  box-shadow: 0 0 0 2px rgba(255,76,168,.22), 0 4px 17px rgba(255,204,58,.72), 0 0 25px rgba(255,84,176,.34), inset 0 1px 0 rgba(255,255,255,.82);
  visibility: hidden;
  font-family: "kokuryu", sans-serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.08em;
  text-align: center;
  -webkit-text-stroke: .8px rgba(255,255,255,.98);
  paint-order: stroke fill;
  text-shadow: 0 1px 0 rgba(255,255,255,.42), 0 2px 5px rgba(48,21,54,.28);
  white-space: nowrap;
  pointer-events: none;
  transform: translateX(-50%) skewX(-11deg);
  animation: shiritori-connection-start-badge-glory 2.2s ease-in-out infinite;
}

.shiritori-kokuryu-ready .shiritori-connection-start-badge { visibility: visible; }

.shiritori-entry.is-connection.is-mine .shiritori-entry-heading .shiritori-you {
  transform: translateY(15px);
}

@keyframes shiritori-connection-start-badge-glory {
  0%, 100% { filter: brightness(1) saturate(1); }
  50% { filter: brightness(1.22) saturate(1.15); }
}

@keyframes shiritori-connection-card-glow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255,246,175,.2), 0 0 12px rgba(255,198,47,.25), inset 0 0 16px rgba(255,210,62,.06); }
  50% { box-shadow: 0 0 0 1px rgba(255,246,175,.42), 0 0 22px rgba(255,198,47,.48), inset 0 0 24px rgba(255,210,62,.13); }
}

@keyframes shiritori-connection-sparkle {
  0%, 100% { filter: brightness(1) saturate(1); transform: rotate(-7deg) translateY(0); }
  50% { filter: brightness(1.24) saturate(1.15); transform: rotate(-7deg) translateY(-2px); }
}

.shiritori-chain-link.is-connection {
  height: 48px;
  margin-block: -1px 5px;
}

.shiritori-chain-link.is-connection svg {
  width: 44px;
  height: 48px;
  overflow: visible;
  filter: drop-shadow(0 0 5px rgba(255,210,54,.8));
}

.shiritori-chain-link.is-connection path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.shiritori-connection-electric-base {
  stroke: rgba(255,199,43,.62);
  stroke-width: 9;
}

.shiritori-connection-electric-pulse {
  stroke: #fff8bd;
  stroke-width: 3.5;
  stroke-dasharray: 7 11;
  animation: shiritori-connection-electric-flow .72s linear infinite;
}

@keyframes shiritori-connection-electric-flow {
  to { stroke-dashoffset: -36; }
}

@keyframes shiritori-reaction-focus {
  0%, 100% {
    border-color: rgba(226,231,246,.24);
    box-shadow: none;
  }
  16%, 52% {
    border-color: rgba(255,220,78,.94);
    box-shadow: 0 0 0 3px rgba(255,83,165,.28), 0 0 28px rgba(255,218,71,.38);
  }
  34%, 70% {
    border-color: rgba(255,109,182,.94);
    box-shadow: 0 0 0 2px rgba(255,222,83,.3), 0 0 20px rgba(255,84,169,.34);
  }
}

.shiritori-entry-heading {
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding-bottom: 9px;
  margin-bottom: 1px;
}

.shiritori-entry-heading::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(213,218,232,.46) 18%, rgba(238,241,249,.58) 50%, rgba(213,218,232,.46) 82%, transparent);
  box-shadow: 0 0 5px rgba(220,225,238,.12);
}

.shiritori-entry.is-mine .shiritori-entry-heading::after {
  background: linear-gradient(90deg, transparent, rgba(255,216,74,.72) 18%, rgba(56,227,255,.7) 50%, rgba(255,216,74,.72) 82%, transparent);
  box-shadow: 0 0 7px rgba(56,227,255,.2);
}

.shiritori-entry.is-rolled-back .shiritori-entry-heading {
  margin-bottom: 0;
  padding-bottom: 0;
}

.shiritori-entry.is-rolled-back .shiritori-entry-heading::after { display: none; }

.shiritori-entry-heading strong {
  grid-column: 1 / -1;
  grid-row: 1;
  min-width: 0;
  text-align: center;
  overflow-wrap: anywhere;
  color: var(--sh-yellow);
  font-size: 22px;
  line-height: 1.25;
}

.shiritori-entry-heading .shiritori-you {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
}

.shiritori-entry-heading .shiritori-like {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
}

.shiritori-entry.is-mine .shiritori-entry-heading strong {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
}

.shiritori-entry-footer {
  grid-column: 1 / -1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
}

.shiritori-entry-footer time {
  flex: 0 0 auto;
  padding: 0 1px 2px 0;
  color: rgba(255,255,255,.38);
  font-size: 11px;
  line-height: 1;
}

.shiritori-entry-footer-meta {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
  margin-left: auto;
}

.shiritori-entry.is-mine {
  border-color: rgba(56,227,255,.5);
  background: linear-gradient(100deg, rgba(56,227,255,.17), rgba(147,60,219,.12));
}

.shiritori-entry.is-rolled-back {
  width: 76%;
  min-height: 50px;
  margin-right: auto;
  margin-left: auto;
  padding: 7px 8px;
  border-color: rgba(185,185,194,.2);
  border-radius: 13px;
  color: rgba(235,235,240,.48);
  background: linear-gradient(100deg, rgba(141,141,151,.15), rgba(76,76,84,.1));
  filter: saturate(.15);
}

.shiritori-rollback-note {
  grid-column: 1 / -1;
  margin: -1px 0 1px;
  padding: 5px 7px;
  border: 1px solid rgba(203,203,211,.24);
  border-radius: 10px;
  color: rgba(245,245,248,.72);
  background: rgba(150,150,160,.1);
  font-size: 8px;
  font-weight: 750;
  line-height: 1.45;
  text-align: center;
}

.shiritori-rollback-feedback-trigger {
  display: inline-grid;
  place-items: center;
  width: 31px;
  min-width: 31px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(255, 216, 74, .3);
  border-radius: 9px;
  color: #fff;
  background: rgba(255, 216, 74, .08);
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  filter: none;
}

.shiritori-rollback-feedback-trigger:active { transform: scale(.94); }

.shiritori-rollback-feedback-backdrop {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(4, 5, 17, .72);
  backdrop-filter: blur(7px);
}

.shiritori-rollback-feedback-dialog {
  width: min(410px, 100%);
  padding: 22px;
  border: 2px solid rgba(255, 216, 74, .68);
  border-radius: 24px;
  color: #fff;
  text-align: center;
  background: linear-gradient(145deg, #30203d, #14162c 64%, #102638);
  box-shadow: 0 24px 70px rgba(0,0,0,.58), inset 0 1px rgba(255,255,255,.12);
  animation: shiritori-report-pop 240ms cubic-bezier(.2,.9,.3,1.1) both;
}

.shiritori-rollback-feedback-dialog form { position: relative; }
.shiritori-rollback-feedback-icon { display: block; margin-bottom: 7px; font-size: 34px; }
.shiritori-rollback-feedback-dialog h2 { margin: 0 0 10px; font-size: 20px; line-height: 1.45; }
.shiritori-rollback-feedback-title-primary {
  display: block;
  white-space: nowrap;
  font-size: clamp(13px, 4.5vw, 20px);
  letter-spacing: -.025em;
}
.shiritori-rollback-feedback-dialog form > strong { display: block; margin-bottom: 14px; overflow-wrap: anywhere; color: var(--sh-yellow); font-size: 20px; }
.shiritori-rollback-feedback-dialog textarea {
  display: block;
  width: 100%;
  min-height: 112px;
  resize: vertical;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 13px;
  outline: none;
  color: #fff;
  background: rgba(5,8,25,.72);
  font: inherit;
  font-size: 15px;
  line-height: 1.55;
}
.shiritori-rollback-feedback-dialog textarea:focus { border-color: var(--sh-yellow); box-shadow: 0 0 0 3px rgba(255,216,74,.12); }
.shiritori-rollback-feedback-dialog form > small { display: block; margin: 5px 2px 0; color: rgba(255,255,255,.5); text-align: right; font-size: 10px; }
.shiritori-rollback-feedback-dialog form > p { margin: 8px 0 0; color: #ff96b1; font-size: 12px; }
.shiritori-rollback-feedback-dialog form > div,
.shiritori-rollback-feedback-sent > button { margin-top: 15px; }
.shiritori-rollback-feedback-dialog form > div { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.shiritori-rollback-feedback-dialog button {
  min-height: 45px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 13px;
  color: #fff;
  background: rgba(255,255,255,.08);
  font-weight: 900;
  cursor: pointer;
}
.shiritori-rollback-feedback-dialog button.is-send { border-color: rgba(255,216,74,.7); color: #171226; background: linear-gradient(#ffe66d, #f7c92e); }
.shiritori-rollback-feedback-dialog button:disabled { opacity: .45; cursor: default; }
.shiritori-rollback-feedback-dialog .shiritori-rollback-feedback-close {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 34px;
  min-height: 34px;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
}
.shiritori-rollback-feedback-sent > span { font-size: 38px; }
.shiritori-rollback-feedback-sent h2 { margin-top: 8px; }
.shiritori-rollback-feedback-sent p { color: rgba(255,255,255,.72); font-size: 13px; }
.shiritori-rollback-feedback-sent > button { min-width: 150px; }

.shiritori-admin-message {
  margin: 7px 0 2px;
  padding: 7px 9px;
  border: 1px solid rgba(112,242,180,.42);
  border-radius: 10px;
  color: rgba(247,255,251,.92);
  background: linear-gradient(100deg, rgba(40,139,107,.2), rgba(56,227,255,.09));
  font-size: 10px;
  font-weight: 750;
  line-height: 1.45;
}
.shiritori-admin-message b { display: inline; margin-right: 7px; color: var(--sh-mint); font-size: 9px; letter-spacing: .05em; }
.shiritori-admin-message-body { white-space: pre-wrap; }

.shiritori-admin-announcement-card {
  position: relative;
  margin: 13px 4px 15px;
  padding: 15px 16px 12px;
  overflow: hidden;
  border: 1px solid rgba(86,224,255,.55);
  border-radius: 14px;
  color: rgba(247,253,255,.95);
  background:
    linear-gradient(120deg, rgba(20,92,143,.72), rgba(39,42,83,.9) 58%, rgba(116,42,112,.58)),
    #11162b;
  box-shadow: 0 10px 25px rgba(0,12,43,.34), inset 0 0 20px rgba(75,220,255,.08);
}
.shiritori-admin-announcement-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 18%, rgba(255,255,255,.08) 48%, transparent 72%);
}
.shiritori-admin-announcement-card header { position: relative; z-index: 1; display: flex; align-items: center; gap: 9px; }
.shiritori-admin-announcement-card header > span { font-size: 22px; filter: drop-shadow(0 0 7px rgba(85,231,255,.65)); }
.shiritori-admin-announcement-card header div { display: grid; gap: 1px; }
.shiritori-admin-announcement-card header b { color: #fff; font-size: 13px; letter-spacing: .04em; }
.shiritori-admin-announcement-card p { position: relative; z-index: 1; margin: 11px 0 8px; white-space: pre-wrap; font-size: 12px; font-weight: 750; line-height: 1.7; }
.shiritori-admin-announcement-card time { position: relative; z-index: 1; display: block; color: rgba(255,255,255,.45); font-size: 8px; text-align: right; }
.shiritori-admin-announcement-card.is-target { animation: shiritori-admin-announcement-target 3.6s ease-out both; }
@keyframes shiritori-admin-announcement-target {
  0%, 100% { box-shadow: 0 0 0 1px rgba(92,225,255,.3), 0 8px 26px rgba(0,0,0,.24); }
  18%, 56% { box-shadow: 0 0 0 3px rgba(120,247,255,.86), 0 0 34px rgba(58,194,255,.68), 0 8px 26px rgba(0,0,0,.24); }
  36%, 72% { box-shadow: 0 0 0 3px rgba(255,218,95,.88), 0 0 32px rgba(255,179,45,.55), 0 8px 26px rgba(0,0,0,.24); }
}

.shiritori-rollback-note b { color: #e2e2e7; }
.shiritori-entry.is-rolled-back .shiritori-you { opacity: .45; }
.shiritori-entry.is-rolled-back .shiritori-entry-heading strong { color: rgba(168,168,178,.22); font-size: 15px; }
.shiritori-entry.is-rolled-back .shiritori-entry-index,
.shiritori-entry.is-rolled-back .shiritori-entry-word { display: none; }

.shiritori-entry-index {
  flex: 0 0 auto;
  color: rgba(255,255,255,.35);
  font-family: var(--font-bebas);
  font-size: 16px;
  line-height: 1;
  text-align: center;
}

/* #400、#500…は積み重ねてきた節目として、番号だけを金色に灯す。 */
.shiritori-entry-index.is-century {
  color: #ffe878;
  font-weight: 900;
  text-shadow:
    0 1px 0 rgba(111,61,0,.95),
    0 0 5px rgba(255,220,82,.92),
    0 0 13px rgba(255,181,30,.68);
  animation: shiritori-century-index-glow 2.5s ease-in-out infinite;
}

@keyframes shiritori-century-index-glow {
  0%, 100% { filter: brightness(1); text-shadow: 0 1px 0 rgba(111,61,0,.95), 0 0 5px rgba(255,220,82,.92), 0 0 13px rgba(255,181,30,.68); }
  50% { filter: brightness(1.22); text-shadow: 0 1px 0 rgba(111,61,0,.95), 0 0 8px rgba(255,235,139,1), 0 0 19px rgba(255,182,35,.9); }
}

.shiritori-entry-word {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
}
.shiritori-entry-word:empty { display: none; }
.shiritori-entry.is-mine .shiritori-entry-word { grid-column: 1 / -1; }

.shiritori-entry-main-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 9px;
  width: 100%;
}

.shiritori-entry-main-row .shiritori-xavi-comment {
  min-width: 0;
  margin-top: 0;
}

.shiritori-entry-main-row .shiritori-xavi-comment p {
  flex: 1 1 auto;
  min-width: 0;
}

.shiritori-entry-main-row .shiritori-entry-actions {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
}

.shiritori-admin-message,
.shiritori-community-comments,
.shiritori-community-comment {
  width: 100%;
}

.shiritori-chain-link {
  display: flex;
  height: 25px;
  margin: -1px 0 8px;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  color: rgba(255,255,255,.22);
  pointer-events: none;
}

.shiritori-chain-link i {
  display: block;
  height: 7px;
  font-family: Arial, sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 900;
  line-height: .55;
  opacity: .18;
  animation: shiritori-chain-rise 1.9s ease-in-out infinite;
}

.shiritori-chain-link i:nth-child(1) { animation-delay: .36s; }
.shiritori-chain-link i:nth-child(2) { animation-delay: .18s; }
.shiritori-chain-link i:nth-child(3) { animation-delay: 0s; }

.shiritori-chain-link.is-connection-time { color: #ffd84a; }

.shiritori-chain-link.is-connection-time i {
  opacity: .72;
  color: #ffd84a;
  text-shadow: 0 0 6px rgba(255,216,74,.75), 0 0 13px rgba(222,150,25,.5);
  animation-name: shiritori-chain-rise-gold;
}

@keyframes shiritori-chain-rise-gold {
  0%, 18%, 72%, 100% { opacity: .4; color: #c99228; text-shadow: 0 0 4px rgba(255,197,54,.34); transform: translateY(2px); }
  36%, 52% { opacity: 1; color: #fff1a1; text-shadow: 0 0 6px #ffd84a, 0 0 13px rgba(236,163,30,.72); transform: translateY(0); }
}

@keyframes shiritori-chain-rise {
  0%, 18%, 72%, 100% { opacity: .16; color: rgba(255,255,255,.28); text-shadow: none; transform: translateY(2px); }
  36%, 52% { opacity: 1; color: #fff; text-shadow: 0 0 5px #fff, 0 0 12px rgba(56,227,255,.9); transform: translateY(0); }
}

.shiritori-xavi-comment {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  margin-top: 6px;
}

.shiritori-community-comments {
  display: grid;
  gap: 5px;
  margin-top: 7px;
}

.shiritori-community-comment {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 7px;
  padding: 6px 8px;
  border: 1px solid rgba(167,179,216,.24);
  border-radius: 9px;
  color: rgba(239,241,255,.82);
  background: rgba(107,118,157,.12);
  font-size: 10px;
  line-height: 1.45;
}

.shiritori-community-comment.is-author {
  border-color: rgba(255,216,74,.5);
  color: #fff6ce;
  background: linear-gradient(100deg, rgba(255,216,74,.18), rgba(255,79,159,.11));
}
.shiritori-community-comment.is-hidden { opacity: .58; filter: saturate(.35); }

.shiritori-community-comment p { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.shiritori-community-comment p b { margin-right: 6px; color: #a8bdff; font-size: 9px; }
.shiritori-community-comment p small { display: block; margin-top: 2px; color: #ffabb7; font-size: 8px; font-weight: 850; }
.shiritori-community-comment.is-author p b { color: var(--sh-yellow); }
.shiritori-community-comment > div { display: flex; flex: 0 0 auto; gap: 4px; }
.shiritori-community-comment button,
.shiritori-comment-editor button {
  min-height: 25px;
  padding: 3px 7px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 7px;
  color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.07);
  font: inherit;
  font-weight: 800;
}

.shiritori-comment-editor {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 6px;
  margin-top: 7px;
}

.shiritori-comment-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  margin-top: 7px;
  padding: 0 10px;
  border: 1px solid rgba(177,190,230,.36);
  border-radius: 10px;
  color: rgba(239,243,255,.78);
  background: rgba(117,132,179,.12);
  cursor: pointer;
}

.shiritori-comment-toggle > b {
  font-size: 10px;
  letter-spacing: .03em;
}

.shiritori-comment-toggle span {
  position: relative;
  display: block;
  width: 18px;
  height: 13px;
  border: 2px solid currentColor;
  border-radius: 5px;
}

.shiritori-comment-toggle span::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: -5px;
  width: 6px;
  height: 6px;
  border-bottom: 2px solid currentColor;
  border-left: 2px solid currentColor;
  background: #15182e;
  transform: skewY(-32deg);
}

.shiritori-comment-toggle:hover,
.shiritori-comment-toggle:focus-visible {
  border-color: var(--sh-cyan);
  color: #fff;
  box-shadow: 0 0 10px rgba(56,227,255,.24);
}

.shiritori-comment-editor textarea {
  width: 100%;
  min-height: 34px;
  padding: 7px 9px;
  resize: vertical;
  border: 1px solid rgba(154,172,226,.45);
  border-radius: 9px;
  outline: none;
  color: #f8f9ff;
  background: rgba(7,10,31,.62);
  font: inherit;
  font-size: 16px;
  line-height: 1.45;
}

.shiritori-shell .feedback-optional-fields input { font-size: 16px; }

.shiritori-comment-editor.is-author textarea { border-color: rgba(255,216,74,.6); }
.shiritori-comment-editor textarea:focus { border-color: var(--sh-mint); box-shadow: 0 0 0 2px rgba(87,242,194,.12); }
.shiritori-comment-editor > div { display: flex; gap: 4px; }
.shiritori-comment-editor button.is-submit { border-color: rgba(87,242,194,.5); color: #132a25; background: var(--sh-mint); }
.shiritori-comment-editor button:disabled { opacity: .42; }

.shiritori-xavi-comment img {
  flex: 0 0 auto;
  width: 31px;
  height: 31px;
  border: 2px solid rgba(255,255,255,.72);
  border-radius: 50%;
  object-fit: cover;
  filter: drop-shadow(0 3px 5px rgba(0,0,0,.35));
}

.shiritori-xavi-comment p {
  position: relative;
  max-width: 100%;
  margin: 0;
  padding: 6px 8px;
  border: 1px solid rgba(255,216,74,.42);
  border-radius: 7px 14px 14px 14px;
  color: #292036;
  background: linear-gradient(145deg, #fffdf2, #ffeeb3);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.38;
  box-shadow: 0 3px 0 rgba(79,42,85,.3);
}

.shiritori-xavi-comment p::before {
  content: "";
  position: absolute;
  left: -7px;
  bottom: 9px;
  width: 12px;
  height: 12px;
  background: #fff4c8;
  clip-path: polygon(100% 0, 100% 100%, 0 70%);
}

.shiritori-xavi-comment b {
  display: block;
  margin-bottom: 1px;
  color: #d81e71;
  font-size: 9px;
  letter-spacing: .08em;
}

.shiritori-you {
  padding: 5px 8px;
  border-radius: 999px;
  color: #092331;
  background: var(--sh-cyan);
  font-size: 11px;
  font-weight: 900;
}

.shiritori-entry-actions {
  display: grid;
  grid-column: auto;
  grid-row: auto;
  gap: 5px;
  width: max-content;
  align-self: start;
  justify-self: end;
  justify-items: stretch;
}

.shiritori-like {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 55px;
  min-height: 42px;
  padding: 5px 9px;
  border: 1px solid rgba(255,79,154,.38);
  border-radius: 14px;
  color: rgba(255,255,255,.62);
  background: rgba(255,79,154,.07);
  font-weight: 850;
  cursor: pointer;
}

.shiritori-like span { color: rgba(255,255,255,.32); font-size: 22px; line-height: 1; }
.shiritori-like.is-liked { color: #fff; background: rgba(255,79,154,.2); border-color: var(--sh-pink); }
.shiritori-like.is-liked span { color: var(--sh-pink); filter: drop-shadow(0 0 7px rgba(255,79,154,.7)); }
.shiritori-like:disabled { cursor: default; }
.shiritori-like.is-busy {
  position: relative;
  overflow: visible;
  border-color: #ff80b7;
  animation: shiritori-like-bloom-button 1.08s ease-in-out infinite;
}
.shiritori-like.is-busy span {
  position: relative;
  z-index: 2;
  transform-origin: 50% 62%;
  animation: shiritori-heart-bloom-effort 1.08s cubic-bezier(.34,.08,.22,1) infinite;
}
.shiritori-like.is-busy::before,
.shiritori-like.is-busy::after {
  content: "";
  position: absolute;
  pointer-events: none;
  left: 17px;
  top: 50%;
  z-index: 1;
}
.shiritori-like.is-busy::before {
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,79,154,.54) 0 20%, rgba(255,79,154,.16) 46%, transparent 70%);
  transform: translate(-50%, -50%) scale(.35);
  animation: shiritori-heart-bloom-aura 1.08s ease-out infinite;
}
.shiritori-like.is-busy::after {
  width: 5px;
  height: 7px;
  border-radius: 70% 30% 70% 30%;
  background: #ff88bd;
  box-shadow:
    0 -13px 0 -1px #ffd75c,
    11px -7px 0 -1px #ff72ad,
    13px 4px 0 -1px #ffd75c,
    5px 12px 0 -1px #ff72ad,
    -7px 11px 0 -1px #ffd75c,
    -13px 2px 0 -1px #ff72ad,
    -10px -9px 0 -1px #ffd75c;
  transform: translate(-50%, -50%) scale(.12) rotate(-18deg);
  opacity: 0;
  animation: shiritori-heart-petals-open 1.08s cubic-bezier(.2,.7,.25,1) infinite;
}
@keyframes shiritori-like-bloom-button {
  0%, 100% { background: rgba(255,79,154,.09); box-shadow: 0 0 0 rgba(255,79,154,0); }
  54% { background: rgba(255,79,154,.22); box-shadow: 0 0 15px rgba(255,79,154,.42); }
}
@keyframes shiritori-heart-bloom-effort {
  0%, 100% { transform: scale(.84) rotate(-3deg); color: #ff4f9a; filter: drop-shadow(0 0 2px rgba(255,79,154,.35)); }
  18% { transform: scale(.94) rotate(2deg); }
  31% { transform: scale(.87) rotate(-2deg); }
  48% { transform: scale(1.22) rotate(1deg); color: #ff6cab; filter: drop-shadow(0 0 9px rgba(255,79,154,.88)); }
  64% { transform: scale(1.08); color: #ff4f9a; }
  79% { transform: scale(1.14); }
}
@keyframes shiritori-heart-bloom-aura {
  0%, 28% { transform: translate(-50%, -50%) scale(.25); opacity: 0; }
  48% { transform: translate(-50%, -50%) scale(1.25); opacity: .9; }
  78%, 100% { transform: translate(-50%, -50%) scale(1.65); opacity: 0; }
}
@keyframes shiritori-heart-petals-open {
  0%, 30% { transform: translate(-50%, -50%) scale(.12) rotate(-18deg); opacity: 0; }
  48% { transform: translate(-50%, -50%) scale(1) rotate(0); opacity: 1; }
  76%, 100% { transform: translate(-50%, -50%) scale(1.38) rotate(8deg); opacity: 0; }
}
.shiritori-entry.is-mine .shiritori-like {
  opacity: .28;
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.04);
}
.shiritori-entry.is-mine .shiritori-like span { color: rgba(255,255,255,.35); filter: none; }

.shiritori-entry.is-mine .shiritori-like.has-likes {
  position: relative;
  overflow: visible;
  opacity: 1;
  border-color: #ffe46d;
  color: #fff7bf;
  background: linear-gradient(145deg, rgba(255,230,102,.28), rgba(180,112,10,.34));
  box-shadow:
    inset 0 1px rgba(255,255,255,.55),
    0 0 8px rgba(255,216,74,.7),
    0 0 20px rgba(255,181,24,.4);
  text-shadow: 0 1px 0 #7b4900;
  animation: shiritori-own-like-glow 1.8s ease-in-out infinite;
}

.shiritori-entry.is-mine .shiritori-like.has-likes span {
  color: #ffd84a;
  filter: drop-shadow(0 0 5px #fff1a1) drop-shadow(0 0 9px #ffb51a);
}

.shiritori-entry-heading > .shiritori-like {
  min-width: 46px;
  min-height: 31px;
  padding: 3px 7px;
  border-radius: 11px;
  font-size: 11px;
}

.shiritori-entry-heading > .shiritori-like span { font-size: 17px; }

.shiritori-entry.is-mine .shiritori-like.has-likes::before,
.shiritori-entry.is-mine .shiritori-like.has-likes::after {
  content: "✦";
  position: absolute;
  color: #fff3a0;
  line-height: 1;
  pointer-events: none;
  text-shadow: 0 0 6px #ffc52d;
}

.shiritori-entry.is-mine .shiritori-like.has-likes::before {
  top: -7px;
  right: -5px;
  font-size: 13px;
  animation: shiritori-own-like-sparkle 1.4s ease-in-out infinite;
}

.shiritori-entry.is-mine .shiritori-like.has-likes::after {
  bottom: -5px;
  left: -4px;
  font-size: 9px;
  animation: shiritori-own-like-sparkle 1.4s .7s ease-in-out infinite;
}

@keyframes shiritori-own-like-glow {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.035); filter: brightness(1.18); }
}

@keyframes shiritori-own-like-sparkle {
  0%, 100% { opacity: .25; transform: scale(.55) rotate(0); }
  45% { opacity: 1; transform: scale(1.15) rotate(18deg); }
}

.shiritori-report {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  min-width: 34px;
  min-height: 30px;
  padding: 2px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 10px;
  color: rgba(255,255,255,.43);
  background: rgba(255,255,255,.035);
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
  justify-self: end;
}

.shiritori-report span { font-size: 16px; line-height: 1; }
.shiritori-report.is-reported { color: var(--sh-yellow); border-color: rgba(255,216,74,.35); }
.shiritori-report:disabled { cursor: default; opacity: .38; }

.shiritori-report-backdrop {
  position: fixed;
  z-index: 900;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(4,5,17,.72);
  backdrop-filter: blur(8px);
}

.shiritori-report-confirm {
  width: min(390px, 100%);
  padding: 22px;
  border: 2px solid rgba(255,216,74,.72);
  border-radius: 24px;
  color: #fff;
  text-align: center;
  background: linear-gradient(145deg, #2c193c, #15152b);
  box-shadow: 0 22px 60px rgba(0,0,0,.55), inset 0 1px rgba(255,255,255,.12);
  animation: shiritori-report-pop 240ms cubic-bezier(.2,.9,.3,1.1) both;
}

.shiritori-report-confirm > span { color: var(--sh-yellow); font-size: 34px; }
.shiritori-report-confirm h2 { margin: 5px 0 12px; font-size: 21px; }
.shiritori-report-confirm > strong { display: block; overflow-wrap: anywhere; color: var(--sh-yellow); font-size: 24px; }
.shiritori-report-confirm > p { margin: 12px 0 19px; color: rgba(255,255,255,.62); font-size: 12px; }
.shiritori-report-confirm > div { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.shiritori-report-confirm button {
  min-height: 48px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 14px;
  color: #fff;
  background: rgba(255,255,255,.08);
  font-weight: 900;
  cursor: pointer;
}
.shiritori-report-confirm button.is-report { border-color: #ff6a93; background: #b6215c; }
.shiritori-report-confirm button:disabled { opacity: .5; }

@keyframes shiritori-report-pop {
  from { opacity: 0; transform: translateY(12px) scale(.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.shiritori-history-status {
  padding: 14px;
  color: rgba(255,255,255,.5);
  text-align: center;
}

.shiritori-footer {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  margin: 4px auto 0;
  padding: 2px 22px 20px;
  color: rgba(255,255,255,.48);
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}

.shiritori-footer p { margin: 0; }

.shiritori-footer h2 {
  margin: 0 auto 6px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.82);
  font-size: 17px;
  letter-spacing: .06em;
}

.shiritori-footer-rules {
  max-width: 640px;
  margin-inline: auto !important;
  padding-top: 0;
  color: rgba(235,241,255,.58);
  line-height: 1.75;
  text-align: left;
}

.shiritori-footer a {
  display: inline-block;
  margin-top: 11px;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-decoration: none;
}

.shiritori-footer .shiritori-powered-by {
  font-size: 8px;
}

.shiritori-feedback-postbox {
  display: grid;
  justify-items: center;
  width: 100%;
  max-width: 640px;
  margin: 14px auto 0;
}

.shiritori-feedback-postbox .feedback-postbox-trigger {
  grid-template-columns: 42px minmax(0, 1fr);
  width: min(52%, 300px);
  min-width: 220px;
  margin-inline: auto;
  border-color: rgba(255,139,168,.62);
  border-radius: 18px;
  background:
    radial-gradient(circle at 14% 20%, rgba(255,190,205,.22), transparent 38%),
    linear-gradient(125deg, rgba(190,48,82,.9), rgba(152,48,96,.84) 56%, rgba(106,55,117,.8));
  box-shadow:
    inset 0 1px rgba(255,255,255,.16),
    0 8px 22px rgba(111,24,61,.26);
}

.shiritori-feedback-postbox .postbox-copy small { color: rgba(255,244,247,.72); white-space: normal; }

.shiritori-hammer-stage {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
  background: radial-gradient(circle, rgba(255,255,255,.33), rgba(255,79,154,.14) 35%, transparent 67%);
  animation: shiritori-hammer-stage 1850ms ease-out both;
}

.shiritori-hammer {
  position: absolute;
  z-index: 2;
  width: 160px;
  height: 190px;
  margin: -210px 0 0 130px;
  font-size: 0;
  transform-origin: 45% 90%;
  animation: shiritori-hammer-swing 680ms cubic-bezier(.3,.9,.35,1) both;
}

.shiritori-hammer::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 132px;
  height: 62px;
  border: 7px solid #fff;
  border-radius: 31px;
  background: linear-gradient(180deg, #ff9ac7, #ff4f9a);
  box-shadow: 0 8px 0 #a51c64, 0 14px 24px rgba(0,0,0,.3);
}

.shiritori-hammer::after {
  content: "";
  position: absolute;
  top: 58px;
  left: 57px;
  width: 25px;
  height: 126px;
  border: 5px solid #fff;
  border-radius: 13px;
  background: linear-gradient(90deg, #ffd84a, #f3a316);
  box-shadow: 6px 7px 0 rgba(91,34,75,.65);
  transform: rotate(-7deg);
}

.shiritori-hammer-impact {
  position: absolute;
  z-index: 3;
  margin: -50px 0 0 -115px;
  padding: 10px 18px 7px;
  border: 4px solid #37203f;
  border-radius: 50%;
  color: #37203f;
  background: var(--sh-yellow);
  font-size: 28px;
  font-weight: 950;
  transform: rotate(-12deg) scale(0);
  box-shadow: 0 6px 0 rgba(55,32,63,.32);
  animation: shiritori-hammer-impact 650ms 330ms cubic-bezier(.15,1.2,.35,1) both;
}

.shiritori-hammer-xavi {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  gap: 10px;
  width: min(390px, calc(100vw - 34px));
  margin-top: 180px;
  animation: shiritori-hammer-xavi-in 480ms 420ms cubic-bezier(.2,.9,.3,1.15) both;
}

.shiritori-hammer-xavi img {
  width: 94px;
  height: 94px;
  border: 4px solid #fff;
  border-radius: 50%;
  object-fit: cover;
  background: #21162d;
  box-shadow: 0 9px 0 rgba(66,27,79,.6), 0 18px 40px rgba(0,0,0,.45);
}

.shiritori-hammer-xavi p {
  margin: 0 0 12px;
  padding: 15px 17px 13px;
  border: 3px solid #36223f;
  border-radius: 9px 21px 21px 21px;
  color: #2d1d37;
  background: #fff8d5;
  font-size: clamp(17px, 5vw, 23px);
  font-weight: 950;
  line-height: 1.35;
  box-shadow: 0 7px 0 #d49f22, 0 17px 36px rgba(0,0,0,.35);
}

@keyframes shiritori-hammer-stage {
  0% { opacity: 0; }
  12%, 74% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes shiritori-hammer-swing {
  0% { transform: translate(110px, -90px) rotate(48deg); }
  58% { transform: translate(0, 0) rotate(-27deg); }
  72% { transform: translate(0, 0) rotate(-22deg); }
  100% { transform: translate(80px, -55px) rotate(25deg); }
}

@keyframes shiritori-hammer-impact {
  0% { opacity: 0; transform: rotate(-18deg) scale(.2); }
  48% { opacity: 1; transform: rotate(-12deg) scale(1.15); }
  100% { opacity: 0; transform: rotate(-7deg) scale(1.45); }
}

@keyframes shiritori-hammer-xavi-in {
  from { opacity: 0; transform: translateY(34px) scale(.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 560px) {
  .shiritori-shell { padding: 40px 8px 8px; }
  .shiritori-board { border-radius: 24px; }
  .shiritori-history-board {
    width: 82%;
    margin-top: 40px;
  }
  .shiritori-xavi-growth { margin-top: 14px; padding: 8px 10px; }
  .shiritori-xavi-growth.is-open { padding: 9px 11px 12px; }
  .shiritori-connection-time-history { margin-top: 10px; border-radius: 18px; }
  .shiritori-connection-time-history-toggle { padding: 12px 13px 11px; }
  .shiritori-connection-time-history-toggle b { font-size: 14px; }
  .shiritori-connection-time-history-toggle small { font-size: 8px; }
  .shiritori-connection-time-history-details { padding: 0 9px 10px; }
  .shiritori-connection-time-history-list { gap: 5px; margin-top: 8px; }
  .shiritori-connection-time-history-list li,
  .shiritori-connection-time-history-best p { grid-template-columns: minmax(0, 1fr) auto; gap: 6px; padding: 7px 8px; }
  .shiritori-connection-time-history-list strong,
  .shiritori-connection-time-history-best strong { font-size: 11px; }
  .shiritori-connection-time-history-list span,
  .shiritori-connection-time-history-best span { font-size: 10px; }
  .shiritori-connection-time-history-list span b,
  .shiritori-connection-time-history-best span b { font-size: 20px; }
  .shiritori-connection-time-history-list time,
  .shiritori-connection-time-history-best time { color: #fff; font-size: 12px; }
  .shiritori-connection-time-history-best small { font-size: 16px; letter-spacing: .28em; }
  .shiritori-xavi-growth-avatar img { width: 42px; height: 42px; }
  .shiritori-xavi-growth-toggle > span:nth-child(2) { font-size: 16px; }
  .shiritori-xavi-growth-toggle > strong { min-width: 57px; font-size: 27px; }
  .shiritori-xavi-growth-toggle > strong small { font-size: 12px; }
  .shiritori-xavi-growth-speech { min-height: 50px; padding: 8px 10px; font-size: 12px; }
  .shiritori-xavi-system-announcement { margin-top: 9px; padding: 11px 12px 12px; }
  .shiritori-xavi-system-announcement > b { margin-bottom: 7px; font-size: 9px; }
  .shiritori-xavi-system-announcement p { font-size: 11px; line-height: 1.6; }
  .shiritori-xavi-stats { gap: 5px; }
  .shiritori-xavi-stat { grid-template-columns: 82px minmax(0, 1fr) 32px; gap: 6px; padding-left: 7px; }
  .shiritori-xavi-stat.has-admin-debug { grid-template-columns: 82px minmax(0, 1fr) 42px; }
  .shiritori-xavi-stat-debug-input { width: 42px; }
  .shiritori-xavi-stat-label > span { font-size: 15px; }
  .shiritori-header { gap: 8px; padding: 15px 14px 12px; }
  .shiritori-header h1 { font-size: 22px; }
  .shiritori-title-row { gap: 6px; }
  .shiritori-title-row > span { padding: 4px 8px 3px; font-size: 12px; }
  .shiritori-close { padding: 9px 11px; font-size: 13px; }
  .shiritori-header-actions { gap: 6px; }
  .shiritori-header-actions > * { width: 42px; min-width: 42px; height: 42px; min-height: 42px; }
  .shiritori-header-actions .shiritori-close { padding: 0; font-size: 24px; }
  .shiritori-site-help-button { padding: 0; font-size: 23px; }
  .shiritori-help-backdrop { padding: 9px; }
  .shiritori-greeting-backdrop { padding: 9px; }
  .shiritori-greeting-window { border-radius: 20px; }
  .shiritori-greeting-header { padding: 23px 18px 18px; }
  .shiritori-greeting-header > span { font-size: 20px; }
  .shiritori-greeting-copy { padding: 7px 18px 12px; }
  .shiritori-greeting-copy p { padding: 14px 2px; font-size: 13px; line-height: 1.65; }
  .shiritori-greeting-copy .is-lead, .shiritori-greeting-copy .is-callout { font-size: 16px; }
  .shiritori-greeting-window.is-feature-notice { width: min(620px, 94vw); }
  .shiritori-feature-notice-copy { padding: 19px 20px 21px; }
  .shiritori-feature-notice-copy h3 { font-size: 25px; }
  .shiritori-feature-notice-rule { margin: 15px 0 17px; }
  .shiritori-feature-notice-copy p { margin-bottom: 14px; font-size: 13px; line-height: 1.7; }
  .shiritori-feature-notice-copy .is-xavi-caution { margin-top: 18px; padding: 12px 10px; }
  .shiritori-greeting-mobile-break { display: initial; }
  .shiritori-greeting-footer { gap: 10px; padding: 14px 15px 18px; }
  .shiritori-greeting-footer label { gap: 7px; font-size: 11px; }
  .shiritori-greeting-footer input { width: 18px; height: 18px; }
  .shiritori-greeting-footer button { min-width: 92px; padding: 11px 14px 9px; font-size: 13px; }
  .shiritori-help-window { max-height: 92svh; border-radius: 20px; }
  .shiritori-help-hero { padding: 26px 19px 20px; }
  .shiritori-help-hero p { font-size: 13px; }
  .shiritori-help-content { padding: 8px 15px 23px; }
  .shiritori-help-content > section { padding: 20px 2px; }
  .shiritori-help-content h3 { font-size: 20px; }
  .shiritori-help-content p, .shiritori-help-content li { font-size: 13px; }
  .shiritori-help-connection-time-figure { margin: 15px 0; padding: 5px; border-radius: 12px; }
  .shiritori-help-connection-time-figure figcaption { margin: 7px 4px 2px; font-size: 11px; }
  .shiritori-now { margin: 0 9px; padding-inline: 10px; }
  .shiritori-now::before { left: 12px; }
  .shiritori-now::after { right: 12px; }
  .shiritori-live-xavi { margin: 17px 14px 0; gap: 8px; }
  .shiritori-live-xavi-avatar { width: 54px; }
  .shiritori-live-xavi-avatar img { width: 50px; height: 50px; }
  .shiritori-live-xavi-bubble { padding: 9px 11px 10px; }
  .shiritori-live-xavi p { font-size: 13px; }
  .shiritori-form { padding: 18px 11px 13px; }
  .shiritori-input-row { grid-template-columns: 1fr; }
  .shiritori-input-actions { justify-content: center; }
  .shiritori-input-row button {
    width: 33.333%;
    min-width: 96px;
    min-height: 54px;
    justify-self: center;
  }
  .shiritori-input-row .shiritori-saga-talk-guide-button { margin: 0; right: 0; left: auto; width: auto; }
  .shiritori-history-section { margin: 0; padding: 0 3px; }
  .shiritori-history { height: 82svh; min-height: 560px; }
  .shiritori-entry { grid-template-columns: minmax(0, 1fr) auto; }
  .shiritori-entry.is-rolled-back { width: 78%; }
  .shiritori-entry-actions { grid-column: auto; }
  .shiritori-entry-main-row { gap: 7px; }
  .shiritori-entry-heading strong { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  .shiritori-current-word { animation: none; }
  .shiritori-now.is-updating { animation: none; }
  .shiritori-word-update-smoke { display: none; }
  .shiritori-input-row input:not(:disabled) { animation: none; }
  .shiritori-input-row button.is-sending:disabled { animation: none; }
  .shiritori-xavi-love progress::-webkit-progress-value,
  .shiritori-xavi-love progress::-moz-progress-bar,
  .shiritori-xavi-love.is-gaining,
  .shiritori-love-gain-stage,
  .shiritori-level-up-stage,
  .shiritori-level-up-rays,
  .shiritori-level-up-stage::before,
  .shiritori-level-up-stage::after,
  .shiritori-level-up-stage img,
  .shiritori-level-up-stage > strong,
  .shiritori-history-more-cue,
  .shiritori-greeting-backdrop,
  .shiritori-greeting-window,
  .shiritori-greeting-window::before,
  .shiritori-greeting-window::after,
  .shiritori-help-window,
  .shiritori-entry.is-connection,
  .shiritori-now.is-connection,
  .shiritori-now.is-connection::before,
  .shiritori-now.is-connection::after,
  .shiritori-shell.is-connection-time,
  .shiritori-connection-time-status.is-ended,
  .shiritori-chain-link.is-connection-time i,
  .shiritori-connection-badge,
  .shiritori-connection-start-badge,
  .shiritori-memorial-stage,
  .shiritori-memorial-rays,
  .shiritori-memorial-ring,
  .shiritori-memorial-copy,
  .shiritori-memorial-badge,
  .shiritori-connection-electric-pulse,
  .shiritori-like.is-busy,
  .shiritori-like.is-busy span,
  .shiritori-like.is-busy::before,
  .shiritori-like.is-busy::after { animation: none; }
  .shiritori-like.is-busy span { transform: scale(1.08); color: #ff4f9a; }
  .shiritori-like.is-busy::before { transform: translate(-50%, -50%) scale(1.1); opacity: .72; }
  .shiritori-like.is-busy::after { transform: translate(-50%, -50%) scale(.82); opacity: .7; }
  .shiritori-hammer-stage,
  .shiritori-hammer,
  .shiritori-hammer-impact,
  .shiritori-hammer-xavi { animation-duration: 1ms; }
  .shiritori-entry.is-mine .shiritori-like.has-likes,
  .shiritori-entry.is-mine .shiritori-like.has-likes::before,
  .shiritori-entry.is-mine .shiritori-like.has-likes::after,
  .shiritori-my-word-like.has-likes,
  .shiritori-my-word-like.has-likes::before,
  .shiritori-my-word-like.has-likes::after { animation: none; }
}

