/* Hallmark · macrostructure: Marquee Hero · tone: luxury technical · anchor hue: champagne · genre: atmospheric · theme: LUM360 production DNA */
/*
 * Digital Resort Tycoon · pantalla de inicio, escenario, HUD, paneles y diálogos.
 * Requiere /lab/assets/lab.css. Pensado primero para un teléfono en vertical y una sola mano (jugable una hora):
 * métricas arriba, decisiones y «Advance Week» abajo al alcance del pulgar, paneles como hojas inferiores y nada
 * cerca de la muesca ni del indicador de inicio (safe-area). En escritorio los paneles pasan a un lateral.
 * El escenario es siempre oscuro (superficie de medio): dentro de .rt-dark los tokens se fijan a sus variantes oscuras.
 */

.rt-dark {
  color-scheme: dark;
  --color-text-primary: var(--color-dark-text);
  --color-text-secondary: var(--color-dark-text-secondary);
  --color-text-muted: var(--color-media-text-muted);
  --color-accent: var(--color-dark-accent);
  --color-accent-strong: var(--color-media-accent);
  --color-border: color-mix(in srgb, var(--color-dark-text) 16%, transparent);
  --color-border-strong: color-mix(in srgb, var(--color-dark-text) 34%, transparent);
  --color-button-primary-bg: var(--color-media-accent);
  --color-button-primary-text: var(--color-dark-surface);
  --color-focus: var(--color-media-accent);
  --color-link: var(--color-media-accent);
  --lab-line: var(--color-border);
  --lab-line-strong: var(--color-border-strong);
  --rt-black: color-mix(in srgb, var(--color-dark-surface) 45%, var(--color-mask-solid));
  --rt-scrim: color-mix(in srgb, var(--color-mask-solid) 72%, transparent);
  --rt-scrim-soft: color-mix(in srgb, var(--color-mask-solid) 46%, transparent);
  --rt-gold: var(--color-media-accent);
  --rt-gold-dim: color-mix(in srgb, var(--color-media-accent) 24%, transparent);
  --rt-gold-wash: color-mix(in srgb, var(--color-media-accent) 14%, transparent);
  --rt-glass: color-mix(in srgb, var(--color-dark-surface) 86%, transparent);
  --rt-glass-strong: color-mix(in srgb, var(--color-dark-surface) 94%, transparent);
  --rt-line: color-mix(in srgb, var(--color-dark-text) 14%, transparent);
  --rt-line-strong: color-mix(in srgb, var(--color-dark-text) 30%, transparent);
  --rt-good: #7fc79a;
  --rt-bad: #ec9a9a;
  --rt-warn: #f0c46c;
  --rt-safe-top: max(0.6rem, env(safe-area-inset-top));
  --rt-safe-right: max(0.6rem, env(safe-area-inset-right));
  --rt-safe-bottom: max(0.6rem, env(safe-area-inset-bottom));
  --rt-safe-left: max(0.6rem, env(safe-area-inset-left));
  --rt-dock: 4.25rem;
  --rt-ink: #1a1405;
  --rt-island: #0b0a08;
  --rt-grid: color-mix(in srgb, var(--color-dark-text) 3%, transparent);
  --pg-fill: linear-gradient(180deg, rgb(35 31 24 / 0.92), rgb(14 12 9 / 0.96));
  --pg-edge: linear-gradient(135deg, color-mix(in srgb, var(--rt-gold) 74%, transparent), color-mix(in srgb, var(--rt-gold) 16%, transparent) 36%, color-mix(in srgb, var(--color-dark-text) 9%, transparent) 64%, color-mix(in srgb, var(--rt-gold) 48%, transparent));
  --pg-gold-grad: linear-gradient(180deg, color-mix(in srgb, var(--rt-gold) 68%, #fff), var(--rt-gold) 46%, color-mix(in srgb, var(--rt-gold) 74%, #5a3d00));
  color: var(--color-text-primary);
}

/* Primitivas de la página (fuera de las islas oscuras siguen el tema claro u oscuro del sitio). */
.rt-page {
  --pg-cut: 14px;
  --pg-shape: polygon(var(--pg-cut) 0, 100% 0, 100% calc(100% - var(--pg-cut)), calc(100% - var(--pg-cut)) 100%, 0 100%, 0 var(--pg-cut));
  --pg-fill: var(--color-surface-elevated);
  --pg-edge: linear-gradient(135deg, var(--color-border-accent), var(--color-border) 45%, var(--color-border-accent));
}

/* ── Pantalla de inicio ─────────────────────────────────────────────────── */

.rt-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  min-height: min(calc(100svh - var(--lab-nav)), 58rem);
  background: var(--color-dark-surface);
  overflow: clip;
}

.rt-hero__poster,
.rt-hero__poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }
.rt-hero__poster { z-index: -2; view-transition-name: lab-exp-resort-tycoon; }

.rt-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(to top, var(--rt-black) 0%, var(--rt-scrim) 30%, transparent 72%),
    linear-gradient(to right, var(--rt-scrim) 0%, var(--rt-scrim-soft) 45%, transparent 78%);
}

.rt-hero__content { padding-block: var(--lab-space-3xl) clamp(2rem, 6vh, 4rem); min-width: 0; }
.rt-hero__content > * { max-width: 40rem; }
.rt-hero__content > .rt-hero__title,
.rt-hero__content > .rt-actions,
.rt-hero__content > .rt-facts { max-width: 52rem; }

.rt-in { animation: lab-rise var(--lab-dur-long) var(--ease-out) backwards; animation-delay: calc(var(--i, 0) * 70ms); }

.rt-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lab-space-xs) var(--lab-space-md); margin-bottom: var(--lab-space-lg); }
.rt-kicker a { color: var(--color-accent-strong); text-decoration: none; }
.rt-kicker a:hover { text-decoration: underline; text-underline-offset: 0.25em; }
.rt-kicker a + span::before { content: "/"; margin-right: var(--lab-space-md); color: var(--color-border-strong); }

.rt-hero__title { max-width: none; text-shadow: 0 2px 40px rgb(0 0 0 / 0.45); }
.rt-hero__title em { display: block; }
.rt-hero__alt { display: block; margin-top: var(--lab-space-sm); font-size: 0.32em; font-style: italic; letter-spacing: 0; color: var(--color-accent-strong); }
.rt-hero .lab-lead { margin-top: var(--lab-space-lg); color: var(--color-text-secondary); }

/* «Jugar»: el mismo lenguaje que el botón Advance Week del juego (oro con bisel y destello periódico). */
.rt-playnote { display: flex; align-items: center; margin-top: var(--lab-space-xl); color: var(--color-text-secondary); }
.rt-dot { flex: none; width: 0.5rem; height: 0.5rem; margin-right: 0.65rem; border-radius: 50%; background: var(--rt-good); animation: rt-pulse 2.4s var(--ease-out) infinite; }
@keyframes rt-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--rt-good) 70%, transparent); } 70%, 100% { box-shadow: 0 0 0 0.6rem transparent; } }

.rt-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lab-space-md); margin-top: var(--lab-space-md); }
.rt-actions .lab-btn { min-width: 0; white-space: normal; text-align: center; }
.rt-cta-wrap { display: inline-block; filter: drop-shadow(0 10px 26px color-mix(in srgb, var(--rt-gold) 30%, transparent)); transition: filter var(--dur-short) var(--ease-out); }
.rt-cta-wrap:hover { filter: drop-shadow(0 12px 34px color-mix(in srgb, var(--rt-gold) 52%, transparent)); }

.lab-btn.rt-cta {
  --cut: 12px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 3.9rem;
  padding: 0 1.5rem 0 0.85rem;
  gap: 1rem;
  border: 0;
  background: var(--pg-gold-grad);
  color: var(--rt-ink);
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.lab-btn.rt-cta > * { position: relative; z-index: 1; }
.lab-btn.rt-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 40%, rgb(255 255 255 / 0.55) 50%, transparent 60%);
  transform: translateX(-130%);
  animation: rt-sheen 5.5s var(--ease-in-out) infinite;
}
.rt-cta__orb { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; background: rgb(17 16 13 / 0.92); color: var(--rt-gold); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 55%, transparent); transition: transform var(--dur-short) var(--ease-out); }
.rt-cta__orb svg { width: 1.05rem; height: 1.05rem; margin-left: 0.1rem; fill: currentColor; }
.rt-cta__orb::after { content: ""; position: absolute; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid var(--rt-gold); animation: rt-ring 2.6s var(--ease-out) infinite; pointer-events: none; }
@keyframes rt-ring { 0% { transform: scale(1); opacity: 0.7; } 80%, 100% { transform: scale(1.55); opacity: 0; } }
.lab-btn.rt-cta:disabled .rt-cta__orb::after { animation: none; opacity: 0; }
@media (hover: hover) and (pointer: fine) {
  .lab-btn.rt-cta:hover .rt-cta__orb { transform: scale(1.08); }
}
.lab-btn.rt-cta:focus-visible, .lab-btn.rt-ghost:focus-visible { outline-offset: -4px; outline-color: var(--rt-ink); }
.lab-btn.rt-ghost:focus-visible { outline-color: var(--color-focus); }
.lab-btn.rt-cta--link { padding: 0 1.6rem; }
.lab-btn.rt-cta--link::after { background: currentColor; }

.lab-btn.rt-ghost {
  --cut: 9px;
  position: relative;
  isolation: isolate;
  min-height: 3.4rem;
  border: 0;
  background: var(--pg-edge);
  color: var(--color-text-primary);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
}
.lab-btn.rt-ghost::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: -1;
  background: var(--rt-glass-strong);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  transition: background var(--dur-short) var(--ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .lab-btn.rt-ghost:hover { color: var(--color-accent-strong); }
  .lab-btn.rt-ghost:hover::before { background: var(--rt-gold-wash); }
}
.rt-continue__meta { display: inline-block; min-width: 26ch; }
.rt-continue__meta { font-size: 0.72rem; letter-spacing: 0.02em; color: var(--color-text-muted); text-transform: none; }
.rt-actions #rt-continue[hidden] { display: none; }
/* Con una partida guardada el hueco del botón «Continuar» se reserva desde el primer pintado (script en <head>). */
:root[data-rt-save] .rt-actions #rt-continue[hidden] { display: inline-flex; visibility: hidden; }
.rt-new-confirm, #rt-new[data-confirm="true"] { background: var(--rt-warn); color: var(--color-dark-surface); }

.rt-sound { display: inline-flex; align-items: center; gap: var(--lab-space-xs); font-size: var(--lab-text-sm); color: var(--color-text-secondary); cursor: pointer; }
.rt-sound input { width: 1.1rem; height: 1.1rem; accent-color: var(--rt-gold); }

.rt-facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: var(--lab-space-xl); list-style: none; }
.rt-facts li { position: relative; isolation: isolate; display: grid; gap: 0.12rem; padding: 0.6rem 1.1rem 0.65rem 0.95rem; background: var(--pg-edge); clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px); }
.rt-facts li::before { content: ""; position: absolute; inset: 1px; z-index: -1; background: var(--rt-glass); clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px); }
.rt-facts b { font-size: 1.2rem; line-height: 1.1; color: var(--color-text-primary); }
.rt-facts span { font-size: 0.62rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-text-secondary); }

.rt-message { margin-top: var(--lab-space-md); max-width: 36rem; padding: var(--lab-space-sm) var(--lab-space-md); border: 1px solid var(--color-border-strong); background: var(--rt-scrim); font-size: var(--lab-text-sm); line-height: 1.55; }
.rt-message[hidden] { display: none; }
.rt-message[data-kind="error"] { border-color: var(--rt-bad); }
.rt-message[data-kind="warn"] { border-color: var(--rt-warn); }
.rt-note { margin-top: var(--lab-space-md); max-width: 34rem; font-size: var(--lab-text-sm); line-height: 1.55; color: var(--color-text-muted); }
.rt-fallback { display: none; margin-top: var(--lab-space-md); max-width: 34rem; font-size: var(--lab-text-sm); line-height: 1.55; color: var(--color-text-secondary); }
.rt-hero[data-webgl="false"] .rt-fallback { display: block; }

/* Adorno: lo que verías arriba del juego en la semana 1 (datos reales del escenario). Solo en pantallas anchas. */
.rt-hero__hud { display: none; }
@media (min-width: 64rem) {
  .rt-hero__hud { position: absolute; z-index: 1; right: var(--lab-gutter); bottom: clamp(2rem, 6vh, 4rem); display: flex; gap: 0.5rem; pointer-events: none; animation: lab-rise 700ms var(--ease-out) 500ms backwards; }
  .rt-hudchip { position: relative; isolation: isolate; display: inline-flex; align-items: baseline; gap: 0.45rem; padding: 0.55rem 1rem 0.6rem 0.9rem; background: var(--pg-edge); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); font-size: 0.6rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--color-text-secondary); }
  .rt-hudchip::before { content: ""; position: absolute; inset: 1px; z-index: -1; background: var(--rt-glass-strong); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
  .rt-hudchip b { font-family: var(--lab-font-mono); font-size: 1.15rem; letter-spacing: 0; color: var(--color-text-primary); }
  .rt-hudchip i { font-style: normal; font-size: 0.8rem; color: var(--color-text-muted); margin-left: -0.35rem; }
}

@media (max-width: 39.99rem) {
  .rt-hero::after { background: linear-gradient(to top, var(--rt-black) 0%, var(--rt-scrim) 62%, var(--rt-scrim-soft) 100%); }
  .rt-actions { flex-direction: column; align-items: stretch; }
  .rt-actions .lab-btn { width: 100%; }
  .rt-cta-wrap { display: block; }
  .rt-actions .lab-btn--plain { justify-content: flex-start; }
  .lab-btn.rt-ghost.lab-btn--plain { justify-content: center; }
  .rt-facts li { flex: 1 1 calc(50% - 0.5rem); }
}

/* Parallaje suave del póster mientras se baja (solo donde el navegador lo ejecuta en el compositor). */
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .rt-hero__poster img { animation: rt-parallax linear both; animation-timeline: scroll(root); animation-range: 0 95vh; }
  }
}
@keyframes rt-parallax { to { transform: translateY(4%) scale(1.09); } }

/* ── Cinta ──────────────────────────────────────────────────────────────── */

.rt-ribbon { overflow: hidden; background: var(--rt-black); border-block: 1px solid var(--rt-line); }
.rt-ribbon__track { display: flex; width: max-content; animation: rt-marquee 70s linear infinite; }
.rt-ribbon__set { display: flex; flex: none; margin: 0; padding: 0; list-style: none; }
.rt-ribbon__set li { display: flex; align-items: center; gap: 2.2rem; padding: 1.1rem 2.2rem 1.1rem 0; font-family: var(--font-display); font-size: 1.3rem; font-style: italic; font-weight: 300; color: var(--color-text-secondary); white-space: nowrap; }
.rt-ribbon__set li::after { content: ""; flex: none; width: 0.42rem; height: 0.42rem; transform: rotate(45deg); background: var(--rt-gold); }
@keyframes rt-marquee { to { transform: translateX(-50%); } }

/* ── Primitivas de la página ────────────────────────────────────────────── */

.pg-panel { position: relative; isolation: isolate; background: var(--pg-edge); clip-path: var(--pg-shape); }
.pg-panel::before { content: ""; position: absolute; inset: 1px; z-index: -1; background: var(--pg-fill); clip-path: var(--pg-shape); }

