/* ──────────────────────────────────────────────────────────────────────────
   Reto diario (/reto) — portada y resultado (oct-2026).

   Hoja propia, cargada solo por templates/reto/index.html.twig (el soft-nav la
   inyecta al llegar desde otra pantalla). Todo va bajo .reto-page para no tocar
   nada fuera del reto. Las tarjetas son cristal oscuro con texto claro, como el
   .reto-hero de siempre: es lo único que se lee bien sobre los 26 fondos de tema
   (escenas, cielo claro, degradado morado del tema claro).

   Movimiento: solo transform/opacity (GPU barata en Android de gama baja) y
   nada con filter:blur animado. prefers-reduced-motion lo apaga todo.
   ────────────────────────────────────────────────────────────────────────── */

.reto-page {
  --rt-glass: rgba(14, 10, 26, .64);
  --rt-glass-2: rgba(255, 255, 255, .06);
  --rt-line: rgba(255, 255, 255, .12);
  --rt-text: #f8fafc;
  --rt-muted: rgba(241, 245, 249, .74);
  --rt-red: #f43f5e;
  --rt-orange: #fb923c;
  --rt-gold: #fbbf24;
  --rt-gem: #e879f9;
  --rt-green: #22c55e;
}

/* El HUD de la ronda (reloj 00:30 y mejor palabra) solo tiene sentido jugando. */
.reto-page #app-view:not([data-reto-view="section-play"]) > .score-board { display: none; }

/* ── Portada ─────────────────────────────────────────────────────────────── */
.reto-page .reto-wrap.rt {
  justify-content: flex-start; gap: 14px;
  padding-top: 10px;
}

.reto-page .rt-hero {
  position: relative; overflow: hidden; isolation: isolate;
  width: 100%; box-sizing: border-box; margin: 0;
  display: flex; flex-direction: column; align-items: center;
  padding: 16px 16px 18px; border-radius: 24px;
  color: var(--rt-text);
  background:
    radial-gradient(120% 70% at 50% -10%, rgba(244, 63, 94, .26), transparent 60%),
    radial-gradient(90% 60% at 100% 110%, rgba(168, 85, 247, .22), transparent 65%),
    var(--rt-glass);
  border: 1px solid var(--rt-line);
  -webkit-backdrop-filter: blur(12px) saturate(1.1); backdrop-filter: blur(12px) saturate(1.1);
  box-shadow: 0 22px 44px -20px rgba(0, 0, 0, .75), inset 0 1px 0 rgba(255, 255, 255, .08);
}
/* Brillo fino en el borde superior: da volumen sin pesar. */
.reto-page .rt-hero::before {
  content: ''; position: absolute; inset: 0 0 auto; height: 1px; z-index: -1;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
}

