/* Return streak — nickname flame tiers (local preview / future in-app)
   Stacks with chat-glow-* on the same .chat-author element */

.chat-author {
  display: inline;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-word;
}

.chat-author-base {
  color: #c8d2dc;
}

/* Shared flame pseudo-element base */
[class*="return-streak-"]::before {
  content: "";
  display: inline-block;
  vertical-align: -0.08em;
  margin-right: 0.2em;
  transform-origin: 50% 90%;
}

/* 3+ days — ember spark */
.return-streak-1 {
  color: #f5e6d6;
}
.return-streak-1::before {
  width: 0.42em;
  height: 0.55em;
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  background: linear-gradient(to top, #ea580c 0%, #fb923c 55%, #fde68a 100%);
  opacity: 0.75;
  animation: rs-flicker-soft 1.8s ease-in-out infinite;
  filter: drop-shadow(0 0 3px rgba(251, 146, 60, 0.45));
}

/* 7+ days — steady flame + warm glow */
.return-streak-2 {
  color: #fff1e6;
  text-shadow: 0 0 8px rgba(251, 146, 60, 0.35);
}
.return-streak-2::before {
  width: 0.52em;
  height: 0.72em;
  border-radius: 50% 50% 42% 42% / 58% 58% 42% 42%;
  background: linear-gradient(to top, #dc2626 0%, #f97316 45%, #fbbf24 85%, #fef3c7 100%);
  animation: rs-flicker 1.2s ease-in-out infinite;
  filter: drop-shadow(0 0 5px rgba(249, 115, 22, 0.65));
}

/* 14+ days — flame + living halo */
.return-streak-3 {
  position: relative;
  color: #fff7ed;
  text-shadow:
    0 0 6px rgba(251, 146, 60, 0.55),
    0 0 14px rgba(234, 88, 12, 0.3);
  animation: rs-warm-pulse 2.4s ease-in-out infinite;
}
.return-streak-3::before {
  width: 0.58em;
  height: 0.82em;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: linear-gradient(to top, #b91c1c 0%, #ea580c 35%, #fb923c 70%, #fde047 100%);
  animation: rs-flicker-strong 0.9s ease-in-out infinite;
  filter: drop-shadow(0 0 7px rgba(249, 115, 22, 0.85));
}
.return-streak-3::after {
  content: "";
  position: absolute;
  left: -0.4em;
  right: -0.25em;
  top: 50%;
  height: 1.5em;
  transform: translateY(-50%);
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(251, 146, 60, 0.18) 0%, transparent 70%);
  pointer-events: none;
  z-index: -1;
  animation: rs-halo 2.4s ease-in-out infinite;
}

/* 30+ days — eternal fire legend */
.return-streak-4 {
  position: relative;
  display: inline-block;
  background: linear-gradient(
    95deg,
    #fde68a 0%,
    #fb923c 25%,
    #fff7ed 45%,
    #f97316 65%,
    #ef4444 82%,
    #fde68a 100%
  );
  background-size: 220% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation:
    rs-fire-gradient 2.6s linear infinite,
    rs-legend-glow 2s ease-in-out infinite;
  filter: drop-shadow(0 0 8px rgba(249, 115, 22, 0.5));
}
.return-streak-4::before {
  width: 0.62em;
  height: 0.88em;
  border-radius: 50% 50% 38% 38% / 62% 62% 38% 38%;
  background: linear-gradient(to top, #7f1d1d 0%, #dc2626 25%, #f97316 55%, #fbbf24 85%, #fffbeb 100%);
  animation: rs-flicker-legend 0.7s ease-in-out infinite;
  filter: drop-shadow(0 0 9px rgba(251, 146, 60, 1));
  -webkit-text-fill-color: initial;
}
.return-streak-4::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 45%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 237, 213, 0.55), transparent);
  transform: skewX(-16deg);
  animation: rs-shine 3.2s ease-in-out infinite;
  pointer-events: none;
  -webkit-text-fill-color: initial;
}

@keyframes rs-flicker-soft {
  0%, 100% { transform: scaleY(1) scaleX(1); opacity: 0.65; }
  50% { transform: scaleY(1.12) scaleX(0.92); opacity: 0.95; }
}
@keyframes rs-flicker {
  0%, 100% { transform: scaleY(1) rotate(-2deg); }
  33% { transform: scaleY(1.1) scaleX(0.94) rotate(2deg); }
  66% { transform: scaleY(0.95) scaleX(1.04) rotate(-1deg); }
}
@keyframes rs-flicker-strong {
  0%, 100% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.14) scaleX(0.9) rotate(3deg); }
  50% { transform: scaleY(0.92) scaleX(1.06) rotate(-2deg); }
  75% { transform: scaleY(1.08) rotate(1deg); }
}
@keyframes rs-flicker-legend {
  0%, 100% { transform: scaleY(1) rotate(-1deg); filter: drop-shadow(0 0 8px rgba(251, 146, 60, 0.9)); }
  50% { transform: scaleY(1.18) scaleX(0.88) rotate(2deg); filter: drop-shadow(0 0 14px rgba(251, 191, 36, 1)); }
}
@keyframes rs-warm-pulse {
  0%, 100% { text-shadow: 0 0 5px rgba(251, 146, 60, 0.4), 0 0 12px rgba(234, 88, 12, 0.2); }
  50% { text-shadow: 0 0 10px rgba(251, 146, 60, 0.75), 0 0 22px rgba(234, 88, 12, 0.4); }
}
@keyframes rs-halo {
  0%, 100% { opacity: 0.5; transform: translateY(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateY(-50%) scale(1.05); }
}
@keyframes rs-fire-gradient {
  0% { background-position: 0% center; }
  100% { background-position: 220% center; }
}
@keyframes rs-legend-glow {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(249, 115, 22, 0.4)); }
  50% { filter: drop-shadow(0 0 14px rgba(251, 146, 60, 0.85)); }
}
@keyframes rs-shine {
  0%, 50% { left: -100%; opacity: 0; }
  60% { opacity: 1; }
  100% { left: 130%; opacity: 0; }
}

/* Broken streak — no class, plain nick (see preview) */

.feed-meta-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2em 0.35em;
  font-size: 0.82rem;
  color: #8b98a7;
}
.feed-meta-line time {
  color: #6b7785;
  font-weight: 400;
  white-space: nowrap;
}
.feed-meta-sep { opacity: 0.55; }

.streak-badge-inline {
  font-size: 0.72em;
  color: #fb923c;
  opacity: 0.85;
  font-weight: 500;
}