.pg-i { width: 1.25rem; height: 1.25rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.pg-i--lg { width: 1.7rem; height: 1.7rem; }

.rt-sec { padding-block: clamp(4rem, 7.5vw, 6.5rem); }
.rt-head { max-width: 46rem; margin-bottom: var(--lab-space-2xl); }
.rt-kick { margin-bottom: var(--lab-space-md); color: var(--color-accent-strong); }
.pg-h3 { margin: var(--lab-space-3xl) 0 var(--lab-space-lg); font-family: var(--font-display); font-size: var(--lab-text-2xl); font-weight: 400; line-height: 1.1; text-wrap: balance; }

/* Isla oscura: bloques con la atmósfera del juego, también en el tema claro. */
.rt-island {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(60rem 26rem at 88% -6%, color-mix(in srgb, var(--rt-gold) 11%, transparent), transparent 70%),
    radial-gradient(48rem 22rem at -4% 106%, color-mix(in srgb, var(--rt-gold) 8%, transparent), transparent 70%),
    var(--rt-island);
}
.rt-island::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(var(--rt-grid) 1px, transparent 1px), linear-gradient(90deg, var(--rt-grid) 1px, transparent 1px);
  background-size: 4.5rem 4.5rem;
  -webkit-mask-image: linear-gradient(to bottom, transparent, var(--color-mask-solid) 16%, var(--color-mask-solid) 84%, transparent);
  mask-image: linear-gradient(to bottom, transparent, var(--color-mask-solid) 16%, var(--color-mask-solid) 84%, transparent);
}

/* Revelado al desplazarse. Sin JS (o con movimiento reducido) todo se ve desde el inicio. */
.rt-js [data-rv] { opacity: 0; transform: translateY(22px); transition: opacity 800ms var(--ease-out), transform 800ms var(--ease-out); transition-delay: calc(var(--i, 0) * 90ms); }
.rt-js [data-rv].is-in { opacity: 1; transform: none; }

/* ── 1 · Qué es y punto de partida ──────────────────────────────────────── */

.rt-intro { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lab-space-2xl); }
.rt-brief { --pg-cut: 18px; padding: clamp(1.4rem, 3vw, 2.2rem); min-width: 0; }
.rt-brief__t { margin-top: var(--lab-space-xs); font-family: var(--font-display); font-size: var(--lab-text-2xl); font-weight: 400; line-height: 1.08; text-wrap: balance; }
.rt-brief__facts { display: flex; flex-wrap: wrap; gap: 0.9rem 2rem; margin: var(--lab-space-lg) 0 var(--lab-space-xl); padding: 0 0 var(--lab-space-lg); list-style: none; border-bottom: 1px solid var(--lab-line); }
.rt-brief__facts li { display: grid; gap: 0.1rem; }
.rt-brief__facts b { font-size: 1.35rem; line-height: 1.1; color: var(--color-text-primary); }
.rt-brief__facts span { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-text-muted); }
.rt-brief__h { margin-bottom: var(--lab-space-md); }
.rt-goals { display: grid; gap: 1.15rem; list-style: none; }
.pg-goal__top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 0.55rem; font-size: 0.9rem; color: var(--color-text-secondary); }
.pg-goal__top b { font-size: 0.82rem; color: var(--color-text-primary); white-space: nowrap; }
.pg-goal__top i { font-style: normal; color: var(--color-accent-strong); }
.rt-gbar { position: relative; height: 6px; background: color-mix(in srgb, var(--color-text-primary) 13%, transparent); }
.rt-gbar::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), color-mix(in srgb, var(--color-bg-primary) 70%, transparent) calc(25% - 1px) 25%); }
.rt-gbar i { display: block; height: 100%; width: var(--from); transform-origin: left; background: linear-gradient(90deg, var(--color-accent), var(--color-accent-strong)); transition: transform 1100ms var(--ease-out) 400ms; }
.rt-gbar u { position: absolute; z-index: 1; left: var(--to); top: -5px; bottom: -5px; width: 2px; margin-left: -1px; background: var(--color-text-primary); text-decoration: none; opacity: 0.85; }
.rt-js [data-rv]:not(.is-in) .rt-gbar i { transform: scaleX(0); }
.rt-brief__foot { margin-top: var(--lab-space-xl); font-size: var(--lab-text-xs); line-height: 1.55; color: var(--color-text-muted); }

@media (min-width: 64rem) {
  .rt-intro { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: var(--lab-space-3xl); align-items: center; }
}

/* ── 2 · La transformación y las zonas ──────────────────────────────────── */

.rt-cmp { margin: 0; }
.rt-cmp__stage { position: relative; aspect-ratio: 1200 / 750; overflow: hidden; background: var(--rt-black); clip-path: polygon(22px 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%, 0 22px); }
.rt-cmp__stage::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 38%, transparent); }
.rt-cmp__img, .rt-cmp__img img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.rt-cmp__img--before { clip-path: inset(0 calc(100% - var(--cmp)) 0 0); }
.rt-cmp__tag { position: absolute; z-index: 3; top: 1rem; padding: 0.45rem 0.8rem; background: var(--rt-glass-strong); color: var(--color-text-primary); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }
.rt-cmp__tag--l { left: 1.9rem; }
.rt-cmp__tag--r { right: 1rem; }
.rt-cmp__handle { position: absolute; z-index: 3; inset: 0; transform: translateX(var(--cmp)); pointer-events: none; }
.rt-cmp__handle::before { content: ""; position: absolute; top: 0; bottom: 0; left: -1px; width: 2px; background: var(--rt-gold); box-shadow: 0 0 18px color-mix(in srgb, var(--rt-gold) 60%, transparent); }
.rt-cmp__handle i { position: absolute; top: 50%; left: 0; display: grid; place-items: center; width: 3.2rem; height: 3.2rem; transform: translate(-50%, -50%); background: var(--rt-gold); clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px); }
.rt-cmp__handle i::before { content: ""; position: absolute; inset: 1px; background: var(--rt-black); clip-path: polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px); }
.rt-cmp__handle i::after { content: "‹ ›"; position: relative; font-size: 1.35rem; font-weight: 300; letter-spacing: 0.1em; color: var(--rt-gold); }
.rt-cmp__range { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; touch-action: pan-y; }
.rt-cmp__range[hidden] { display: none; }
.rt-cmp__stage:has(.rt-cmp__range:focus-visible) .rt-cmp__handle i { outline: 2px solid var(--color-focus); outline-offset: 4px; }
.rt-cmp figcaption { margin-top: 0.9rem; max-width: 46rem; font-size: var(--lab-text-sm); line-height: 1.6; color: var(--color-text-muted); }

.rt-zones { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr)); }
.rt-zone { --pg-cut: 16px; display: grid; grid-template-rows: auto 1fr; min-width: 0; }
.rt-zone__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; margin: 1px 1px 0; background: var(--rt-black); }
.rt-zone__img, .rt-zone__img img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.rt-zone__img { transition: opacity 600ms var(--ease-out); }
.rt-zone__img--before { opacity: 0; }
.rt-zone[data-view="before"] .rt-zone__img--before { opacity: 1; }
.rt-zone[data-view="before"] .rt-zone__img--after { opacity: 0; }
.rt-zone__toggle { position: absolute; z-index: 2; left: 0.6rem; bottom: 0.6rem; display: flex; background: var(--rt-glass-strong); border: 1px solid var(--rt-line-strong); }
.rt-zone__toggle[hidden] { display: none; }
.rt-zone__toggle button { padding: 0.55rem 0.75rem; min-height: 2.5rem; font: inherit; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-text-secondary); background: none; border: 0; transition: color var(--dur-short), background var(--dur-short); }
.rt-zone__toggle button[aria-pressed="true"] { background: var(--pg-gold-grad); color: var(--rt-ink); }
.rt-zone__toggle button:focus-visible { outline-offset: -3px; }
.rt-zone__body { padding: 1.1rem 1.25rem 1.35rem; }
.rt-zone__name { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; line-height: 1.1; }
.rt-zone__name .pg-i { color: var(--rt-gold); }
.rt-zone__blurb { margin-top: 0.55rem; font-size: 0.84rem; line-height: 1.55; color: var(--color-text-secondary); }
.rt-lv { margin-top: 1rem; list-style: none; counter-reset: lv; border-top: 1px solid var(--rt-line); }
.rt-lv li { display: grid; grid-template-columns: 1.1rem minmax(0, 1fr) auto; gap: 0.2rem 0.7rem; align-items: baseline; padding: 0.55rem 0; border-bottom: 1px solid var(--rt-line); font-size: 0.8rem; color: var(--color-text-secondary); transition: color var(--dur-short), transform 500ms var(--ease-out), opacity 500ms var(--ease-out); transition-delay: calc(var(--k, 0) * 70ms + 300ms); }
.rt-lv li:nth-child(2) { --k: 1; } .rt-lv li:nth-child(3) { --k: 2; } .rt-lv li:nth-child(4) { --k: 3; }
.rt-lv__n { font-size: 0.7rem; color: var(--rt-gold); }
.rt-lv b { font-size: 0.74rem; font-weight: 500; color: var(--color-text-primary); }
.rt-js [data-rv]:not(.is-in) .rt-lv li { opacity: 0; transform: translateX(-10px); }
@media (hover: hover) and (pointer: fine) { .rt-lv li:hover { color: var(--color-text-primary); } }

.rt-catalog__head { display: grid; gap: 0 var(--lab-space-2xl); }
.rt-catalog { margin-top: var(--lab-space-lg); }
.rt-catalog .lab-prose { max-width: 44rem; }
.rt-fams { display: grid; gap: var(--lab-space-xl) 1.6rem; margin-top: var(--lab-space-xl); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr)); }
.rt-fam { min-width: 0; border-top: 1px solid var(--rt-gold); }
.rt-fam h4 { padding: 0.8rem 0 0.4rem; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rt-gold); }
.rt-fam ul { list-style: none; }
.rt-fam li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 0.15rem 0.7rem; align-items: center; padding: 0.62rem 0; border-bottom: 1px solid var(--rt-line); font-size: 0.86rem; color: var(--color-text-primary); }
.rt-fam em { font-style: normal; font-size: 0.68rem; color: var(--color-text-muted); }
.rt-fam__txt { grid-column: 1 / -1; font-size: 0.72rem; color: var(--color-text-muted); }
.rt-fam li:has(.rt-fam__txt) { grid-template-columns: minmax(0, 1fr) auto; }
.pg-pips { display: inline-flex; gap: 0.3rem; }
.pg-pips i { width: 0.44rem; height: 0.44rem; transform: rotate(45deg); background: var(--rt-gold); box-shadow: 0 0 7px color-mix(in srgb, var(--rt-gold) 65%, transparent); transition: transform 500ms var(--ease-out); }
.pg-pips i:nth-child(2) { transition-delay: 70ms; } .pg-pips i:nth-child(3) { transition-delay: 140ms; } .pg-pips i:nth-child(4) { transition-delay: 210ms; } .pg-pips i:nth-child(5) { transition-delay: 280ms; }
.rt-js [data-rv]:not(.is-in) .pg-pips i { transform: rotate(45deg) scale(0); }

.rt-budget { margin-top: var(--lab-space-3xl); padding-top: var(--lab-space-xl); border-top: 1px solid var(--rt-line); }
.rt-budget__nums { display: flex; flex-wrap: wrap; gap: 1.2rem 4rem; }
.rt-budget__nums p { display: grid; gap: 0.35rem; }
.rt-budget__nums b { font-variant-numeric: lining-nums; font-family: var(--font-display); font-size: clamp(2.2rem, 5vw, 3.8rem); font-weight: 300; line-height: 1; letter-spacing: -0.01em; color: var(--rt-gold); }
.rt-budget__nums p + p b { color: var(--color-text-primary); }
.rt-budget__nums span { max-width: 20rem; font-size: 0.84rem; line-height: 1.5; color: var(--color-text-secondary); }
.rt-budget__bar { position: relative; height: 10px; margin: 1.6rem 0 1rem; background: color-mix(in srgb, var(--color-text-primary) 12%, transparent); }
.rt-budget__bar i { display: block; height: 100%; width: 6.96%; transform-origin: left; background: var(--pg-gold-grad); box-shadow: 0 0 12px color-mix(in srgb, var(--rt-gold) 60%, transparent); transition: transform 1200ms var(--ease-out) 300ms; }
.rt-js [data-rv]:not(.is-in) .rt-budget__bar i { transform: scaleX(0); }
.rt-budget__txt { max-width: 44rem; font-size: var(--lab-text-base); line-height: 1.6; color: var(--color-text-secondary); }
.rt-budget__txt strong { color: var(--color-text-primary); }

/* ── 3 · Cómo se juega ──────────────────────────────────────────────────── */

.rt-loop { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lab-space-2xl); }
.rt-steps { margin-top: var(--lab-space-xl); list-style: none; border-top: 1px solid var(--lab-line); }
.rt-steps li { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: 1rem; padding-block: 1.15rem; border-bottom: 1px solid var(--lab-line); }
.rt-steps__n { font-variant-numeric: lining-nums; font-family: var(--font-display); font-size: 2.6rem; font-weight: 300; line-height: 0.95; color: var(--color-accent-strong); }
.rt-steps h3 { font-size: 1rem; font-weight: 650; }
.rt-steps p { margin-top: 0.25rem; font-size: var(--lab-text-sm); line-height: 1.6; color: var(--color-text-muted); }

.rt-shots { position: relative; padding-bottom: 4.5rem; min-width: 0; }
.rt-shot { margin: 0; border: 1px solid var(--color-border-accent); background: var(--color-dark-surface); box-shadow: 0 28px 60px -24px var(--color-shadow); }
.rt-shot picture, .rt-shot img { display: block; width: 100%; height: auto; }
.rt-shot--phone { position: absolute; right: 0.8rem; bottom: 0; width: min(38%, 13rem); animation: rt-float 8s ease-in-out infinite; }
@keyframes rt-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.rt-shots__cap { position: absolute; left: 0; bottom: 0; max-width: 45%; font-size: var(--lab-text-xs); line-height: 1.55; color: var(--color-text-muted); }