.reto-page .rt-hero-top {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-bottom: 10px;
}
.reto-page .rt-chip {
  display: inline-flex; align-items: center; gap: 6px; min-width: 0;
  padding: 6px 10px; border-radius: 999px;
  font-size: .76rem; font-weight: 700; color: var(--rt-muted);
  background: var(--rt-glass-2); border: 1px solid var(--rt-line);
  white-space: nowrap;
}
.reto-page .rt-chip[hidden] { display: none; }
.reto-page .rt-chip .ic { width: 14px; height: 14px; flex: none; }
.reto-page .rt-chip-clock { color: #fecdd3; background: rgba(244, 63, 94, .14); border-color: rgba(244, 63, 94, .34); }
.reto-page .rt-chip-clock b { color: #fff; font-weight: 800; }
.reto-page .rt-num { font-variant-numeric: tabular-nums; }

/* Emblema: la diana con un aro que respira. */
.reto-page .rt-emblem {
  position: relative; width: 76px; height: 76px; margin: 2px 0 10px;
  display: grid; place-items: center; border-radius: 24px; color: #fb7185;
  background: linear-gradient(160deg, rgba(244, 63, 94, .28), rgba(244, 63, 94, .08));
  border: 1px solid rgba(244, 63, 94, .42);
  box-shadow: 0 12px 28px -10px rgba(244, 63, 94, .55), inset 0 1px 0 rgba(255, 255, 255, .12);
}
.reto-page .rt-emblem > .ic { width: 40px; height: 40px; position: relative; }
.reto-page .rt-emblem-ring {
  position: absolute; inset: -7px; border-radius: 30px;
  border: 1.5px solid rgba(251, 113, 133, .45);
  animation: rt-breathe 3.2s ease-in-out infinite;
}
@keyframes rt-breathe { 0%, 100% { transform: scale(.94); opacity: .2; } 50% { transform: scale(1.04); opacity: .9; } }

.reto-page .rt-hero .reto-title { margin: 0 0 4px; font-size: 1.75rem; letter-spacing: -.01em; color: var(--rt-text); }
.reto-page .rt-hero .reto-sub { margin: 0 0 14px; color: var(--rt-muted); font-size: .92rem; line-height: 1.4; text-wrap: balance; }

/* Cifras del día. */
.reto-page .rt-stats {
  width: 100%; display: flex; justify-content: center; gap: 8px;
  margin: 0 0 14px;
}
/* Dos cifras (cuántos han jugado y el premio), centradas; sin la mejor puntuación. */
.reto-page .rt-stats .rt-stat { flex: 0 1 180px; }
.reto-page .rt-stats[hidden] { display: none; }
.reto-page .rt-stat {
  display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0;
  padding: 10px 4px 9px; border-radius: 16px;
  background: var(--rt-glass-2); border: 1px solid var(--rt-line);
}
.reto-page .rt-stat b {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 1.35rem; font-weight: 900; line-height: 1.1; color: #fff;
}
.reto-page .rt-stat span:not(.rt-num) { font-size: .68rem; font-weight: 700; color: var(--rt-muted); line-height: 1.2; text-wrap: balance; }
.reto-page .rt-stat-prize { background: rgba(232, 121, 249, .1); border-color: rgba(232, 121, 249, .32); }
.reto-page .rt-stat-prize b { color: var(--rt-gem); }
.reto-page .rt-stat-prize .ic { width: 18px; height: 18px; }

/* Línea de objetivo antes de jugar. */
.reto-page .rt-goal {
  width: 100%; box-sizing: border-box; margin: 0; padding: 10px 12px; border-radius: 14px;
  font-size: .86rem; font-weight: 700; line-height: 1.35; color: #fde68a;
  background: rgba(251, 191, 36, .1); border: 1px solid rgba(251, 191, 36, .28);
}
.reto-page .rt-goal b { color: #fff; }
.reto-page .rt-hero .reto-state { gap: 10px; margin-bottom: 14px; }
.reto-page .rt-hero .reto-state:empty { display: none; }
/* Sin botón debajo (ya jugado, sin reto) el bloque cierra la tarjeta: sin margen extra. */
.reto-page .rt-hero .reto-state:has(+ .reto-play-btn[hidden]) { margin-bottom: 0; }
.reto-page .rt-hero .reto-state > .reto-msg {
  max-width: none; width: 100%; box-sizing: border-box; padding: 10px 12px; font-size: .88rem; line-height: 1.4;
  color: var(--rt-muted); background: var(--rt-glass-2); border: 1px solid var(--rt-line);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.reto-page .rt-hero .reto-challenge-banner { margin: 0 0 12px; color: #fed7aa; }

/* Tarjeta de tu resultado (ya jugado). */
.reto-page .rt-result {
  position: relative; width: 100%; box-sizing: border-box; padding: 14px 14px 12px; border-radius: 18px;
  background: linear-gradient(160deg, rgba(251, 191, 36, .14), rgba(249, 115, 22, .06));
  border: 1px solid rgba(251, 191, 36, .3);
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 12px; text-align: left;
}
.reto-page .rt-result-kicker { grid-column: 1 / -1; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fcd34d; }
.reto-page .rt-result-word {
  font-size: 1.45rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: #fff;
  overflow-wrap: anywhere; line-height: 1.1;
}
.reto-page .rt-result-pts { text-align: right; line-height: 1; }
.reto-page .rt-result-pts b {
  display: block; font-size: 2.3rem; font-weight: 900;
  background: linear-gradient(135deg, var(--rt-gold), var(--rt-orange));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.reto-page .rt-result-pts span { font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--rt-muted); }
.reto-page .rt-result-meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.reto-page .rt-pill {
  display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px;
  font-size: .76rem; font-weight: 800; color: var(--rt-text);
  background: rgba(255, 255, 255, .08); border: 1px solid var(--rt-line);
}
.reto-page .rt-pill .ic { width: 13px; height: 13px; }
.reto-page .rt-pill-gold { color: #fde68a; background: rgba(251, 191, 36, .14); border-color: rgba(251, 191, 36, .34); }
.reto-page .rt-result-empty { grid-template-columns: 1fr; text-align: center; background: var(--rt-glass-2); border-color: var(--rt-line); }
.reto-page .rt-result-empty .rt-result-word { font-size: 1.05rem; letter-spacing: 0; text-transform: none; }
.reto-page .rt-result-empty .rt-result-meta { justify-content: center; }

/* CTA principal: verde, grande, con un brillo que cruza de vez en cuando. */
.reto-page .reto-play-btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  max-width: none; width: 100%; padding: 17px 18px; border: 0; border-radius: 18px; cursor: pointer;
  font-size: 1.15rem; font-weight: 900; letter-spacing: .01em; color: #fff;
  background: linear-gradient(150deg, #34d399, #16a34a 55%, #15803d);
  box-shadow: 0 14px 28px -12px rgba(22, 163, 74, .85), inset 0 1px 0 rgba(255, 255, 255, .3);
  transition: transform .12s ease;
}
.reto-page .reto-play-btn[hidden] { display: none; }
.reto-page .reto-play-btn .ic { width: 22px; height: 22px; }
.reto-page .reto-play-btn::after {
  content: ''; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; z-index: -1;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
  transform: translateX(-100%) skewX(-18deg);
  animation: rt-shine 4.2s ease-in-out 1.2s infinite;
}
@keyframes rt-shine { 0%, 60% { transform: translateX(0) skewX(-18deg); } 100% { transform: translateX(560%) skewX(-18deg); } }
.reto-page .reto-play-btn:active { transform: scale(.98); }

/* ── Tarjetas bajo la portada ────────────────────────────────────────────── */
.reto-page .rt-card {
  width: 100%; box-sizing: border-box; padding: 14px; border-radius: 20px; text-align: left;
  color: var(--rt-text);
  background: var(--rt-glass); border: 1px solid var(--rt-line);
  -webkit-backdrop-filter: blur(12px) saturate(1.1); backdrop-filter: blur(12px) saturate(1.1);
  box-shadow: 0 16px 34px -20px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .06);
}
.reto-page .rt-card[hidden] { display: none; }
.reto-page .rt-card-title {
  display: flex; align-items: center; gap: 8px; margin: 0 0 10px;
  font-size: .95rem; font-weight: 800; color: var(--rt-text);
}
.reto-page .rt-card-title .ic { width: 18px; height: 18px; color: var(--rt-gold); }
.reto-page .rt-card-note { margin-left: auto; font-size: .72rem; font-weight: 700; color: var(--rt-muted); }
.reto-page .rt-card-kicker { font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--rt-muted); }

/* Compartir / retar. */
.reto-page .rt-share { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px; }
.reto-page .rt-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 0;
  padding: 12px 8px; border-radius: 14px; cursor: pointer; white-space: nowrap;
  font-size: .88rem; font-weight: 800; color: var(--rt-text);
  background: rgba(255, 255, 255, .08) !important; border: 1px solid rgba(255, 255, 255, .18);
}
.reto-page .rt-action .ic { width: 17px; height: 17px; flex: none; }
.reto-page .rt-action-primary {
  color: #fff; border-color: transparent;
  background: linear-gradient(145deg, #fb923c, #ea580c) !important;
  box-shadow: 0 10px 22px -10px rgba(234, 88, 12, .8);
}
.reto-page .rt-action:active { transform: scale(.98); }

/* Top del día. */
.reto-page .rt-top-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.reto-page .rt-top-row {
  display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: 14px;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .07);
}
.reto-page .rt-top-row.is-me { background: rgba(251, 191, 36, .12); border-color: rgba(251, 191, 36, .36); }
.reto-page .rt-top-gap { text-align: center; color: var(--rt-muted); font-weight: 800; line-height: .6; letter-spacing: .2em; }
.reto-page .rt-top-pos {
  width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  font-size: .8rem; font-weight: 900; color: #0b1020; background: rgba(255, 255, 255, .7);
}
.reto-page .rt-top-row[data-pos="1"] .rt-top-pos { background: linear-gradient(145deg, #fde68a, #f59e0b); box-shadow: 0 0 12px rgba(251, 191, 36, .5); }
.reto-page .rt-top-row[data-pos="2"] .rt-top-pos { background: linear-gradient(145deg, #f1f5f9, #94a3b8); }
.reto-page .rt-top-row[data-pos="3"] .rt-top-pos { background: linear-gradient(145deg, #fdba74, #c2410c); color: #fff; }
.reto-page .rt-top-who { min-width: 0; display: flex; flex-direction: column; }
.reto-page .rt-top-name { font-weight: 800; font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.reto-page .rt-top-name .av-svg { vertical-align: -3px; margin-right: 4px; }
.reto-page .rt-top-word { font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--rt-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.reto-page .rt-top-pts { font-weight: 900; font-size: 1.05rem; color: #fff; }
.reto-page .rt-top-pts small { font-size: .66rem; font-weight: 800; color: var(--rt-muted); margin-left: 2px; }
.reto-page .rt-link-btn {
  display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; margin-top: 10px;
  padding: 10px; border-radius: 12px; cursor: pointer;
  font-size: .88rem; font-weight: 800; color: var(--rt-text);
  background: transparent !important; border: 1px dashed rgba(255, 255, 255, .22);
}
.reto-page .rt-link-btn[hidden] { display: none; }
.reto-page .rt-link-btn .ic { width: 16px; height: 16px; }
.reto-page .rt-flip { transform: scaleX(-1); }

/* Racha: los últimos 7 días. */
.reto-page .rt-streak-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.reto-page .rt-streak-flame {
  width: 42px; height: 42px; border-radius: 14px; flex: none; display: grid; place-items: center; color: var(--rt-orange);
  background: rgba(249, 115, 22, .15); border: 1px solid rgba(249, 115, 22, .36);
}
.reto-page .rt-streak.is-hot .rt-streak-flame { color: #fff; background: linear-gradient(150deg, #fb923c, #ea580c); border-color: transparent; box-shadow: 0 8px 20px -8px rgba(234, 88, 12, .9); }
.reto-page .rt-streak-flame .ic { width: 22px; height: 22px; }
.reto-page .rt-streak-text { display: flex; flex-direction: column; }
.reto-page .rt-streak-text b { font-size: 1.15rem; font-weight: 900; color: #fff; }
.reto-page .rt-week { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.reto-page .rt-day { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.reto-page .rt-day-dot {
  width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; color: transparent;
  background: rgba(255, 255, 255, .05); border: 1.5px solid rgba(255, 255, 255, .16);
}
.reto-page .rt-day-dot .ic { width: 16px; height: 16px; }
.reto-page .rt-day.is-played .rt-day-dot {
  color: #fff; border-color: transparent;
  background: linear-gradient(150deg, #fb923c, #ea580c);
  box-shadow: 0 6px 14px -6px rgba(234, 88, 12, .9);
}
.reto-page .rt-day.is-today .rt-day-dot { border-style: dashed; border-color: rgba(251, 191, 36, .8); }
.reto-page .rt-day.is-today:not(.is-played) .rt-day-dot { animation: rt-pending 2.4s ease-in-out infinite; }
.reto-page .rt-day.is-today.is-played .rt-day-dot { box-shadow: 0 0 0 3px rgba(251, 191, 36, .25), 0 6px 14px -6px rgba(234, 88, 12, .9); }
@keyframes rt-pending { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
.reto-page .rt-day-label { font-size: .7rem; font-weight: 800; color: var(--rt-muted); }
.reto-page .rt-day.is-today .rt-day-label { color: #fde68a; }
.reto-page .rt-streak-hint { margin: 12px 0 0; font-size: .82rem; font-weight: 700; color: var(--rt-muted); line-height: 1.4; }
.reto-page .rt-streak-hint:empty { display: none; }

/* Ayer. */
.reto-page .rt-yesterday .rt-yh-winner {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px;
  padding: 12px; border-radius: 16px;
  background: linear-gradient(160deg, rgba(251, 191, 36, .12), rgba(255, 255, 255, .03));
  border: 1px solid rgba(251, 191, 36, .26);
}
.reto-page .rt-yh-crown {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-size: 1.3rem;
  background: rgba(255, 255, 255, .08); border: 1px solid var(--rt-line);
}
.reto-page .rt-yh-crown .av-svg { font-size: 1.4rem; }
.reto-page .rt-yh-crown .ic { width: 20px; height: 20px; color: var(--rt-gold); }
.reto-page .rt-yh-who { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.reto-page .rt-yh-name { font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.reto-page .rt-yh-word { font-size: 1.05rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; color: #fde68a; overflow-wrap: anywhere; }
.reto-page .rt-yh-prize { font-size: .74rem; font-weight: 700; color: var(--rt-muted); }
.reto-page .rt-yh-prize .ic { width: 12px; height: 12px; vertical-align: -1px; color: var(--rt-gem); }
.reto-page .rt-yh-pts { font-size: 1.3rem; font-weight: 900; color: #fff; text-align: right; line-height: 1; }
.reto-page .rt-yh-pts small { display: block; font-size: .62rem; font-weight: 800; color: var(--rt-muted); letter-spacing: .06em; text-transform: uppercase; }
.reto-page .rt-yh-mine {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px;
  padding: 10px 12px; border-radius: 14px; font-size: .86rem; font-weight: 700;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .07); color: var(--rt-muted);
}
.reto-page .rt-yh-mine b { color: #fff; }
.reto-page .rt-yh-empty { margin: 0; font-size: .86rem; font-weight: 700; color: var(--rt-muted); }

/* ── Resultado justo después de jugar ────────────────────────────────────── */
.reto-page #section-end { flex-direction: column; align-items: center; gap: 14px; }
.reto-page #reto-end-card {
  background:
    radial-gradient(110% 60% at 50% -5%, rgba(251, 191, 36, .2), transparent 60%),
    var(--rt-glass);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  color: var(--rt-text); border-color: var(--rt-line);
}
.reto-page #reto-end-card .result-verdict-icon .ic { color: var(--rt-gold); filter: drop-shadow(0 0 14px rgba(251, 191, 36, .45)); }
.reto-page #reto-end-card .result-subtitle { opacity: 1; color: var(--rt-muted); }
.reto-page #reto-end-card .reto-end-stats { color: #fde68a; }
.reto-page #reto-end-card .result-btn-secondary { color: var(--rt-text) !important; background: rgba(255, 255, 255, .1) !important; border-color: rgba(255, 255, 255, .2) !important; }
.reto-page #reto-end-card .result-xp { margin-top: 14px; }
.reto-page #reto-end-card .result-actions { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.reto-page #reto-end-card .result-actions > * { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; white-space: nowrap; }
.reto-page #reto-end-card .result-actions .ic { width: 17px; height: 17px; flex: none; }
/* Retar y ranking, a la par bajo Compartir; sin palabra (no hay nada que compartir) van solos. */
.reto-page #reto-end-card .result-actions > #reto-dare-btn,
.reto-page #reto-end-card .result-actions > #reto-dare-btn ~ #reto-end-ranking-btn { grid-column: auto; font-size: .92rem; padding: 12px 8px; }
.reto-page #reto-end-card .result-actions > #reto-dare-btn[style*="none"] ~ #reto-end-ranking-btn { grid-column: 1 / -1; }
.reto-page .rt-end-extra { width: 100%; max-width: 440px; display: flex; flex-direction: column; gap: 12px; }
.reto-page .rt-next {
  display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0;
  padding: 10px 14px; border-radius: 999px; font-size: .86rem; font-weight: 700; color: var(--rt-muted);
  background: var(--rt-glass); border: 1px solid var(--rt-line);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.reto-page .rt-next[hidden] { display: none; }
.reto-page .rt-next .ic { width: 15px; height: 15px; }
.reto-page .rt-next b { color: #fff; }

/* ── Entrada escalonada ─────────────────────────────────────────────────── */
.reto-page .rt-rise { animation: rt-rise .5s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--rt-i, 0) * 70ms); }
.reto-page .reto-wrap.rt > :nth-child(2), .reto-page .rt-end-extra > :nth-child(1) { --rt-i: 1; }
.reto-page .reto-wrap.rt > :nth-child(3), .reto-page .rt-end-extra > :nth-child(2) { --rt-i: 2; }
.reto-page .reto-wrap.rt > :nth-child(4) { --rt-i: 3; }
.reto-page .reto-wrap.rt > :nth-child(5) { --rt-i: 4; }
@keyframes rt-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.reto-page .rt-pop { animation: rt-pop .45s cubic-bezier(.34, 1.56, .64, 1) both; }
@keyframes rt-pop { from { transform: scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }

@media (max-width: 360px) {
  .reto-page .rt-stat b { font-size: 1.15rem; }
  .reto-page .rt-day-dot { width: 28px; height: 28px; }
  .reto-page .rt-share { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .reto-page .rt-rise, .reto-page .rt-pop, .reto-page .rt-emblem-ring,
  .reto-page .reto-play-btn::after, .reto-page .rt-day.is-today .rt-day-dot { animation: none !important; }
  .reto-page .reto-play-btn::after { display: none; }
}