.rt-aids { display: grid; gap: 1.1rem; margin-top: var(--lab-space-3xl); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.rt-aid { padding: 1.4rem 1.4rem 1.5rem; border: 1px solid var(--lab-line); background: var(--color-surface-soft); transition: border-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.rt-aid .pg-i { color: var(--color-accent-strong); }
.rt-aid h3 { margin-top: 0.9rem; font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; line-height: 1.1; }
.rt-aid p { margin-top: 0.5rem; font-size: var(--lab-text-sm); line-height: 1.65; color: var(--color-text-muted); }
@media (hover: hover) and (pointer: fine) { .rt-aid:hover { border-color: var(--color-border-accent); transform: translateY(-3px); } }

@media (min-width: 64rem) {
  .rt-loop { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: var(--lab-space-3xl); align-items: center; }
}
@media (max-width: 39.99rem) {
  .rt-shots__cap { position: static; max-width: none; margin-top: 0.9rem; }
  .rt-shots { padding-bottom: 5rem; }
  .rt-shot--phone { right: 0.5rem; bottom: 2.4rem; width: min(34%, 9.5rem); }
  .rt-shots__cap { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; }
}

/* ── 4 · Cinco métricas ─────────────────────────────────────────────────── */

.pg-metrics { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); }
.rt-m { --pg-cut: 14px; display: grid; align-content: start; gap: 0.35rem; padding: 1.35rem 1.25rem 1.5rem; min-width: 0; transition: transform var(--dur-short) var(--ease-out); }
.rt-m .pg-i { margin-bottom: 0.7rem; padding: 0.55rem; box-sizing: content-box; border-radius: 50%; color: var(--rt-gold); background: radial-gradient(circle at 35% 30%, var(--rt-gold-dim), transparent 72%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 50%, transparent); }
.rt-m h3 { font-family: var(--font-display); font-size: 1.7rem; font-weight: 500; line-height: 1.05; }
.rt-m__tag { min-height: 2.6em; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rt-gold); }
.rt-m dl { margin-top: 0.8rem; padding-top: 0.8rem; border-top: 1px solid var(--rt-line); }
.rt-m dt { margin-top: 0.55rem; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-text-muted); }
.rt-m dt:first-child { margin-top: 0; }
.rt-m dd { margin-top: 0.2rem; font-size: 0.82rem; line-height: 1.55; color: var(--color-text-secondary); }
@media (hover: hover) and (pointer: fine) { .rt-m:hover { transform: translateY(-4px); } }

/* ── 5 · El año ─────────────────────────────────────────────────────────── */

.pg-season { margin: 0; }
.pg-season figcaption { margin-bottom: 1.2rem; }
.pg-season__cols { position: relative; display: grid; grid-template-columns: 6fr 7fr 9fr 8fr 8fr 7fr 7fr; gap: 4px; list-style: none; }
.pg-season__cols::after { content: "×1.00"; position: absolute; left: 0; right: 0; top: calc(11rem * 0.22 - 1px); height: 0; border-top: 1px dashed var(--color-border-strong); font-family: var(--lab-font-mono); font-size: 0.6rem; color: var(--color-text-muted); pointer-events: none; text-align: right; }
.pg-season__cols li { display: grid; grid-template-rows: 11rem auto auto auto; justify-items: center; min-width: 0; text-align: center; }
.pg-season__cols i { align-self: end; justify-self: stretch; height: var(--h); transform-origin: bottom; border-top: 2px solid var(--color-accent-strong); background: linear-gradient(to top, color-mix(in srgb, var(--color-accent) 6%, transparent), color-mix(in srgb, var(--color-accent) 34%, transparent)); transition: transform 900ms var(--ease-out); transition-delay: calc(var(--k, 0) * 90ms + 200ms); }
.pg-season__cols li:nth-child(2) { --k: 1; } .pg-season__cols li:nth-child(3) { --k: 2; } .pg-season__cols li:nth-child(4) { --k: 3; } .pg-season__cols li:nth-child(5) { --k: 4; } .pg-season__cols li:nth-child(6) { --k: 5; } .pg-season__cols li:nth-child(7) { --k: 6; }
.pg-season__cols li:last-child i { background: linear-gradient(to top, color-mix(in srgb, var(--color-accent) 10%, transparent), color-mix(in srgb, var(--color-accent) 55%, transparent)); }
.pg-season__cols b { margin-top: 0.6rem; font-size: 0.8rem; color: var(--color-text-primary); }
.pg-season__cols span { margin-top: 0.15rem; font-size: 0.72rem; font-weight: 600; color: var(--color-text-secondary); }
.pg-season__cols em { font-style: normal; font-size: 0.62rem; color: var(--color-text-muted); }
.rt-js [data-rv]:not(.is-in) .pg-season__cols i { transform: scaleY(0); }

.rt-cal { display: grid; gap: var(--lab-space-xl) var(--lab-space-3xl); margin-top: var(--lab-space-3xl); }
.rt-cal .pg-h3 { margin-top: 0; }
.rt-unlocks { list-style: none; border-top: 1px solid var(--lab-line); }
.rt-unlocks li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; align-items: baseline; padding: 0.8rem 0; border-bottom: 1px solid var(--lab-line); font-size: var(--lab-text-sm); line-height: 1.55; color: var(--color-text-secondary); }
.rt-unlocks b { font-size: 0.8rem; color: var(--color-accent-strong); }
.rt-unlocks strong { color: var(--color-text-primary); font-weight: 600; }
@media (min-width: 56rem) { .rt-cal { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

.rt-mood { margin-top: var(--lab-space-3xl); }
.rt-mood__cap { max-width: 44rem; margin-bottom: var(--lab-space-lg); font-size: var(--lab-text-base); line-height: 1.6; color: var(--color-text-secondary); }
.rt-mood__grid { display: grid; gap: 0.8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.rt-mood__grid figure { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--lab-line); background: var(--color-dark-surface); }
.rt-mood__grid picture, .rt-mood__grid img { display: block; width: 100%; height: auto; }
.rt-mood__grid img { transition: transform 900ms var(--ease-out); }
.rt-mood__grid figcaption { position: absolute; left: 0.7rem; bottom: 0.7rem; padding: 0.4rem 0.7rem; background: var(--rt-glass-strong); color: var(--color-dark-text); }
@media (hover: hover) and (pointer: fine) { .rt-mood__grid figure:hover img { transform: scale(1.04); } }

.rt-events { margin-top: var(--lab-space-3xl); }
.rt-events .pg-h3 { margin-top: 0; }
.rt-events__head .lab-prose { max-width: 44rem; }
.rt-evcards { display: grid; gap: 1.1rem; align-items: start; margin-top: var(--lab-space-xl); background: none; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19.5rem), 1fr)); }
.rt-ev { --pg-cut: 16px; padding: 1.5rem 1.4rem 1.6rem; min-width: 0; }
.rt-ev__k { font-size: 0.64rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rt-gold); }
.rt-ev__k::before { content: ""; display: inline-block; width: 0.38rem; height: 0.38rem; margin-right: 0.55rem; vertical-align: 0.08em; transform: rotate(45deg); background: currentColor; }
.rt-ev__t { margin-top: 0.5rem; font-family: var(--font-display); font-size: 1.85rem; font-weight: 400; line-height: 1.05; text-wrap: balance; color: var(--color-text-primary); }
.rt-ev__b { margin-top: 0.8rem; font-size: 0.86rem; line-height: 1.6; color: var(--color-text-secondary); }
.rt-ev__opts { display: grid; gap: 0.45rem; margin-top: 1.1rem; }
.rt-ev details { background: rgb(20 17 12 / 0.92); border: 1px solid var(--rt-line); transition: border-color var(--dur-short) var(--ease-out), background var(--dur-short) var(--ease-out); }
.rt-ev details:hover { border-color: var(--rt-line-strong); }
.rt-ev details[open] { border-color: var(--rt-gold); background: var(--rt-gold-wash); }
.rt-ev summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem; align-items: start; padding: 0.75rem 0.85rem; list-style: none; cursor: pointer; font-size: 0.84rem; font-weight: 650; line-height: 1.35; color: var(--color-text-primary); }
.rt-ev summary::-webkit-details-marker { display: none; }
.rt-ev summary::after { grid-column: 2; grid-row: 1; content: "+"; font-size: 1.1rem; font-weight: 400; line-height: 1; color: var(--rt-gold); transition: transform var(--dur-short) var(--ease-out); }
.rt-ev details[open] summary::after { transform: rotate(45deg); }
.rt-ev summary:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -3px; }
.rt-ev__tags { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0.3rem; }
.rt-ev__tags i { padding: 0.15rem 0.5rem; border: 1px solid var(--rt-line-strong); font-size: 0.62rem; font-style: normal; font-weight: 600; letter-spacing: 0.04em; color: var(--color-text-secondary); }
.rt-ev details p { padding: 0 0.85rem 0.85rem; font-size: 0.82rem; line-height: 1.55; color: var(--color-text-secondary); animation: rt-open 420ms var(--ease-out); }
@keyframes rt-open { from { opacity: 0; transform: translateY(-4px); } }

/* ── 6 · Tesis y sinergias ──────────────────────────────────────────────── */

.rt-thesis { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.rt-t { --pg-cut: 16px; display: grid; align-content: start; gap: 0.5rem; padding: 1.5rem 1.5rem 1.7rem; min-width: 0; transition: transform var(--dur-short) var(--ease-out); }
.rt-t__g { height: 3.4rem; font-family: var(--font-display); font-size: 4.4rem; font-weight: 300; line-height: 0.8; color: var(--rt-gold); transition: transform 600ms var(--ease-out); }
.rt-t__g--i { display: flex; align-items: center; font-size: 1rem; }
.rt-t__g--i .pg-i { width: 2.4rem; height: 2.4rem; padding: 0.6rem; box-sizing: border-box; border-radius: 50%; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 50%, transparent); background: radial-gradient(circle at 35% 30%, var(--rt-gold-dim), transparent 72%); }
.rt-t h3 { font-family: var(--font-display); font-size: 1.6rem; font-weight: 500; line-height: 1.08; text-wrap: balance; }
.rt-t p { font-size: 0.86rem; line-height: 1.6; color: var(--color-text-secondary); }
.rt-js [data-rv]:not(.is-in) .rt-t__g:not(.rt-t__g--i) { transform: rotate(-24deg) scale(0.7); }
@media (hover: hover) and (pointer: fine) { .rt-t:hover { transform: translateY(-4px); } .rt-t:hover .rt-t__g:not(.rt-t__g--i) { transform: rotate(-8deg); } }

.rt-syn { display: grid; gap: 0 2rem; list-style: none; border-top: 1px solid var(--rt-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr)); }
.rt-syn li { display: grid; gap: 0.35rem; padding: 1.1rem 0 1.2rem; border-bottom: 1px solid var(--rt-line); }
.rt-syn b { display: flex; align-items: center; gap: 0.65rem; font-size: 0.9rem; font-weight: 650; color: var(--color-text-primary); }
.rt-syn b::before { content: ""; flex: none; width: 0.42rem; height: 0.42rem; transform: rotate(45deg); background: var(--rt-gold); box-shadow: 0 0 8px color-mix(in srgb, var(--rt-gold) 70%, transparent); }
.rt-syn span { font-size: 0.82rem; line-height: 1.55; color: var(--color-text-muted); }

/* ── 7 · Estrategias y final ────────────────────────────────────────────── */

.rt-final { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lab-space-2xl); }
.rt-tiers { margin-top: var(--lab-space-xl); }
.rt-tiers ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin-top: 1rem; list-style: none; }
.rt-tiers li { display: grid; grid-template-rows: 8.5rem auto auto; justify-items: center; text-align: center; min-width: 0; }
.rt-tiers i { align-self: end; justify-self: stretch; height: var(--h); transform-origin: bottom; border-top: 2px solid var(--color-accent-strong); background: linear-gradient(to top, color-mix(in srgb, var(--color-accent) 6%, transparent), color-mix(in srgb, var(--color-accent) 36%, transparent)); transition: transform 900ms var(--ease-out); }
.rt-tiers li:nth-child(2) i { transition-delay: 90ms; } .rt-tiers li:nth-child(3) i { transition-delay: 180ms; } .rt-tiers li:nth-child(4) i { transition-delay: 270ms; } .rt-tiers li:nth-child(5) i { transition-delay: 360ms; }
.rt-tiers li:last-child i { background: linear-gradient(to top, color-mix(in srgb, var(--color-accent) 12%, transparent), color-mix(in srgb, var(--color-accent) 60%, transparent)); }
.rt-tiers b { margin-top: 0.55rem; font-size: 0.82rem; color: var(--color-text-primary); }
.rt-tiers span { margin-top: 0.15rem; font-size: 0.7rem; line-height: 1.35; color: var(--color-text-muted); }
.rt-js [data-rv]:not(.is-in) .rt-tiers i { transform: scaleY(0); }

.rt-profiles { display: grid; gap: 0.9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; }
.rt-pf { --pg-cut: 14px; display: grid; align-content: start; gap: 0.5rem; padding: 1.3rem 1.25rem 1.4rem; min-width: 0; transition: transform var(--dur-short) var(--ease-out); }
.rt-pf--wide { grid-column: 1 / -1; }
.rt-pf h3 { font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; line-height: 1.05; color: var(--color-accent-strong); }
.rt-pf p { font-size: 0.86rem; line-height: 1.55; color: var(--color-text-secondary); }
.rt-pf small { margin-top: 0.3rem; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.5; color: var(--color-text-muted); }
@media (hover: hover) and (pointer: fine) { .rt-pf:hover { transform: translateY(-3px); } }
@media (max-width: 34rem) { .rt-profiles { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 64rem) { .rt-final { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: var(--lab-space-3xl); align-items: start; } }

/* ── 8 · Progreso y guardado ────────────────────────────────────────────── */

.rt-save { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lab-space-2xl); }
.rt-slot { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; margin-top: var(--lab-space-xl); padding: 0.9rem 1.2rem; border: 1px dashed var(--rt-line-strong); }
.rt-slot__b { padding: 0.7rem 1.1rem; background: var(--pg-gold-grad); color: var(--rt-ink); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; clip-path: polygon(7px 0, 100% 0, 100% calc(100% - 7px), calc(100% - 7px) 100%, 0 100%, 0 7px); }
.rt-slot__m { font-size: 0.78rem; color: var(--color-text-secondary); }
.rt-slot__e { font-size: 0.64rem; font-style: italic; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-muted); }
.rt-savelist { display: grid; gap: 0 2rem; list-style: none; border-top: 1px solid var(--rt-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16.5rem), 1fr)); align-content: start; }
.rt-savelist li { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr); gap: 0.9rem; padding: 1.2rem 0 1.3rem; border-bottom: 1px solid var(--rt-line); }
.rt-savelist .pg-i { width: 2.4rem; height: 2.4rem; padding: 0.6rem; border-radius: 50%; color: var(--rt-gold); background: radial-gradient(circle at 35% 30%, var(--rt-gold-dim), transparent 72%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 50%, transparent); }
.rt-savelist h3 { font-size: 0.95rem; font-weight: 650; color: var(--color-text-primary); }
.rt-savelist p { margin-top: 0.3rem; font-size: 0.82rem; line-height: 1.6; color: var(--color-text-muted); }
@media (min-width: 64rem) { .rt-save { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--lab-space-3xl); } }

/* ── 9 · Tecnología ─────────────────────────────────────────────────────── */

.rt-specs { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.rt-spec { --pg-cut: 14px; display: grid; align-content: start; gap: 0.6rem; padding: 1.5rem 1.4rem 1.6rem; min-width: 0; }
.rt-spec__n { font-variant-numeric: lining-nums; font-family: var(--font-display); font-size: clamp(2.5rem, 5vw, 3.7rem); font-weight: 300; line-height: 1; letter-spacing: -0.01em; color: var(--color-accent-strong); }
.rt-spec p { font-size: 0.84rem; line-height: 1.6; color: var(--color-text-secondary); }
.rt-tech { margin-top: var(--lab-space-2xl); }

/* ── 10 · Preguntas ─────────────────────────────────────────────────────── */

.rt-faq { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lab-space-xl); }
.rt-faq__list { border-top: 1px solid var(--lab-line); }
.rt-faq details { border-bottom: 1px solid var(--lab-line); }
.rt-faq summary { position: relative; padding: 1.15rem 2.6rem 1.15rem 0; list-style: none; cursor: pointer; font-family: var(--font-display); font-size: var(--lab-text-xl); font-weight: 400; line-height: 1.2; transition: color var(--dur-short) var(--ease-out); }
.rt-faq summary::-webkit-details-marker { display: none; }
.rt-faq summary::after { content: "+"; position: absolute; right: 0.2rem; top: 50%; margin-top: -0.7rem; font-family: var(--font-body); font-size: 1.5rem; font-weight: 300; line-height: 1.4; color: var(--color-accent-strong); transition: transform var(--dur-short) var(--ease-out); }
.rt-faq details[open] summary::after { transform: rotate(45deg); }
.rt-faq details p { max-width: 38rem; padding-bottom: 1.3rem; font-size: var(--lab-text-base); line-height: 1.7; color: var(--color-text-secondary); animation: rt-open 420ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .rt-faq summary:hover { color: var(--color-accent-strong); } }
@media (min-width: 60rem) { .rt-faq { grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: var(--lab-space-3xl); } }

/* ── 11 · Cierre ────────────────────────────────────────────────────────── */

.rt-close { position: relative; isolation: isolate; overflow: clip; background: var(--rt-black); }
.rt-close__bg { position: absolute; inset: 0; z-index: -2; }
.rt-close__bg picture, .rt-close__bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; }
.rt-close::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--rt-black) 0%, color-mix(in srgb, var(--rt-black) 82%, transparent) 46%, color-mix(in srgb, var(--rt-black) 62%, transparent) 100%); }
.rt-close__play { margin-top: var(--lab-space-xl); font-size: var(--lab-text-sm); color: var(--color-text-secondary); }
.rt-close__play a { color: var(--color-accent-strong); text-underline-offset: 0.25em; }
.rt-next__cards { display: grid; gap: 0.9rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0.9rem 0 var(--lab-space-lg); list-style: none; }
.rt-nx { --pg-cut: 12px; display: block; overflow: hidden; color: var(--color-text-primary); text-decoration: none; }
.rt-nx picture, .rt-nx img { display: block; width: calc(100% - 2px); height: auto; margin: 1px 1px 0; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 700ms var(--ease-out); }
.rt-nx picture { overflow: hidden; width: calc(100% - 2px); }
.rt-nx picture img { width: 100%; margin: 0; }
.rt-nx__t { display: grid; gap: 0.2rem; padding: 0.8rem 1rem 1rem; }
.rt-nx__t b { font-family: var(--font-display); font-size: 1.3rem; font-weight: 500; line-height: 1.1; transition: color var(--dur-short) var(--ease-out); }
.rt-nx:focus-visible { outline-offset: -4px; }
@media (hover: hover) and (pointer: fine) { .rt-nx:hover img { transform: scale(1.05); } .rt-nx:hover .rt-nx__t b { color: var(--color-accent-strong); } }
@media (max-width: 30rem) { .rt-next__cards { grid-template-columns: minmax(0, 1fr); } }

/* ── Movimiento reducido ───────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  .rt-in, .rt-hero__hud { animation-duration: 1ms; animation-delay: 0ms; }
  .rt-js [data-rv] { opacity: 1; transform: none; transition: none; }
  .rt-js [data-rv]:not(.is-in) .rt-gbar i, .rt-js [data-rv]:not(.is-in) .rt-budget__bar i, .rt-js [data-rv]:not(.is-in) .pg-season__cols i, .rt-js [data-rv]:not(.is-in) .rt-tiers i { transform: none; }
  .rt-js [data-rv]:not(.is-in) .rt-lv li { opacity: 1; transform: none; }
  .rt-js [data-rv]:not(.is-in) .pg-pips i { transform: rotate(45deg); }
  .rt-js [data-rv]:not(.is-in) .rt-t__g:not(.rt-t__g--i) { transform: none; }
  .lab-btn.rt-cta::before, .rt-cta__orb::after, .rt-dot, .rt-shot--phone { animation: none; }
  .rt-ribbon__track { width: auto; animation: none; }
  .rt-ribbon__set { flex-wrap: wrap; }
  .rt-ribbon__set--clone { display: none; }
  .rt-gbar i, .rt-budget__bar i, .pg-season__cols i, .rt-tiers i, .rt-zone__img, .rt-mood__grid img, .rt-nx img, .rt-t, .rt-t__g, .rt-m, .rt-aid, .rt-pf, .pg-pips i, .rt-lv li { transition-duration: 1ms; transition-delay: 0ms; }
  .rt-ev details p, .rt-faq details p { animation: none; }
}

/* ── Móvil estrecho ─────────────────────────────────────────────────────── */

@media (max-width: 39.99rem) {
  .pg-season__cols { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
  .pg-season__cols::after { display: none; }
  .pg-season__cols li { grid-template-columns: 5.2rem minmax(0, 1fr) 3.4rem; grid-template-rows: auto auto; align-items: center; justify-items: start; column-gap: 0.8rem; text-align: left; }
  .pg-season__cols i { grid-column: 2; grid-row: 1 / span 2; align-self: center; justify-self: start; width: var(--h); height: 0.9rem; border-top: 0; border-left: 2px solid var(--color-accent-strong); background: linear-gradient(to right, color-mix(in srgb, var(--color-accent) 8%, transparent), color-mix(in srgb, var(--color-accent) 40%, transparent)); transform-origin: left; }
  .pg-season__cols b { grid-column: 3; grid-row: 1 / span 2; margin: 0; justify-self: end; }
  .pg-season__cols span { grid-column: 1; grid-row: 1; margin: 0; }
  .pg-season__cols em { grid-column: 1; grid-row: 2; }
  .rt-js [data-rv]:not(.is-in) .pg-season__cols i { transform: scaleX(0); }
  .rt-tiers li { grid-template-rows: 7rem auto auto; }
  .rt-tiers span { font-size: 0.62rem; }
  .rt-cmp__tag--l { left: 1.6rem; }
  .rt-cmp__handle i { width: 2.6rem; height: 2.6rem; }
}

.rt-faq__aside .lab-prose { margin-top: var(--lab-space-md); font-size: var(--lab-text-base); }
.rt-faq__aside .lab-btn { margin-top: var(--lab-space-lg); }
@media (min-width: 60rem) { .rt-faq__aside { position: sticky; top: calc(var(--lab-nav) + 2rem); align-self: start; } }

/* ── Escenario ──────────────────────────────────────────────────────────── */

html.dx-locked,
html.dx-locked body { overflow: hidden; overscroll-behavior: none; }
html.dx-locked body { position: fixed; left: 0; right: 0; width: 100%; }

.rt-stage {
  position: fixed;
  inset: 0;
  z-index: var(--lab-z-stage);
  height: 100dvh;
  background: var(--rt-black);
  overflow: hidden;
  clip-path: circle(0 at var(--rt-origin-x, 50%) var(--rt-origin-y, 70%));
  transition: clip-path 720ms var(--ease-in-out);
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  outline: none;
  font-family: var(--font-body);
}
.rt-stage[hidden] { display: none; }
.rt-stage[data-open="true"] { clip-path: circle(150vmax at var(--rt-origin-x, 50%) var(--rt-origin-y, 70%)); }

.rt-stage__canvas, .rt-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: none; }
.rt-stage__canvas { cursor: grab; }
.rt-stage__canvas[data-dragging="true"] { cursor: grabbing; }
.rt-canvas:focus-visible { outline: 2px solid var(--rt-gold); outline-offset: -4px; }
.rt-stage__vignette { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 46%, transparent 58%, var(--rt-scrim-soft) 100%); }

/* ── Carga ──────────────────────────────────────────────────────────────── */

.rt-loader { position: absolute; inset: 0; z-index: 30; display: grid; place-content: center; justify-items: center; gap: var(--lab-space-md); padding: var(--lab-space-lg); background: var(--rt-black); text-align: center; transition: opacity 620ms var(--ease-in-out) 160ms; }
.rt-loader[hidden] { display: none; }
.rt-loader__mark { position: relative; width: clamp(6.5rem, 22vmin, 9rem); aspect-ratio: 1; margin-bottom: var(--lab-space-md); transition: transform 800ms var(--ease-in), opacity 520ms var(--ease-in) 240ms; }
.rt-loader__mark svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.rt-loader__mark svg:first-child { color: var(--rt-gold-dim); }
.rt-loader__mark svg:last-child { color: var(--color-accent-strong); -webkit-mask-image: conic-gradient(from -40deg, var(--color-mask-solid) calc(var(--rt-progress, 0) * 1turn), transparent 0); mask-image: conic-gradient(from -40deg, var(--color-mask-solid) calc(var(--rt-progress, 0) * 1turn), transparent 0); }
.rt-loader__value { font-family: var(--font-display); font-size: var(--lab-text-2xl); font-weight: 300; font-variant-numeric: tabular-nums; line-height: 1; }
.rt-loader__tip { max-width: 22rem; min-height: 2.8em; font-family: var(--font-display); font-size: var(--lab-text-lg); font-style: italic; line-height: 1.4; color: var(--color-text-secondary); }
.rt-loader__exit { margin-top: var(--lab-space-sm); }
.rt-loader[data-state="done"] { opacity: 0; pointer-events: none; }
.rt-loader[data-state="done"] .rt-loader__mark { transform: scale(13); opacity: 0; }
.rt-loader[data-state="done"] .rt-loader__label, .rt-loader[data-state="done"] .rt-loader__value, .rt-loader[data-state="done"] .rt-loader__tip, .rt-loader[data-state="done"] .rt-loader__exit { opacity: 0; transition: opacity 200ms var(--ease-in); }

.rt-error { position: absolute; inset: 0; z-index: 40; display: grid; place-items: center; padding: var(--lab-space-lg); background: color-mix(in srgb, var(--rt-black) 94%, transparent); }
.rt-error[hidden] { display: none; }
.rt-error__inner { width: min(100%, 34rem); }
.rt-error__title { font-size: var(--lab-text-2xl); margin-top: var(--lab-space-xs); }
.rt-error__text { margin-top: var(--lab-space-md); font-size: var(--lab-text-base); line-height: 1.6; color: var(--color-text-secondary); }
.rt-error__actions { display: flex; flex-wrap: wrap; gap: var(--lab-space-md); margin-top: var(--lab-space-lg); }

.rt-context { display: none; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: var(--lab-space-sm) var(--lab-space-md); background: var(--rt-glass-strong); border: 1px solid var(--rt-line-strong); z-index: 35; }
.rt-stage[data-context="lost"] .rt-context { display: block; }

/* ═══════════════════════ INTERFAZ DEL JUEGO ═══════════════════════
 * Lenguaje visual: «cristal ahumado + champán» con esquinas biseladas (arriba-izquierda y abajo-derecha) como en la
 * interfaz de un juego de producción. Cada panel es una forma recortada con clip-path; el borde de 1 px sale de un
 * degradado de fondo y el relleno de un pseudo-elemento inset. clip-path recorta también el contorno de foco, así que
 * el foco de los elementos biselados se dibuja hacia adentro (outline-offset negativo).
 */

.rt-ui {
  position: absolute; inset: 0; pointer-events: none; font-size: 0.875rem;
  --rt-cut: 9px;
  --rt-shape: polygon(var(--rt-cut) 0, 100% 0, 100% calc(100% - var(--rt-cut)), calc(100% - var(--rt-cut)) 100%, 0 100%, 0 var(--rt-cut));
  --rt-edge: linear-gradient(135deg, color-mix(in srgb, var(--rt-gold) 78%, transparent), color-mix(in srgb, var(--rt-gold) 16%, transparent) 36%, color-mix(in srgb, var(--color-dark-text) 9%, transparent) 64%, color-mix(in srgb, var(--rt-gold) 48%, transparent));
  --rt-edge-hot: linear-gradient(135deg, var(--rt-gold), color-mix(in srgb, var(--rt-gold) 40%, transparent) 45%, color-mix(in srgb, var(--rt-gold) 22%, transparent) 70%, var(--rt-gold));
  --rt-fill: linear-gradient(180deg, rgb(35 31 24 / 0.9), rgb(14 12 9 / 0.94));
  --rt-fill-hot: linear-gradient(180deg, rgb(62 52 30 / 0.94), rgb(26 21 12 / 0.96));
  --rt-gold-hi: color-mix(in srgb, var(--rt-gold) 68%, #fff);
  --rt-gold-lo: color-mix(in srgb, var(--rt-gold) 74%, #5a3d00);
  --rt-gold-grad: linear-gradient(180deg, var(--rt-gold-hi), var(--rt-gold) 46%, var(--rt-gold-lo));
  --rt-num: var(--font-body);
}
.rt-ui button, .rt-ui a, .rt-ui input, .rt-ui .rt-sheet, .rt-ui .rt-modal, .rt-ui .rt-zonetag { pointer-events: auto; }
.rt-ui button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; text-align: inherit; }
.rt-ui button:disabled { cursor: default; }
.rt-ui :focus-visible { outline: 2px solid var(--rt-gold); outline-offset: 2px; }
.rt-ui .lab-sr { position: absolute; }
.rt-ui .lab-code { font-family: var(--rt-num); font-variant-numeric: tabular-nums lining-nums; letter-spacing: -0.01em; }
.rt-i { width: 1.25rem; height: 1.25rem; flex: none; }
.rt-i--s { width: 1rem; height: 1rem; }

/* Panel biselado: base común. El relleno vive en ::before para dejar ver el degradado del borde. */
.rt-ui .rt-metric, .rt-ui .rt-cash, .rt-ui .rt-week, .rt-ui .rt-iconbtn, .rt-ui .rt-dock__tab, .rt-ui .rt-insight, .rt-ui .rt-zonetag,
.rt-ui .rt-toast, .rt-ui .rt-card, .rt-ui .rt-chip, .rt-ui .rt-tag, .rt-ui .rt-seg, .rt-ui .rt-opt, .rt-ui .rt-choice, .rt-ui .rt-saved,
.rt-ui .rt-forecast > div, .rt-ui .rt-insights li, .rt-ui .rt-sheet, .rt-ui .rt-modal__card, .rt-ui .rt-report__insight, .rt-ui .rt-final__triple,
.rt-ui .rt-final__bridge, .rt-ui .rt-message {
  position: relative; isolation: isolate; background: var(--rt-edge); clip-path: var(--rt-shape);
}
.rt-ui .rt-metric::before, .rt-ui .rt-cash::before, .rt-ui .rt-week::before, .rt-ui .rt-iconbtn::before, .rt-ui .rt-dock__tab::before, .rt-ui .rt-insight::before,
.rt-ui .rt-zonetag::before, .rt-ui .rt-toast::before, .rt-ui .rt-card::before, .rt-ui .rt-chip::before, .rt-ui .rt-tag::before, .rt-ui .rt-seg::before,
.rt-ui .rt-opt::before, .rt-ui .rt-choice::before, .rt-ui .rt-saved::before, .rt-ui .rt-forecast > div::before, .rt-ui .rt-insights li::before,
.rt-ui .rt-sheet::before, .rt-ui .rt-modal__card::before, .rt-ui .rt-report__insight::before, .rt-ui .rt-final__triple::before, .rt-ui .rt-final__bridge::before, .rt-ui .rt-message::before {
  content: ""; position: absolute; inset: 1px; z-index: -1; clip-path: var(--rt-shape); background: var(--rt-fill); transition: background var(--dur-short) var(--ease-out);
}
.rt-ui .rt-metric:focus-visible, .rt-ui .rt-iconbtn:focus-visible, .rt-ui .rt-dock__tab:focus-visible, .rt-ui .rt-insight:focus-visible, .rt-ui .rt-zonetag:focus-visible,
.rt-ui .rt-chip:focus-visible, .rt-ui .rt-opt:focus-visible, .rt-ui .rt-choice:focus-visible, .rt-ui .rt-seg__btn:focus-visible, .rt-ui .rt-buy:focus-visible, .rt-ui .rt-advance:focus-visible, .rt-ui .rt-tab:focus-visible { outline-offset: -4px; }

/* ── Barra superior ─────────────────────────────────────────────────────── */
.rt-top { position: absolute; z-index: 5; left: 0; right: 0; top: 0; display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 0.45rem; padding: var(--rt-safe-top) var(--rt-safe-right) 0 var(--rt-safe-left); pointer-events: none; }
.rt-top::before { content: ""; position: absolute; inset: 0 0 -3.2rem; z-index: -1; background: linear-gradient(to bottom, rgb(6 5 4 / 0.74), rgb(6 5 4 / 0.34) 55%, transparent); }
.rt-top__left { display: flex; gap: 0.35rem; pointer-events: auto; }
.rt-ui .rt-iconbtn { --rt-cut: 7px; width: 2.8rem; height: 2.8rem; display: inline-grid; place-items: center; color: var(--color-text-primary); transition: color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out); }
.rt-ui .rt-iconbtn:hover { color: var(--rt-gold); background: var(--rt-edge-hot); transform: translateY(-1px); }
.rt-ui .rt-iconbtn:hover::before { background: var(--rt-fill-hot); }
.rt-ui .rt-iconbtn:active { transform: none; }
.rt-ui .rt-iconbtn .rt-i { width: 1.2rem; height: 1.2rem; }
.rt-zonenav { position: absolute; z-index: 9; left: var(--rt-safe-left); top: calc(var(--rt-safe-top) + 6.6rem); display: flex; flex-wrap: wrap; gap: 0.3rem; }
.rt-zonenav button { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rt-zonenav button:focus-visible { position: static; width: auto; height: auto; clip-path: none; padding: 0.6rem 0.9rem; background: rgb(14 12 9 / 0.96); border: 1px solid var(--rt-gold); font-size: 0.74rem; font-weight: 600; letter-spacing: 0.08em; outline-offset: 2px; }

/* Semana */
.rt-ui .rt-week { --rt-cut: 8px; min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 0.65rem; padding: 0.32rem 1rem 0.6rem 0.75rem; min-height: 2.8rem; align-self: start; justify-self: start; }
.rt-week__ico { display: none; }
.rt-week__main { display: grid; line-height: 1.05; }
.rt-week .lab-label { font-size: 0.56rem; letter-spacing: 0.2em; color: var(--color-text-secondary); }
.rt-week__num { font-size: 1.22rem; font-weight: 700; line-height: 1.05; color: var(--color-text-primary); }
.rt-week__num i { font-style: normal; font-size: 0.66em; font-weight: 500; color: var(--color-text-muted); margin-left: 0.05em; }
.rt-season { display: inline-flex; align-items: center; gap: 0.4rem; min-width: 0; font-size: 0.56rem; font-weight: 700; letter-spacing: 0.14em; line-height: 1.15; text-transform: uppercase; color: var(--rt-gold); text-wrap: balance; }
.rt-season i { flex: none; width: 0.42rem; height: 0.42rem; transform: rotate(45deg); background: currentColor; box-shadow: 0 0 8px currentColor; }
.rt-season[data-season="low"], .rt-season[data-season="low2"] { color: color-mix(in srgb, var(--color-text-secondary) 90%, var(--rt-gold)); }
.rt-season[data-season="high"], .rt-season[data-season="holiday"] { color: #ffd78a; }
.rt-rail { position: absolute; left: 0.7rem; right: 0.8rem; bottom: 0.3rem; height: 3px; background: rgb(255 255 255 / 0.1); }
.rt-rail::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), rgb(0 0 0 / 0.55) calc(25% - 1px) 25%); }
.rt-rail i { display: block; height: 100%; background: linear-gradient(90deg, var(--rt-gold-lo), var(--rt-gold-hi)); box-shadow: 0 0 8px color-mix(in srgb, var(--rt-gold) 70%, transparent); transition: width 600ms var(--ease-out); }

/* Caja */
.rt-ui .rt-cash { --rt-cut: 8px; display: grid; grid-template-columns: auto; justify-items: end; gap: 0.1rem; padding: 0.34rem 0.8rem 0.4rem 0.9rem; text-align: right; align-self: start; min-width: 7rem; }
.rt-cash__ico { display: none; }
.rt-cash__main { display: grid; justify-items: end; line-height: 1.05; }
.rt-cash .lab-label { font-size: 0.56rem; letter-spacing: 0.2em; color: var(--color-text-secondary); }
.rt-cash b { font-size: 1.28rem; font-weight: 700; line-height: 1.05; color: var(--color-text-primary); text-shadow: 0 0 18px color-mix(in srgb, var(--rt-gold) 28%, transparent); }
.rt-cash[data-low="true"] b { color: var(--rt-warn); }
.rt-cash[data-neg="true"] b { color: var(--rt-bad); }
.rt-cash__delta { font-family: var(--rt-num); font-variant-numeric: tabular-nums; font-size: 0.64rem; font-weight: 600; color: var(--color-text-muted); }
.rt-cash__delta[data-sign="pos"] { color: var(--rt-good); }
.rt-cash__delta[data-sign="neg"] { color: var(--rt-bad); }
.rt-cash__delta i { font-style: normal; opacity: 0.7; font-weight: 500; }
.rt-ui .rt-saved { --rt-cut: 6px; position: absolute; z-index: 6; right: var(--rt-safe-right); top: calc(var(--rt-safe-top) + 7.9rem); padding: 0.22rem 0.55rem; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.16em; color: var(--rt-good); opacity: 0; transition: opacity 260ms var(--ease-out); pointer-events: none; }
.rt-saved[data-visible="true"] { opacity: 1; }
.rt-saved[data-kind="warn"] { color: var(--rt-warn); }

/* ── Cinco métricas ─────────────────────────────────────────────────────── */
.rt-metrics { position: absolute; z-index: 6; left: var(--rt-safe-left); right: var(--rt-safe-right); top: calc(var(--rt-safe-top) + 3.55rem); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.28rem; pointer-events: none; filter: drop-shadow(0 8px 14px rgb(0 0 0 / 0.38)); }
.rt-ui .rt-metric { --rt-cut: 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "body delta" "bar bar"; align-items: start; gap: 0 0.2rem; min-height: 3.45rem; padding: 0.42rem 0.5rem 0.55rem 0.6rem; text-align: left; transition: transform var(--dur-short) var(--ease-out); }
.rt-ui .rt-metric:hover { background: var(--rt-edge-hot); transform: translateY(-1px); }
.rt-ui .rt-metric:hover::before { background: var(--rt-fill-hot); }
.rt-ui .rt-metric::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; pointer-events: none; background: radial-gradient(120% 140% at 30% 0%, var(--rt-flash, transparent), transparent 70%); }
.rt-metric__ico { grid-area: ico; display: none; }
.rt-metric__body { grid-area: body; display: grid; min-width: 0; line-height: 1.05; }
.rt-metric__label { font-size: 0.56rem; font-weight: 700; letter-spacing: 0.18em; color: var(--color-text-secondary); }
.rt-metric__value { font-size: 1.12rem; font-weight: 700; line-height: 1.2; color: var(--color-text-primary); }
.rt-metric__delta { grid-area: delta; display: inline-flex; align-items: center; gap: 0.12rem; padding-top: 0.05rem; font-family: var(--rt-num); font-size: 0.6rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--color-text-muted); }
.rt-metric__delta b { font-size: 0.5rem; }
.rt-metric__delta em { display: none; font-style: normal; }
.rt-metric__delta[data-trend="up"] { color: var(--rt-good); }
.rt-metric__delta[data-trend="down"] { color: var(--rt-bad); }
.rt-metric__bar { grid-area: bar; position: relative; height: 4px; margin-top: 0.38rem; background: rgb(255 255 255 / 0.1); }
.rt-metric__bar::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), rgb(0 0 0 / 0.55) calc(25% - 1px) 25%); }
.rt-metric__bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--rt-gold-lo), var(--rt-gold-hi)); box-shadow: 0 0 9px color-mix(in srgb, var(--rt-gold) 65%, transparent); transition: width 700ms var(--ease-out); }
.rt-metric__bar u { position: absolute; top: -4px; bottom: -3px; width: 2px; margin-left: -1px; background: #fff; opacity: 0.85; text-decoration: none; box-shadow: 0 0 6px rgb(255 255 255 / 0.6); z-index: 1; }
.rt-metric[data-flash="up"] { --rt-flash: color-mix(in srgb, var(--rt-good) 55%, transparent); }
.rt-metric[data-flash="down"] { --rt-flash: color-mix(in srgb, var(--rt-bad) 50%, transparent); }
.rt-metric[data-flash]:not([data-flash=""])::after { animation: rt-flash 1.5s var(--ease-out); }
@keyframes rt-flash { 0% { opacity: 0.95; } 55% { opacity: 0.7; } 100% { opacity: 0; } }
.rt-metric[data-flash]:not([data-flash=""]) .rt-metric__value { animation: rt-tick 0.5s var(--ease-out); }
@keyframes rt-tick { 0% { transform: translateY(0.3rem); opacity: 0.2; } 100% { transform: none; opacity: 1; } }

/* ── LUM Insights ───────────────────────────────────────────────────────── */
.rt-ui .rt-insight { --rt-cut: 9px; position: absolute; z-index: 4; left: var(--rt-safe-left); right: var(--rt-safe-right); bottom: calc(var(--rt-dock) + var(--rt-safe-bottom) + 0.6rem); display: flex; align-items: flex-start; gap: 0.55rem; padding: 0.6rem 0.8rem 0.6rem 1rem; font-size: 0.78rem; line-height: 1.42; color: var(--color-text-secondary); text-align: left; max-height: 6.4rem; overflow: hidden; filter: none; }
.rt-insight[hidden] { display: none; }
.rt-ui .rt-insight::after { content: ""; position: absolute; left: 1px; top: 12px; bottom: 6px; width: 3px; background: var(--rt-gold-grad); box-shadow: 0 0 10px color-mix(in srgb, var(--rt-gold) 60%, transparent); }
.rt-insight b { color: var(--rt-gold); letter-spacing: 0.14em; font-size: 0.6rem; text-transform: uppercase; margin-right: 0.4rem; }
.rt-insight[data-kind="warn"]::after { background: var(--rt-warn); box-shadow: 0 0 10px var(--rt-warn); }
.rt-insight[data-kind="good"]::after { background: var(--rt-good); box-shadow: 0 0 10px var(--rt-good); }
.rt-insight .rt-i { margin-top: 0.1rem; color: var(--rt-gold); }

/* ── Dock inferior ──────────────────────────────────────────────────────── */
.rt-dock { position: absolute; z-index: 6; left: 0; right: 0; bottom: 0; display: flex; align-items: stretch; gap: 0.4rem; padding: 0.55rem var(--rt-safe-right) var(--rt-safe-bottom) var(--rt-safe-left); pointer-events: none; }
.rt-dock::before { content: ""; position: absolute; inset: -1.4rem 0 0; z-index: -1; background: linear-gradient(to top, rgb(6 5 4 / 0.92) 62%, transparent); }
.rt-dock > * { pointer-events: auto; }
.rt-ui .rt-dock__tab { --rt-cut: 8px; flex: 0 0 3.85rem; display: grid; justify-items: center; align-content: center; gap: 0.2rem; height: 3.6rem; color: var(--color-text-secondary); transition: color var(--dur-short), transform var(--dur-short) var(--ease-out); }
.rt-dock__tab[hidden] { display: none; }
.rt-dock__tab .rt-i { width: 1.3rem; height: 1.3rem; }
.rt-dock__tab b { font-size: 0.56rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.rt-ui .rt-dock__tab:hover { color: var(--rt-gold); background: var(--rt-edge-hot); transform: translateY(-1px); }
.rt-ui .rt-dock__tab:hover::before { background: var(--rt-fill-hot); }
.rt-ui .rt-dock__tab[aria-pressed="true"] { color: var(--rt-gold); background: var(--rt-edge-hot); }
.rt-ui .rt-dock__tab[aria-pressed="true"]::before { background: var(--rt-fill-hot); }
.rt-ui .rt-dock__tab[aria-pressed="true"]::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: 3px; height: 2px; background: var(--rt-gold); box-shadow: 0 0 8px var(--rt-gold); }
.rt-ui .rt-advance { --rt-cut: 11px; flex: 1; position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 0.6rem; height: 3.6rem; padding: 0 0.7rem 0 1.1rem; background: var(--rt-gold-grad); color: #1a1405; text-align: left; overflow: hidden; clip-path: var(--rt-shape); filter: drop-shadow(0 6px 14px rgb(240 208 108 / 0.28)); transition: transform var(--dur-micro) var(--ease-out), filter var(--dur-short); }
.rt-ui .rt-advance::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(255 255 255 / 0.42), transparent 46%); }
.rt-advance__main { font-size: 0.82rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; white-space: nowrap; }
.rt-advance__sub { grid-column: 1; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.04em; opacity: 0.74; }
.rt-advance__icon { grid-column: 2; grid-row: 1 / span 2; display: grid; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: 50%; background: rgb(17 16 13 / 0.92); color: var(--rt-gold); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 55%, transparent); transition: transform var(--dur-short) var(--ease-out); }
.rt-ui .rt-advance:hover:not([aria-disabled="true"]) { filter: drop-shadow(0 8px 20px rgb(240 208 108 / 0.5)) brightness(1.04); }
.rt-ui .rt-advance:hover .rt-advance__icon { transform: translateX(2px); }
.rt-ui .rt-advance:active { transform: translateY(1px); }
.rt-advance__sheen { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(105deg, transparent 42%, rgb(255 255 255 / 0.6) 50%, transparent 58%); transform: translateX(-130%); animation: rt-sheen 5.5s var(--ease-in-out) infinite; }
@keyframes rt-sheen { 0%, 62% { transform: translateX(-130%); } 100% { transform: translateX(130%); } }
.rt-advance[data-state="pending"] { background: linear-gradient(180deg, color-mix(in srgb, var(--rt-warn) 70%, #fff), var(--rt-warn)); }
.rt-advance[data-state="busy"] { opacity: 0.65; }
.rt-advance[aria-disabled="true"][data-state="busy"] { pointer-events: none; }
.rt-advance[data-hint="true"], .rt-dock__tab[data-hint="true"] { animation: rt-hint 1.8s var(--ease-in-out) infinite; }
@keyframes rt-hint { 0% { filter: drop-shadow(0 0 0 color-mix(in srgb, var(--rt-gold) 70%, transparent)); } 55% { filter: drop-shadow(0 0 0.7rem color-mix(in srgb, var(--rt-gold) 80%, transparent)); } 100% { filter: drop-shadow(0 0 0 transparent); } }

/* Etiquetas de zona (botones reales: teclado y lector de pantalla) */
.rt-labels { position: absolute; inset: 0; z-index: 3; pointer-events: none; overflow: hidden; }
.rt-ui .rt-zonetag { --rt-cut: 7px; position: absolute; left: 0; top: 0; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.8rem 0.4rem 0.7rem; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.16em; white-space: nowrap; color: var(--color-text-primary); transition: opacity 200ms var(--ease-out), color 200ms; min-height: 2.15rem; filter: drop-shadow(0 4px 8px rgb(0 0 0 / 0.5)); }
.rt-zonetag i { font-style: normal; font-family: var(--rt-num); font-weight: 700; color: #1a1405; background: var(--rt-gold); padding: 0.08rem 0.38rem; letter-spacing: 0.04em; font-size: 0.6rem; clip-path: polygon(4px 0, 100% 0, 100% calc(100% - 4px), calc(100% - 4px) 100%, 0 100%, 0 4px); }
@media (max-width: 39.99rem) {
  .rt-ui .rt-zonetag { padding: 0.3rem 0.55rem 0.3rem 0.5rem; font-size: 0.54rem; min-height: 1.9rem; gap: 0.35rem; }
}
.rt-zonetag[data-visible="false"] { opacity: 0; pointer-events: none !important; }
.rt-ui .rt-zonetag:hover, .rt-ui .rt-zonetag:focus-visible { color: var(--rt-gold); background: var(--rt-edge-hot); }
.rt-ui .rt-zonetag:hover::before { background: var(--rt-fill-hot); }

/* ── Hoja de panel (inferior en móvil, lateral en escritorio) ──────────── */

.rt-ui .rt-sheet { --rt-cut: 14px; position: absolute; z-index: 7; left: 0; right: 0; bottom: calc(var(--rt-dock) + var(--rt-safe-bottom)); max-height: min(56dvh, 34rem); display: flex; flex-direction: column; -webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2); animation: rt-sheet-in 280ms var(--ease-out); }
.rt-ui .rt-sheet::before { background: linear-gradient(180deg, rgb(32 28 21 / 0.9), rgb(12 10 8 / 0.95)); }
.rt-sheet[hidden] { display: none; }
/* Marcas de esquina (arriba-derecha y abajo-izquierda: las esquinas que no están biseladas). */
.rt-ui .rt-modal__card::after { content: ""; position: absolute; inset: 7px; z-index: 3; pointer-events: none; opacity: 0.8;
  background:
    linear-gradient(var(--rt-gold), var(--rt-gold)) right top / 16px 1px no-repeat, linear-gradient(var(--rt-gold), var(--rt-gold)) right top / 1px 16px no-repeat,
    linear-gradient(var(--rt-gold), var(--rt-gold)) left bottom / 16px 1px no-repeat, linear-gradient(var(--rt-gold), var(--rt-gold)) left bottom / 1px 16px no-repeat; }
@keyframes rt-sheet-in { from { transform: translateY(1.5rem); opacity: 0; } to { transform: none; opacity: 1; } }
.rt-sheet__grab { display: grid; place-items: center; height: 1.5rem; cursor: grab; touch-action: none; }
.rt-sheet__grab i { width: 2.8rem; height: 4px; border-radius: 4px; background: linear-gradient(90deg, transparent, var(--rt-gold-dim), transparent); box-shadow: 0 0 0 1px rgb(255 255 255 / 0.06); }
.rt-sheet__head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.8rem; padding: 0 var(--rt-safe-right) 0.75rem var(--rt-safe-left); position: relative; }
.rt-sheet__head::after { content: ""; position: absolute; left: var(--rt-safe-left); right: var(--rt-safe-right); bottom: 0; height: 1px; background: linear-gradient(90deg, var(--rt-gold), color-mix(in srgb, var(--rt-gold) 14%, transparent) 70%, transparent); }
.rt-sheet__icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; color: var(--rt-gold); background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--rt-gold) 26%, transparent), transparent 72%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 60%, transparent), 0 0 18px color-mix(in srgb, var(--rt-gold) 24%, transparent); }
.rt-sheet__title { font-family: var(--font-display); font-size: 1.65rem; font-weight: 500; line-height: 1.02; outline: none; letter-spacing: 0.01em; }
.rt-sheet__body { overflow-y: auto; overscroll-behavior: contain; padding: 0.85rem var(--rt-safe-right) 1.3rem var(--rt-safe-left); -webkit-overflow-scrolling: touch; touch-action: pan-y; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--rt-gold) 45%, transparent) transparent; }

.rt-lead { font-size: 0.86rem; line-height: 1.58; color: var(--color-text-secondary); margin-bottom: 0.9rem; }
.rt-lead b { color: var(--color-text-primary); }
.rt-foot { margin-top: 0.65rem; font-size: 0.74rem; line-height: 1.5; color: var(--color-text-muted); }
.rt-foot b { color: var(--color-text-secondary); }
.rt-h3 { display: flex; align-items: center; gap: 0.6rem; margin: 1.2rem 0 0.65rem; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rt-gold); }
.rt-h3::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, color-mix(in srgb, var(--rt-gold) 40%, transparent), transparent); }
.rt-sub { font-weight: 500; letter-spacing: 0.04em; text-transform: none; color: var(--color-text-muted); }
.rt-warn { color: var(--rt-warn); }
.rt-tabs { display: flex; gap: 0.2rem; margin-bottom: 0.95rem; border-bottom: 1px solid var(--rt-line); overflow-x: auto; scrollbar-width: none; }
.rt-ui .rt-tab { flex: none; padding: 0.7rem 0.85rem; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-text-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; min-height: 2.75rem; transition: color var(--dur-short); }
.rt-ui .rt-tab:hover { color: var(--color-text-primary); }
.rt-ui .rt-tab[aria-selected="true"] { color: var(--rt-gold); border-bottom-color: var(--rt-gold); box-shadow: 0 8px 14px -10px var(--rt-gold); }
.rt-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0 0 0.9rem; }
.rt-ui .rt-chip { --rt-cut: 6px; padding: 0.5rem 0.85rem; min-height: 2.75rem; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-secondary); }
.rt-ui .rt-chip::before { background: rgb(18 15 11 / 0.92); }
.rt-ui .rt-chip:hover { color: var(--color-text-primary); }
.rt-ui .rt-chip[aria-pressed="true"] { background: var(--rt-edge-hot); color: #1a1405; }
.rt-ui .rt-chip[aria-pressed="true"]::before { background: var(--rt-gold-grad); }

/* Tarjetas de inversión */
.rt-cards { display: grid; gap: 0.55rem; }
.rt-cards--dim { opacity: 0.72; }
.rt-ui .rt-card { --rt-cut: 10px; display: grid; grid-template-columns: 2.6rem 1fr auto; gap: 0.75rem; align-items: start; padding: 0.85rem 0.85rem 0.85rem 1rem; transition: transform var(--dur-short) var(--ease-out); }
.rt-ui .rt-card::before { background: linear-gradient(180deg, rgb(32 28 21 / 0.82), rgb(17 15 11 / 0.9)); }
.rt-ui .rt-card[data-state="available"] { background: linear-gradient(135deg, color-mix(in srgb, var(--rt-gold) 60%, transparent), color-mix(in srgb, var(--rt-gold) 14%, transparent) 40%, color-mix(in srgb, var(--color-dark-text) 8%, transparent) 70%, color-mix(in srgb, var(--rt-gold) 32%, transparent)); }
.rt-ui .rt-card[data-state="available"]:hover { transform: translateY(-1px); background: var(--rt-edge-hot); }
.rt-ui .rt-card[data-state="available"]:hover::before { background: linear-gradient(180deg, rgb(48 40 24 / 0.9), rgb(21 18 12 / 0.94)); }
.rt-ui .rt-card::after { content: ""; position: absolute; left: 1px; top: 14px; bottom: 8px; width: 3px; background: transparent; }
.rt-ui .rt-card[data-state="available"]::after { background: var(--rt-gold-grad); box-shadow: 0 0 10px color-mix(in srgb, var(--rt-gold) 55%, transparent); }
.rt-ui .rt-card[data-state="building"]::after { background: var(--rt-warn); }
.rt-ui .rt-card[data-state="max"]::after { background: var(--rt-good); }
.rt-card[data-state="locked"], .rt-card[data-state="blocked"] { opacity: 0.68; }
.rt-card__icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; color: var(--rt-gold); background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--rt-gold) 20%, transparent), transparent 72%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 40%, transparent); }
.rt-card__main { min-width: 0; }
.rt-card__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.65rem; font-size: 0.94rem; font-weight: 650; line-height: 1.2; }
.rt-card__sub { margin-top: 0.3rem; font-size: 0.76rem; line-height: 1.48; color: var(--color-text-secondary); }
.rt-card__sub b { color: var(--color-text-primary); font-weight: 600; }
.rt-card__have { color: var(--color-text-muted); }
.rt-card__meta { display: flex; flex-wrap: wrap; gap: 0.2rem 0.95rem; margin-top: 0.45rem; font-size: 0.68rem; color: var(--color-text-muted); }
.rt-card__meta span { display: inline-flex; align-items: center; gap: 0.35rem; }
.rt-card__req { display: flex; align-items: center; gap: 0.35rem; margin-top: 0.45rem; font-size: 0.72rem; color: var(--rt-warn); }
.rt-card__action { display: grid; align-content: start; justify-items: end; }
.rt-pips, .rt-impact { display: inline-flex; gap: 0.22rem; vertical-align: middle; }
.rt-pips i { width: 0.46rem; height: 0.46rem; transform: rotate(45deg); border: 1px solid var(--rt-line-strong); }
.rt-impact i { width: 0.3rem; height: 0.7rem; border: 1px solid var(--rt-line-strong); border-radius: 1px; }
.rt-pips i[data-on="true"] { background: var(--rt-gold); border-color: var(--rt-gold); box-shadow: 0 0 7px color-mix(in srgb, var(--rt-gold) 70%, transparent); }
.rt-impact i[data-on="true"] { background: var(--color-text-secondary); border-color: var(--color-text-secondary); }
.rt-new { padding: 0.1rem 0.4rem; font-size: 0.54rem; font-weight: 800; letter-spacing: 0.16em; background: var(--rt-gold-grad); color: #1a1405; clip-path: polygon(4px 0, 100% 0, 100% calc(100% - 4px), calc(100% - 4px) 100%, 0 100%, 0 4px); }
.rt-ui .rt-buy { --rt-cut: 8px; display: grid; justify-items: center; gap: 0.1rem; min-width: 5.4rem; min-height: 2.95rem; padding: 0.38rem 0.75rem; background: var(--rt-gold-grad); color: #1a1405; font-family: var(--rt-num); font-size: 0.84rem; font-weight: 800; text-align: center; clip-path: var(--rt-shape); position: relative; transition: transform var(--dur-micro) var(--ease-out), filter var(--dur-short); }
.rt-ui .rt-buy::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(255 255 255 / 0.4), transparent 50%); pointer-events: none; }
.rt-buy span { font-family: var(--font-body); font-size: 0.56rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.rt-ui .rt-buy:hover:not(:disabled) { filter: brightness(1.07) drop-shadow(0 0 8px color-mix(in srgb, var(--rt-gold) 60%, transparent)); }
.rt-ui .rt-buy:active:not(:disabled) { transform: translateY(1px); }
.rt-ui .rt-buy:disabled { background: linear-gradient(180deg, rgb(255 255 255 / 0.1), rgb(255 255 255 / 0.05)); color: var(--color-text-muted); }
.rt-ui .rt-buy:disabled::before { display: none; }
.rt-ui .rt-tag { --rt-cut: 6px; display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.36rem 0.6rem; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-text-secondary); white-space: nowrap; }
.rt-ui .rt-tag::before { background: rgb(18 15 11 / 0.92); }
.rt-ui .rt-tag--ok { color: var(--rt-good); background: linear-gradient(135deg, color-mix(in srgb, var(--rt-good) 60%, transparent), color-mix(in srgb, var(--rt-good) 12%, transparent)); }
.rt-ui .rt-tag--wait { color: var(--rt-gold); }

/* Zona */
.rt-meters { display: grid; gap: 0.8rem; margin-bottom: 0.4rem; }
.rt-meter__head { display: flex; justify-content: space-between; margin-bottom: 0.3rem; }
.rt-meter__note { margin-top: 0.22rem; font-size: 0.7rem; color: var(--color-text-muted); }
.rt-bar { height: 5px; background: rgb(255 255 255 / 0.1); position: relative; }
.rt-bar::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), rgb(0 0 0 / 0.55) calc(10% - 1px) 10%); }
.rt-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--rt-gold-lo), var(--rt-gold-hi)); box-shadow: 0 0 8px color-mix(in srgb, var(--rt-gold) 55%, transparent); transition: width 600ms var(--ease-out); }

/* Plan */
.rt-forecast { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.4rem; }
.rt-ui .rt-forecast > div { --rt-cut: 8px; display: grid; gap: 0.2rem; padding: 0.65rem 0.75rem; }
.rt-ui .rt-forecast > div::before { background: rgb(18 15 11 / 0.92); }
.rt-forecast b { font-size: 1.08rem; font-weight: 700; }
.rt-forecast [data-sign="pos"] b { color: var(--rt-good); }
.rt-forecast [data-sign="neg"] b { color: var(--rt-bad); }
.rt-ui .rt-seg { --rt-cut: 8px; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
.rt-ui .rt-seg::before { background: rgb(18 15 11 / 0.92); }
.rt-seg__btn { position: relative; min-height: 2.9rem; padding: 0.5rem 0.2rem; text-align: center !important; font-size: 0.8rem; color: var(--color-text-secondary); transition: color var(--dur-short), background var(--dur-short); }
.rt-seg__btn + .rt-seg__btn { box-shadow: inset 1px 0 0 var(--rt-line); }
.rt-seg__btn:hover { color: var(--color-text-primary); }
.rt-ui .rt-seg__btn[aria-pressed="true"] { background: var(--rt-gold-grad); color: #1a1405; font-weight: 800; box-shadow: none; }
.rt-opts { display: grid; gap: 0.45rem; }
.rt-ui .rt-opt { --rt-cut: 9px; display: grid; gap: 0.15rem; padding: 0.7rem 0.9rem; min-height: 3rem; text-align: left; }
.rt-ui .rt-opt::before { background: rgb(20 17 12 / 0.92); }
.rt-opt b { font-size: 0.82rem; letter-spacing: 0.08em; }
.rt-opt span { font-size: 0.72rem; color: var(--color-text-muted); }
.rt-ui .rt-opt:hover { background: var(--rt-edge-hot); }
.rt-ui .rt-opt[aria-pressed="true"] { background: var(--rt-edge-hot); }
.rt-ui .rt-opt[aria-pressed="true"]::before { background: var(--rt-fill-hot); }
.rt-opt[aria-pressed="true"] b { color: var(--rt-gold); }

/* Dashboard */
.rt-rows { display: grid; }
.rt-row { display: grid; grid-template-columns: 1fr auto 5.2rem; align-items: baseline; gap: 0.5rem; padding: 0.6rem 0; border-bottom: 1px solid var(--rt-line); font-size: 0.82rem; }
.rt-row span:first-child { color: var(--color-text-secondary); }
.rt-delta { font-size: 0.72rem; color: var(--color-text-muted); text-align: right; }
.rt-delta[data-trend="up"] { color: var(--rt-good); }
.rt-delta[data-trend="down"] { color: var(--rt-bad); }
.rt-funnel { margin-bottom: 0.9rem; }
.rt-funnel__row { display: flex; justify-content: space-between; margin-top: 0.5rem; font-size: 0.78rem; color: var(--color-text-secondary); }
.rt-funnel__row[data-warn="true"] { color: var(--rt-warn); }
.rt-funnel__bar { height: 6px; width: var(--w); background: var(--rt-gold-dim); margin-top: 0.2rem; transition: width 600ms var(--ease-out); }
.rt-funnel__bar--bad { background: color-mix(in srgb, var(--rt-bad) 60%, transparent); }
.rt-funnel__bar--ok { background: var(--rt-gold-grad); }
.rt-mods { list-style: none; display: grid; gap: 0.25rem; font-size: 0.78rem; color: var(--color-text-secondary); }
.rt-mods li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.35rem 0; border-bottom: 1px solid var(--rt-line); }
.rt-chart { display: block; width: 100%; height: auto; margin: 0.4rem 0 0.8rem; --rt-gold: var(--color-media-accent); }
.rt-chart__target { stroke: var(--rt-line-strong); stroke-dasharray: 3 4; }
.rt-trend { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-top: 0.4rem; }
.rt-trend b { display: block; font-size: 1.3rem; }
.rt-goal { margin-bottom: 0.95rem; }
.rt-goal__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.35rem; font-size: 0.84rem; }
.rt-goal__head i { font-style: normal; color: var(--color-text-muted); }
.rt-goal[data-hit="true"] .rt-bar i { background: linear-gradient(90deg, color-mix(in srgb, var(--rt-good) 70%, #000), var(--rt-good)); box-shadow: 0 0 8px color-mix(in srgb, var(--rt-good) 55%, transparent); }
.rt-ach { list-style: none; display: grid; gap: 0.55rem; }
.rt-ach li { display: grid; grid-template-columns: 1.6rem 1fr; gap: 0.5rem; font-size: 0.78rem; line-height: 1.45; color: var(--color-text-muted); }
.rt-ach li[data-on="true"] { color: var(--color-text-secondary); }
.rt-ach li[data-on="true"] .rt-ach__mark { color: var(--rt-gold); }
.rt-ach b { color: var(--color-text-primary); }
.rt-insights { list-style: none; display: grid; gap: 0.5rem; }
.rt-ui .rt-insights li { --rt-cut: 8px; display: grid; grid-template-columns: 1.4rem 1fr; gap: 0.4rem; padding: 0.7rem 0.8rem 0.7rem 1rem; font-size: 0.82rem; line-height: 1.5; color: var(--color-text-secondary); }
.rt-ui .rt-insights li::before { background: rgb(20 17 12 / 0.92); }
.rt-ui .rt-insights li::after { content: ""; position: absolute; left: 1px; top: 10px; bottom: 6px; width: 3px; background: var(--rt-gold-grad); }
.rt-insights li[data-kind="warn"]::after { background: var(--rt-warn); }
.rt-insights li[data-kind="good"]::after { background: var(--rt-good); }
.rt-insights .rt-i { color: var(--rt-gold); margin-top: 0.1rem; }

/* Explain why */
.rt-bigvalue { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.3rem 0.9rem; margin-bottom: 0.55rem; }
.rt-bigvalue b { font-size: 2.7rem; font-weight: 700; line-height: 1; color: var(--rt-gold); text-shadow: 0 0 24px color-mix(in srgb, var(--rt-gold) 35%, transparent); }
.rt-drivers { list-style: none; display: grid; gap: 0.2rem; }
.rt-drivers li { display: grid; grid-template-columns: 1fr auto; gap: 0.2rem 0.8rem; align-items: baseline; padding: 0.5rem 0; border-bottom: 1px solid var(--rt-line); font-size: 0.8rem; }
.rt-drv__label { color: var(--color-text-secondary); }
.rt-drv__val { color: var(--rt-good); }
.rt-drivers li[data-neg="true"] .rt-drv__val { color: var(--rt-bad); }
.rt-drv__bar { grid-column: 1 / -1; height: 3px; background: var(--rt-line); }
.rt-drv__bar i { display: block; height: 100%; background: var(--rt-good); }
.rt-drivers li[data-neg="true"] .rt-drv__bar i { background: var(--rt-bad); }
.rt-drivers--chg .rt-drv__bar { display: none; }

/* ── Diálogos ───────────────────────────────────────────────────────────── */

.rt-modal { position: absolute; z-index: 20; inset: 0; display: grid; align-items: end; justify-items: center; background: radial-gradient(120% 90% at 50% 40%, rgb(8 7 5 / 0.62), rgb(4 3 2 / 0.86)); -webkit-backdrop-filter: blur(7px) saturate(0.85); backdrop-filter: blur(7px) saturate(0.85); animation: rt-fade 220ms var(--ease-out); }
.rt-ui .rt-modal { background: radial-gradient(120% 90% at 50% 40%, rgb(8 7 5 / 0.62), rgb(4 3 2 / 0.86)); clip-path: none; }
.rt-ui .rt-modal::before { display: none; }
.rt-modal[hidden] { display: none; }
@keyframes rt-fade { from { opacity: 0; } to { opacity: 1; } }
.rt-ui .rt-modal__card { --rt-cut: 18px; width: 100%; max-width: 40rem; max-height: min(92dvh, 46rem); overflow-y: auto; overscroll-behavior: contain; padding: 1.6rem var(--rt-safe-right) calc(var(--rt-safe-bottom) + 0.9rem) var(--rt-safe-left); outline: none; animation: rt-sheet-in 280ms var(--ease-out); touch-action: pan-y; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--rt-gold) 45%, transparent) transparent; }
.rt-ui .rt-modal__card::before { background: linear-gradient(180deg, rgb(34 30 22 / 0.96), rgb(12 10 8 / 0.98)); }
.rt-modal__kicker { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.3rem; }
.rt-modal__kicker::before { content: ""; width: 0.46rem; height: 0.46rem; transform: rotate(45deg); background: var(--rt-gold); box-shadow: 0 0 10px var(--rt-gold); flex: none; }
.rt-modal__title { font-family: var(--font-display); font-size: clamp(1.8rem, 1.3rem + 2vw, 2.55rem); font-weight: 400; line-height: 1.04; margin-bottom: 0.95rem; padding-bottom: 0.8rem; position: relative; }
.rt-modal__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--rt-gold), color-mix(in srgb, var(--rt-gold) 16%, transparent) 60%, transparent); }
.rt-modal__foot { margin-top: 1.1rem; }
.rt-modal__foot .lab-btn { width: 100%; }
.rt-event__body { font-size: 0.95rem; line-height: 1.62; color: var(--color-text-secondary); }
.rt-choices { display: grid; gap: 0.55rem; margin-top: 1.1rem; }
.rt-ui .rt-choice { --rt-cut: 10px; display: grid; gap: 0.42rem; padding: 0.85rem 1rem; min-height: 3.5rem; text-align: left; transition: transform var(--dur-short) var(--ease-out); }
.rt-ui .rt-choice::before { background: linear-gradient(180deg, rgb(30 26 19 / 0.94), rgb(17 15 11 / 0.96)); }
.rt-ui .rt-choice:hover:not(:disabled) { background: var(--rt-edge-hot); transform: translateY(-1px); }
.rt-ui .rt-choice:hover:not(:disabled)::before { background: var(--rt-fill-hot); }
.rt-choice:disabled { opacity: 0.5; }
.rt-choice__label { font-size: 0.92rem; font-weight: 650; line-height: 1.3; }
.rt-choice__text { font-size: 0.78rem; line-height: 1.45; color: var(--color-text-secondary); }
.rt-choice__tags { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.rt-chiptag { padding: 0.16rem 0.55rem; border: 1px solid var(--rt-line-strong); border-radius: 999px; font-size: 0.64rem; letter-spacing: 0.06em; color: var(--color-text-secondary); }
.rt-chiptag--cost { border-color: color-mix(in srgb, var(--rt-warn) 55%, transparent); color: var(--rt-warn); }
.rt-choice__why { font-size: 0.72rem; color: var(--rt-warn); }

.rt-report__head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 0.8rem; }
.rt-report__head b { font-size: 2.2rem; font-weight: 700; line-height: 1; color: var(--rt-good); text-shadow: 0 0 22px color-mix(in srgb, var(--rt-good) 30%, transparent); }
.rt-report__head[data-sign="neg"] b { color: var(--rt-bad); text-shadow: 0 0 22px color-mix(in srgb, var(--rt-bad) 30%, transparent); }
.rt-report__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.7rem; padding: 0.85rem 0; border-top: 1px solid var(--rt-line); }
.rt-report__grid dd { font-size: 1.2rem; font-weight: 700; }
.rt-report__metrics { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.35rem; padding: 0.8rem 0; border-top: 1px solid var(--rt-line); border-bottom: 1px solid var(--rt-line); }
.rt-report__metrics li { display: grid; justify-items: center; gap: 0.15rem; padding: 0.4rem 0; background: linear-gradient(180deg, rgb(255 255 255 / 0.05), transparent); }
.rt-report__metrics .lab-label { font-size: 0.56rem; }
.rt-report__metrics b { font-size: 1rem; font-weight: 700; }
.rt-report__lines { list-style: none; display: grid; gap: 0.5rem; margin-top: 0.9rem; font-size: 0.8rem; line-height: 1.45; color: var(--color-text-secondary); }
.rt-report__lines li { display: grid; grid-template-columns: 1.2rem 1fr; gap: 0.4rem; }
.rt-report__lines li[data-good="true"] { color: var(--color-text-primary); }
.rt-report__lines .rt-i { color: var(--rt-gold); margin-top: 0.05rem; }
.rt-ui .rt-report__insight { --rt-cut: 8px; display: grid; grid-template-columns: 1.2rem 1fr; gap: 0.4rem; margin-top: 1rem; padding: 0.75rem 0.9rem 0.75rem 1.1rem; font-size: 0.82rem; line-height: 1.5; color: var(--color-text-secondary); }
.rt-ui .rt-report__insight::before { background: linear-gradient(180deg, rgb(48 40 22 / 0.7), rgb(20 17 11 / 0.8)); }
.rt-report__insight b { color: var(--rt-gold); letter-spacing: 0.12em; font-size: 0.62rem; text-transform: uppercase; margin-right: 0.3rem; }

.rt-menu { display: grid; gap: 1rem; }
.rt-menu__group { display: grid; gap: 0.55rem; padding-top: 1rem; border-top: 1px solid var(--rt-line); }
.rt-menu__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.rt-menu .lab-btn::after { display: none; }
.rt-menu .lab-btn--plain { justify-content: flex-start; padding-inline: 0; }
.rt-linkbtn { display: inline-flex; align-items: center; min-height: 3rem; padding: 0 0.4rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-text-secondary); text-decoration: underline; text-underline-offset: 0.3em; }

/* Botones de los diálogos: mismo bisel y dorado que el HUD (sustituyen al estilo base de .lab-btn dentro del juego). */
.rt-modal .lab-btn { --rt-cut: 10px; position: relative; isolation: isolate; min-height: 3rem; padding: 0 1.4rem; border: 0; border-radius: 0; background: var(--rt-gold-grad); color: #1a1405; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; clip-path: var(--rt-shape); box-shadow: none; transition: filter var(--dur-short), transform var(--dur-micro) var(--ease-out); }
.rt-modal .lab-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(255 255 255 / 0.38), transparent 52%); }
.rt-modal .lab-btn::after { display: none; }
.rt-modal .lab-btn:hover { filter: brightness(1.07) drop-shadow(0 0 10px color-mix(in srgb, var(--rt-gold) 50%, transparent)); }
.rt-modal .lab-btn--ghost { background: var(--rt-edge); color: var(--color-text-primary); }
.rt-modal .lab-btn--ghost::before { inset: 1px; background: var(--rt-fill); clip-path: var(--rt-shape); }
.rt-modal .lab-btn--ghost:hover { color: var(--rt-gold); background: var(--rt-edge-hot); }
.rt-modal .lab-btn:focus-visible { outline: 2px solid var(--rt-gold); outline-offset: -4px; }
.rt-modal .rt-danger { background: linear-gradient(180deg, color-mix(in srgb, var(--rt-bad) 70%, #fff), var(--rt-bad)); color: #260808; }
.rt-modal .lab-btn svg { margin-right: 0.45rem; }

/* Reporte final */
.rt-modal[data-kind="final"] { align-items: stretch; }
.rt-modal[data-kind="final"] .rt-modal__card { max-width: 58rem; max-height: none; height: 100%; }
.rt-final__tier { display: grid; justify-items: start; gap: 0.15rem; padding-bottom: 1rem; border-bottom: 1px solid var(--rt-line); }
.rt-final__tier b { font-size: clamp(3.2rem, 2rem + 6vw, 5.8rem); font-weight: 700; line-height: 1; background: var(--rt-gold-grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; filter: drop-shadow(0 0 22px color-mix(in srgb, var(--rt-gold) 30%, transparent)); }
.rt-final__section { margin-top: 1.5rem; }
.rt-final__stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.95rem; margin-top: 1.5rem; padding: 1.1rem 0; border-top: 1px solid var(--rt-line); border-bottom: 1px solid var(--rt-line); }
.rt-final__stats dd { font-size: 1.25rem; font-weight: 700; }
.rt-final__name { display: block; margin: 0.2rem 0 0.4rem; font-family: var(--font-display); font-size: clamp(1.7rem, 1.2rem + 2vw, 2.5rem); font-weight: 500; letter-spacing: 0.03em; color: var(--rt-gold); }
.rt-final__profile p { font-size: 0.9rem; line-height: 1.6; color: var(--color-text-secondary); }
.rt-final__shares { list-style: none; display: grid; gap: 0.5rem; margin-top: 0.8rem; }
.rt-final__shares li { display: grid; grid-template-columns: 6.5rem 1fr; align-items: center; gap: 0.7rem; font-size: 0.78rem; color: var(--color-text-secondary); }
.rt-ui .rt-final__triple { --rt-cut: 12px; display: grid; gap: 1rem; padding: 1.1rem 1.2rem; }
.rt-ui .rt-final__triple::before { background: linear-gradient(180deg, rgb(26 22 16 / 0.94), rgb(15 13 9 / 0.96)); }
.rt-final__triple b { display: block; margin-top: 0.15rem; font-size: 1.02rem; letter-spacing: 0.04em; }
.rt-final__triple p { margin-top: 0.3rem; font-size: 0.8rem; line-height: 1.5; color: var(--color-text-muted); }
.rt-final__cols { display: grid; gap: 1.2rem; }
.rt-final__list { list-style: none; display: grid; gap: 0.5rem; font-size: 0.86rem; line-height: 1.5; color: var(--color-text-secondary); }
.rt-final__list li { padding-left: 1rem; border-left: 2px solid var(--rt-line-strong); }
.rt-final__list--good li { border-left-color: var(--rt-good); }
.rt-final__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.2rem; }
.rt-ui .rt-final__bridge { --rt-cut: 14px; margin-top: 1.9rem; padding: 1.3rem 1.3rem 1.4rem; }
.rt-ui .rt-final__bridge::before { background: linear-gradient(180deg, rgb(52 43 24 / 0.72), rgb(20 17 11 / 0.86)); }
.rt-final__bridgeText { margin-top: 0.4rem; font-family: var(--font-display); font-size: 1.3rem; line-height: 1.35; font-weight: 400; }

/* Avisos */
.rt-toasts { position: absolute; z-index: 25; left: 50%; transform: translateX(-50%); bottom: calc(var(--rt-dock) + var(--rt-safe-bottom) + 5.4rem); display: grid; gap: 0.4rem; width: min(calc(100% - 1.4rem), 26rem); pointer-events: none; }
.rt-ui .rt-toast { --rt-cut: 9px; padding: 0.65rem 0.9rem 0.65rem 1.1rem; font-size: 0.8rem; line-height: 1.4; animation: rt-toast 4.2s var(--ease-out) forwards; filter: drop-shadow(0 6px 12px rgb(0 0 0 / 0.5)); }
.rt-ui .rt-toast::before { background: linear-gradient(180deg, rgb(38 33 24 / 0.96), rgb(16 14 10 / 0.97)); }
.rt-ui .rt-toast::after { content: ""; position: absolute; left: 1px; top: 11px; bottom: 6px; width: 3px; background: var(--rt-gold-grad); }
.rt-toast[data-kind="good"]::after { background: var(--rt-good); }
.rt-toast[data-kind="warn"]::after { background: var(--rt-warn); }
@keyframes rt-toast { 0% { opacity: 0; transform: translateY(0.6rem); } 8%, 86% { opacity: 1; transform: none; } 100% { opacity: 0; } }

/* Con un panel abierto en móvil, los avisos suben bajo las métricas para no taparlo. */
@media (max-width: 63.99rem) {
  .rt-ui[data-sheet="invest"] .rt-toasts, .rt-ui[data-sheet="plan"] .rt-toasts, .rt-ui[data-sheet="data"] .rt-toasts, .rt-ui[data-sheet="zone"] .rt-toasts, .rt-ui[data-sheet="explain"] .rt-toasts { bottom: auto; top: calc(var(--rt-safe-top) + 7.6rem); }
}

/* Plano 2D (si no hay 3D) */
.rt-map__frame { position: absolute; inset: 0; display: grid; place-items: center; padding: 8.5rem 0.6rem 9rem; }
.rt-map__box { position: relative; width: min(100%, calc((100dvh - 17.5rem) * 1.5385)); aspect-ratio: 800 / 520; }
.rt-map { display: block; width: 100%; height: 100%; }
.rt-map [data-zone] > rect:first-child { stroke: var(--rt-gold-dim); stroke-width: 2; transition: fill 500ms var(--ease-out); cursor: pointer; }
.rt-map__win rect { fill: #ffd29a; opacity: 0.35; }
.rt-map__glass { fill: #9fc9d6; opacity: 0.5; }
.rt-map__t { fill: #e8dcc6; }
.rt-map__deck { fill: #8f877a; }
.rt-map__water { fill: #2fb4c8; }
.rt-map__labels { position: absolute; inset: 0; pointer-events: none; }
.rt-map__labels .rt-zonetag { transform: translate(-50%, -50%); }

/* ── Escritorio ─────────────────────────────────────────────────────────── */

@media (min-width: 64rem) {
  .rt-ui { font-size: 0.9rem; }
  .rt-top { padding-inline: 1.3rem; padding-top: 0.85rem; grid-template-columns: auto 1fr auto; }
  .rt-top__left { gap: 0.4rem; }
  .rt-ui .rt-iconbtn { width: 3rem; height: 3rem; }
  .rt-top { grid-template-areas: "left week . cash"; grid-template-columns: auto auto 1fr auto; }
  .rt-top__left { grid-area: left; }
  .rt-week { grid-area: week; }
  .rt-cash { grid-area: cash; }
  .rt-ui .rt-week { --rt-cut: 10px; grid-template-columns: auto auto auto; column-gap: 0.85rem; padding: 0.5rem 1.1rem 0.8rem 0.85rem; min-height: 2.9rem; margin-left: 0.4rem; }
  .rt-week__ico { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; color: var(--rt-gold); background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--rt-gold) 22%, transparent), transparent 72%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 45%, transparent); }
  .rt-week__ico .rt-i { width: 1.05rem; height: 1.05rem; }
  .rt-week .lab-label, .rt-cash .lab-label { font-size: 0.6rem; }
  .rt-week__num { font-size: 1.5rem; }
  .rt-season { font-size: 0.62rem; padding-left: 0.85rem; border-left: 1px solid var(--rt-line-strong); }
  .rt-rail { left: 0.85rem; right: 1.1rem; bottom: 0.4rem; height: 4px; }
  .rt-ui .rt-cash { --rt-cut: 10px; grid-template-columns: auto auto; align-items: center; column-gap: 0.8rem; justify-items: end; padding: 0.5rem 1.1rem 0.5rem 0.85rem; min-width: 11.5rem; }
  .rt-cash__ico { display: grid; place-items: center; grid-row: 1 / span 2; width: 2.2rem; height: 2.2rem; border-radius: 50%; color: #1a1405; background: var(--rt-gold-grad); box-shadow: 0 0 16px color-mix(in srgb, var(--rt-gold) 38%, transparent), inset 0 0 0 1px rgb(255 255 255 / 0.4); }
  .rt-cash__ico .rt-i { width: 1.15rem; height: 1.15rem; }
  .rt-cash b { font-size: 1.62rem; }
  .rt-cash__delta { grid-column: 2; font-size: 0.7rem; }
  .rt-metrics { left: 1.3rem; right: auto; top: 4.7rem; transform: none; width: min(47rem, calc(100% - 33.5rem)); gap: 0.4rem; }
  .rt-ui .rt-metric { --rt-cut: 10px; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "ico body delta" "bar bar bar"; align-items: center; gap: 0 0.55rem; min-height: 4.2rem; padding: 0.6rem 0.7rem 0.78rem 0.65rem; }
  .rt-metric__ico { display: grid; place-items: center; width: 1.95rem; height: 1.95rem; border-radius: 50%; color: var(--rt-gold); background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--rt-gold) 20%, transparent), transparent 72%); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rt-gold) 38%, transparent); }
  .rt-metric__ico .rt-i { width: 1.05rem; height: 1.05rem; }
  .rt-metric__label { font-size: 0.6rem; }
  .rt-metric__value { font-size: 1.42rem; }
  .rt-metric__delta { font-size: 0.66rem; align-self: start; padding-top: 0.1rem; }
  .rt-metric__delta em { display: inline; }
  .rt-metric__bar { margin-top: 0.5rem; height: 5px; }
  .rt-ui .rt-saved { top: 5.1rem; right: 1.3rem; }
  .rt-ui .rt-zonenav { top: 11rem; }
  .rt-dock { left: 1.3rem; right: auto; transform: none; width: min(35rem, calc(100% - 32rem)); padding: 0.5rem 0 1.2rem; }
  .rt-dock::before { display: none; }
  .rt-ui .rt-dock__tab { flex-basis: 4.1rem; height: 3.8rem; }
  .rt-ui .rt-advance { height: 3.8rem; }
  .rt-ui .rt-insight { left: 1.3rem; right: auto; bottom: 6.6rem; width: min(25rem, calc(100% - 32rem)); }
  .rt-ui .rt-sheet { top: 6.4rem; right: 1.3rem; left: auto; bottom: 1.3rem; width: 28rem; max-height: none; animation-name: rt-sheet-side; filter: drop-shadow(0 18px 40px rgb(0 0 0 / 0.55)); }
  @keyframes rt-sheet-side { from { transform: translateX(1.5rem); opacity: 0; } to { transform: none; opacity: 1; } }
  .rt-sheet__grab { display: none; }
  .rt-sheet__head { padding: 1.15rem 1.3rem 0.8rem; }
  .rt-sheet__head::after { left: 1.3rem; right: 1.3rem; }
  .rt-sheet__body { padding: 0.9rem 1.3rem 1.5rem; }
  .rt-toasts { bottom: 6.4rem; }
  .rt-modal { align-items: center; }
  .rt-ui .rt-modal__card { padding: 2rem 2.2rem 2.2rem; max-height: min(88dvh, 46rem); }
  .rt-modal[data-kind="final"] .rt-modal__card { height: auto; max-height: 94dvh; }
  .rt-modal__foot .lab-btn { width: auto; }
  .rt-report__metrics { gap: 0.6rem; }
  .rt-final__stats { grid-template-columns: repeat(4, 1fr); }
  .rt-final__triple { grid-template-columns: repeat(3, 1fr); }
  .rt-final__cols { grid-template-columns: 1fr 1fr; }
  .rt-map__frame { padding: 7.5rem 29rem 5.5rem 2rem; }
  .rt-map__box { width: min(100%, calc((100dvh - 13rem) * 1.5385)); }
}

/* Escritorio estrecho (1024–1279 px): tarjetas compactas, sin icono ni cifra de variación (queda la flecha). */
@media (min-width: 64rem) and (max-width: 79.99rem) {
  .rt-ui .rt-metric { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "body delta" "bar bar"; min-height: 3.7rem; padding: 0.5rem 0.55rem 0.7rem 0.7rem; }
  .rt-metric__ico, .rt-metric__delta em { display: none; }
  .rt-metric__value { font-size: 1.25rem; }
}

/* Pantallas anchas: las métricas van centradas en la misma fila que la semana y la caja. */
@media (min-width: 96rem) {
  .rt-metrics { left: 50%; top: 0.85rem; transform: translateX(-50%); width: clamp(40rem, calc(100% - 56rem), 47rem); }
  .rt-ui .rt-sheet { top: 6.4rem; }
}

@media (min-width: 40rem) and (max-width: 63.99rem) {
  .rt-ui .rt-sheet { left: 50%; right: auto; width: min(34rem, 100%); transform: translateX(-50%); animation-name: rt-fade; }
  .rt-metrics { max-width: 40rem; left: 50%; right: auto; transform: translateX(-50%); width: calc(100% - 1.5rem); }
  .rt-ui .rt-insight { left: 50%; right: auto; transform: translateX(-50%); width: min(34rem, calc(100% - 1.5rem)); }
  .rt-dock { left: 50%; right: auto; transform: translateX(-50%); width: min(34rem, 100%); }
  .rt-modal { align-items: center; }
  .rt-metric__ico { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; }
  .rt-ui .rt-metric { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "ico body delta" "bar bar bar"; align-items: center; gap: 0 0.4rem; }
  .rt-metric__ico { color: var(--rt-gold); }
  .rt-metric__ico .rt-i { width: 0.95rem; height: 0.95rem; }
  .rt-metric__delta em { display: inline; }
}

/* Teléfono horizontal (poca altura): el panel pasa a un lateral para no tapar el resort. */
@media (max-height: 30rem) and (orientation: landscape) {
  :root, .rt-stage { --rt-dock: 3.5rem; }
  .rt-top { grid-template-columns: auto 1fr auto; padding-top: var(--rt-safe-top); }
  .rt-ui .rt-iconbtn { width: 2.3rem; height: 2.3rem; }
  .rt-metrics { left: 50%; right: auto; top: calc(var(--rt-safe-top) + 0.05rem); transform: translateX(-50%); width: min(31rem, 52%); gap: 0.2rem; }
  .rt-ui .rt-metric { min-height: 2.6rem; padding: 0.28rem 0.4rem 0.4rem 0.5rem; }
  .rt-metric__label { font-size: 0.5rem; }
  .rt-metric__value { font-size: 0.9rem; }
  .rt-metric__ico { display: none; }
  .rt-metric__bar { margin-top: 0.2rem; height: 3px; }
  .rt-week__num, .rt-cash b { font-size: 1rem; }
  .rt-ui .rt-week { padding: 0.25rem 0.6rem 0.5rem 0.55rem; min-height: 2.3rem; }
  .rt-ui .rt-cash { padding: 0.25rem 0.6rem 0.3rem 0.7rem; min-height: 2.3rem; }
  .rt-rail { bottom: 0.22rem; left: 0.55rem; right: 0.6rem; }
  .rt-cash__delta { display: none; }
  .rt-dock__tab, .rt-ui .rt-advance { height: 3rem; }
  .rt-ui .rt-dock__tab { height: 3rem; flex-basis: 3.85rem; }
  .rt-season { display: none; }
  .rt-ui .rt-week { grid-template-columns: auto; }
  .rt-dock { width: min(28rem, 52%); left: var(--rt-safe-left); right: auto; transform: none; padding-bottom: 0.4rem; }
  .rt-dock::before { display: none; }
  .rt-ui .rt-insight { display: none; }
  .rt-ui .rt-sheet { top: calc(var(--rt-safe-top) + 3.4rem); right: var(--rt-safe-right); left: auto; bottom: 0.4rem; width: min(22rem, 46%); max-height: none; transform: none; }
  .rt-sheet__grab { display: none; }
  .rt-modal { align-items: center; }
  .rt-ui .rt-modal__card { max-height: 94dvh; }
  .rt-toasts { bottom: 4.6rem; left: 25%; }
  .rt-ui .rt-saved { top: calc(var(--rt-safe-top) + 3.1rem); }
}

/* Teléfono vertical: la caja no lleva el delta semanal (el resultado de la semana ya lo muestra) y la temporada se compacta. */
@media (max-width: 39.99rem) {
  .rt-cash__delta { display: none; }
  .rt-season { font-size: 0.5rem; letter-spacing: 0.1em; }
}
@media (max-width: 26rem) {
  .rt-ui .rt-dock__tab { flex-basis: 3.45rem; }
  .rt-ui .rt-advance { padding: 0 0.5rem 0 0.85rem; gap: 0 0.3rem; --rt-cut: 9px; }
  .rt-advance__main { font-size: 0.72rem; letter-spacing: 0.09em; }
  .rt-advance__icon { width: 1.75rem; height: 1.75rem; }
  .rt-advance__icon .rt-i { width: 1rem; height: 1rem; }
}

@media (max-width: 21.5rem) {
  .rt-sound-btn { display: none; }
  .rt-week__num { font-size: 1rem; }
  .rt-cash b { font-size: 1.05rem; }
  .rt-ui .rt-cash { min-width: 5.6rem; padding-inline: 0.55rem; }
}

@media (max-width: 23rem) {
  .rt-metric__value { font-size: 0.95rem; }
  .rt-metric__delta { display: none; }
  .rt-advance__sub { display: none; }
  .rt-ui .rt-dock__tab { flex-basis: 3.3rem; }
  .rt-season { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .rt-stage { transition: opacity 200ms linear; clip-path: none; opacity: 0; }
  .rt-stage[data-open="true"] { opacity: 1; }
  .rt-sheet, .rt-modal, .rt-modal__card, .rt-toast { animation-duration: 1ms; }
  .rt-advance[data-hint="true"], .rt-dock__tab[data-hint="true"] { animation: none; filter: drop-shadow(0 0 0.5rem var(--rt-gold)); }
  .rt-advance__sheen { animation: none; display: none; }
  .rt-metric[data-flash]:not([data-flash=""])::after, .rt-metric[data-flash]:not([data-flash=""]) .rt-metric__value { animation-duration: 1ms; }
  .rt-loader__mark, .rt-loader { transition-duration: 1ms; }
  .rt-bar i, .rt-metric__bar i, .rt-rail i { transition: none; }
}
