@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,600;0,9..144,800;1,9..144,400&family=Archivo:wdth,wght@62..125,400;62..125,600;62..125,800&display=swap");
/* Meridia v2 — shell y pantalla Hoy. Solo tokens de css/tarot.css.
   Look: v2/mockup-hoy.html (aprobado por Matías). */

:root{ --nav-h:64px; --side-w:210px }

/* ── shell ── */
body.v2{padding-bottom:calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}
body.v2.has-mini{padding-bottom:calc(var(--nav-h) + 90px + env(safe-area-inset-bottom))}
.v2-top{display:flex;justify-content:space-between;align-items:center;gap:12px;
  max-width:var(--max);margin:auto;padding:calc(14px + env(safe-area-inset-top)) 18px 4px}
.v2-brand{font-weight:700;letter-spacing:.14em;font-size:13px;text-transform:uppercase;color:var(--ink);text-decoration:none}
.v2-top .auth-box{position:static;margin:0}

.v2-nav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;
  background:var(--surface);border-top:1px solid var(--line);
  padding:8px 4px calc(8px + env(safe-area-inset-bottom))}
.v2-nav .v2-brand{display:none}
.v2-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;
  font-size:11px;color:var(--ink-faint);text-decoration:none;padding:4px 0;border-radius:8px}
.v2-nav a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6}
/* activa: bloque sólido de marca, no solo color (paleta "Autoral": el
   acento vive en bloques grandes, no en filigrana fina — Matías 29/9) */
.v2-nav a[aria-current="page"]{background:var(--gold);color:var(--gold-ink);font-weight:600}
.v2-nav a[aria-current="page"] svg{stroke-width:2.2}
.v2-nav a:focus-visible{outline:none;box-shadow:var(--focus-ring)}
/* el mini-reproductor de la v1 se apoya sobre la barra */
body.v2 .mini:not([hidden]){bottom:calc(var(--nav-h) + env(safe-area-inset-bottom))}

@media (min-width:900px){
  body.v2{padding:0 0 40px var(--side-w)}
  body.v2.has-mini{padding-bottom:110px}
  .v2-top .v2-brand{visibility:hidden}
  .v2-nav{top:0;right:auto;width:var(--side-w);flex-direction:column;gap:4px;
    border-top:0;border-right:1px solid var(--line);padding:22px 14px}
  .v2-nav .v2-brand{display:block;margin:0 10px 22px}
  .v2-nav a{flex:none;flex-direction:row;gap:10px;padding:10px;font-size:14px;color:var(--ink-soft)}
  .v2-nav a svg{width:18px;height:18px}
  .v2-nav a[aria-current="page"]{background:var(--gold);color:var(--gold-ink)}
  body.v2 .mini:not([hidden]){bottom:0;left:var(--side-w)}
}

/* ── Hoy ── */
.hoy{padding:8px 0 16px}
.hoy .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}
.hoy-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.hoy-h{font-size:24px;font-weight:600;letter-spacing:-.01em;margin:0}
.chip{font-family:var(--mono);font-size:11px;padding:5px 10px;border:1px solid var(--gold-line);color:var(--gold);
  border-radius:999px;background:var(--gold-soft);white-space:nowrap}
.hoy-s{font-size:13px;color:var(--ink-soft);margin:4px 0 0}
.hoy-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}

.hoy-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}

.hoy-next{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.hoy-art{width:84px;flex:none;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);aspect-ratio:3/5;background:var(--surface-2)}
.hoy-art img{width:100%;height:100%;object-fit:cover;display:block}
.hoy-meta{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-width:0}
.hoy-t{font-size:17px;font-weight:600;line-height:1.25}
.hoy-btn{display:inline-flex;align-items:center;gap:8px;background:var(--gold);color:var(--gold-ink);font-weight:600;font-size:14px;
  border:0;border-radius:8px;padding:10px 16px;width:max-content;cursor:pointer}
.hoy-btn svg{width:14px;height:14px}
.hoy-btn.ghost{background:transparent;color:var(--gold);border:1px solid var(--gold-line);margin-top:10px}
.hoy-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}

.hoy-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.hoy-row .eyebrow{margin:0}
.hoy-big{font-size:26px;font-weight:700}
.hoy-big small{font-size:14px;font-weight:500;color:var(--ink-soft)}
.hoy-bar{height:6px;background:var(--surface-3);border-radius:99px;overflow:hidden}
.hoy-bar i{display:block;height:100%;background:var(--gold)}
.hoy-stats{display:flex;gap:18px;margin-top:12px;font-size:12px;color:var(--ink-soft)}
.hoy-stats b{display:block;font-size:16px;color:var(--ink);font-weight:600}

.hoy-week{display:flex;justify-content:space-between;max-width:420px}
.hoy-week span{width:38px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--ink-faint)}
.hoy-week span i{display:block;width:26px;height:26px;margin:5px auto 0;border-radius:50%;border:1px solid var(--line)}
.hoy-week span.on i{background:var(--gold);border-color:var(--gold)}
.hoy-week span.today{color:var(--ink);font-weight:600}
.hoy-week span.today i{border-color:var(--gold)}

.hoy-cod{display:flex;gap:14px;align-items:center;color:inherit;text-decoration:none}
.hoy-cod img{width:58px;border-radius:5px;border:1px solid var(--line)}
.hoy-cod h3{font-size:15px;font-weight:600;margin:2px 0 0}
.hoy-cod .eyebrow{margin:0}

.hoy-shelf{display:flex;gap:8px;overflow:hidden}
.hoy-shelf .c{width:56px;flex:none;aspect-ratio:3/5;border-radius:5px;overflow:hidden;border:1px solid var(--line);background:var(--surface-2);position:relative}
.hoy-shelf .c img{width:100%;height:100%;object-fit:cover;display:block}
.hoy-shelf .c.sin img{filter:grayscale(1) brightness(.35)}
.hoy-shelf .c.media img{filter:grayscale(.8) brightness(.6)}
.hoy-shelf .c.media::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--gold)}

@media (min-width:900px){
  .hoy{padding-top:4px}
  .hoy-h{font-size:28px}
  .hoy-grid{grid-template-columns:1.4fr 1fr;gap:18px;align-items:start;
    grid-template-areas:"next prog" "compra cod" "week cod" "shelf cod"}
  .g-next{grid-area:next} .g-prog{grid-area:prog} .g-compra{grid-area:compra}
  .g-week{grid-area:week} .g-cod{grid-area:cod} .g-shelf{grid-area:shelf}
}

/* ── comunes a Ruta / Cartas / Progreso ── */
.v2-pant{padding:8px 0 16px}
.v2-pant .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}
.v2-pant > .hoy-s{margin-bottom:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.v2-x{background:none;border:1px solid var(--line);color:var(--ink-soft);border-radius:8px;min-width:36px;min-height:36px;cursor:pointer;font-size:16px}
.v2-x:disabled{opacity:.35;cursor:default}
button:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* "Siguiente" al terminar un audio (sin auto-avance) */
.v2-siguiente:not([hidden]){position:fixed;left:50%;transform:translateX(-50%);z-index:65;
  bottom:calc(var(--nav-h) + 86px + env(safe-area-inset-bottom));
  display:flex;gap:8px;align-items:center;background:var(--surface-2);border:1px solid var(--gold-line);
  border-radius:12px;padding:8px;box-shadow:var(--shadow);max-width:calc(100vw - 24px)}
.v2-siguiente .hoy-btn{max-width:70vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (min-width:900px){.v2-siguiente:not([hidden]){bottom:96px;left:calc(50% + var(--side-w) / 2)}}

/* diálogo nativo */
.v2-dlg{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:20px;max-width:360px;width:calc(100vw - 32px)}
.v2-dlg::backdrop{background:var(--overlay)}
.dlg-acciones{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.dlg-acciones .ghost{margin-top:0}

/* ── Ruta ── */
.r-tramo{margin-top:22px}
.r-h{font-size:15px;font-weight:600;display:flex;justify-content:space-between;align-items:baseline;margin:0 0 8px}
.r-cuenta{font-family:var(--mono);font-size:11px;color:var(--ink-faint);font-weight:400}
.r-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.r-fila{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.r-fila.reco{border-color:var(--gold-line);background:var(--gold-soft)}
.r-fila.pronto{opacity:.55}
.r-main{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:none;border:0;color:inherit;padding:12px 14px;cursor:pointer;border-radius:var(--radius)}
.r-fila.pronto .r-main{cursor:default}
.r-t{font-size:15px;font-weight:500}
.r-s{font-size:12px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.r-badge{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:var(--gold);color:var(--gold-ink);border-radius:4px;padding:2px 6px}
.r-estado{display:inline-flex;gap:4px}
.r-estado.hecho{color:var(--done);font-weight:600}
.r-estado.empezado{color:var(--gold)}
.r-vers{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 12px}
.r-ver{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:12px;cursor:pointer}

/* ── Cartas ── */
.c-filtros{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.c-chip{background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}
.c-chip[aria-pressed="true"]{background:var(--gold-soft);border-color:var(--gold-line);color:var(--gold);font-weight:600}
.c-cuenta{font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin:10px 0}
.c-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.c-celda{display:flex;flex-direction:column;gap:4px;width:100%;background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer;border-radius:6px}
.c-celda img{width:100%;height:auto;aspect-ratio:3/5;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:var(--surface-2);display:block}
.c-celda.sin img{opacity:.55}
.c-celda.media img{filter:grayscale(.8) brightness(.6);border-bottom:3px solid var(--gold)}
.c-nombre{font-size:12px;line-height:1.25}
.c-celda.sin .c-nombre{color:var(--ink-faint)}
.c-sub{font-size:11px;color:var(--ink-soft)}
.c-celda.media .c-sub{color:var(--gold)}
.c-vacio{padding:24px 0}

/* ── Progreso ── */
.v2-pant > .hoy-card{margin-top:16px}
.p-top{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.p-big{font-size:40px;line-height:1}
.p-top .hoy-s{margin-top:10px}
.p-cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;text-transform:capitalize}
.p-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;max-width:360px;margin:0 auto}
.p-dow{font-family:var(--mono);font-size:10px;color:var(--ink-faint)}
.p-dia{font-size:12px;line-height:32px;border-radius:50%;color:var(--ink-soft)}
.p-dia.on{background:var(--gold);color:var(--gold-ink);font-weight:600}
.p-dia.today{box-shadow:inset 0 0 0 1px var(--gold)}
.p-grilla{overflow-x:auto;margin-top:12px}
.p-fila{display:grid;grid-template-columns:62px repeat(14,minmax(0,1fr));gap:2px;margin-bottom:2px}
.p-lbl{font-size:11px;color:var(--ink-faint);align-self:center}
.p-lbl.on{color:var(--ink);font-weight:600}
.p-col{font-family:var(--mono);font-size:9px;text-align:center;color:var(--ink-faint)}
.p-col.on{color:var(--gold);font-weight:600}
.p-celda{aspect-ratio:3/4;border-radius:3px;background:var(--surface-3)}
.p-celda.media{background:var(--gold-soft);box-shadow:inset 0 -3px 0 var(--gold)}
.p-celda.descubierta{background:var(--gold)}
.p-ins{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.p-ins li{display:flex;gap:6px;align-items:center;font-size:13px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--ink-faint)}
.p-ins li.on{border-color:var(--gold-line);color:var(--gold);background:var(--gold-soft)}

/* ── Reproductor v2 (capa sobre el de la v1: mismos ids, colores del sistema) ── */
body.v2 .mini:not([hidden]){background:var(--surface);backdrop-filter:none;border-top:1px solid var(--line)}
@media (max-width:640px){
  /* en celular el mini queda en −15 · play · +15; anterior/siguiente están en el player completo */
  body.v2 #miniPrev, body.v2 #miniNext, body.v2 .mini-up{display:none}
}
body.v2 .player-full:not([hidden]){background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none;z-index:60}
.pf2{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:16px;margin:auto 0}
.pf2 .eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0}
.pf2-top{width:100%;display:flex;justify-content:space-between;align-items:center}
.pf2-card{width:min(180px,42vw);aspect-ratio:3/5;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2)}
.pf2-meta{text-align:center}
.pf2-title{font-size:20px;font-weight:600;margin:4px 0 0;line-height:1.25}
.pf2 .pf-scrub-row{width:100%}
.pf2-controls{display:flex;align-items:center;justify-content:center;gap:10px}
.pf2-vers{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.pf2-ver{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:var(--radius);padding:10px 12px;cursor:pointer;font-size:12px}
.pf2-ver span{color:var(--ink-soft)}
.pf2-ver[aria-pressed="true"]{border-color:var(--gold-line);background:var(--gold-soft)}
.pf2-ver[aria-pressed="true"] strong{color:var(--gold)}
.pf2 .pf2-ver .pf2-ok{color:var(--done);font-weight:600}
.pf2-ajustes{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.pf2-next{text-align:center}

/* aviso "Sigue: …" y respaldo cuando el navegador bloquea el play */
.sig-t{font-size:13px;color:var(--ink-soft);padding-left:4px;white-space:nowrap}
.v2-siguiente.alerta{border-color:var(--gold);background:var(--gold-soft)}
.v2-siguiente.alerta .sig-t{color:var(--gold);font-weight:600}
body.player-open .v2-siguiente:not([hidden]){bottom:auto;top:calc(12px + env(safe-area-inset-top))}
@media (min-width:900px){body.player-open .v2-siguiente:not([hidden]){left:50%}}

/* ── Más ── */
.mas-sec{margin-top:16px}
.mas-sec .r-h{margin-bottom:10px}
.mas-sec a{color:var(--gold)}
.mas-pasos{margin:0;padding-left:20px;color:var(--ink-soft);font-size:14px;line-height:1.6}
.mas-switch{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px;cursor:pointer}
.mas-switch input{width:20px;height:20px;accent-color:var(--gold);flex:none;margin-top:2px}
.mas-switch > span{display:flex;flex-direction:column}
.mas-faq{border-top:1px solid var(--line);padding:10px 0}
.mas-faq summary{cursor:pointer;font-size:14px;font-weight:500}
.mas-faq[open] summary{color:var(--gold)}
.mas-faq p{margin-top:8px}
.mas-testi{margin:0 0 12px;padding-left:12px;border-left:2px solid var(--gold-line)}
.contacto a{color:var(--gold)}
.pu-n{margin-bottom:4px}
.v2-offline:not([hidden]){position:sticky;top:0;z-index:50;background:var(--gold-soft);border-bottom:1px solid var(--gold-line);
  color:var(--gold);font-size:13px;text-align:center;padding:8px 16px}

/* ── QA-M3 / QA-M4 ── */
/* (el --ink-faint AA ahora vive por campo, en el bloque «Campos de color» al final) */
.paywall-title{padding-right:40px} /* la ✕ no tapa el título en 360-390 px */
.mas-faq{padding:0}
.mas-faq summary{min-height:44px;box-sizing:border-box;padding:12px 0}
.mas-faq p{margin:0 0 12px}
.mas-sec p > a{display:inline-block;min-height:24px;line-height:24px}
.p-dow,.p-col{font-size:11px}
.hoy-acciones{display:flex;flex-wrap:wrap;gap:8px}
/* Barra del player: área táctil de 44 px y tiempo destino al arrastrar */
.pf2 .pf-scrub::before{content:"";position:absolute;left:0;right:0;top:-19px;bottom:-19px}
.pf2 .pf-scrub{margin:19px 0 4px}
.pf2 .pf-scrub.arrastrando .pf-scrub-bead{transform:scale(1.4)}
.pf-scrub-tip{position:absolute;bottom:22px;left:calc(var(--f,0) * 100%);transform:translateX(-50%);display:none;
  font-family:var(--mono);font-size:12px;background:var(--surface-3);color:var(--ink);padding:3px 7px;border-radius:6px;pointer-events:none;white-space:nowrap}
.pf-scrub.arrastrando .pf-scrub-tip{display:block}
.r-lock{display:inline-flex;align-items:center;gap:4px;color:var(--ink-soft)}
.r-lock svg,.hoy-btn.ghost svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8}

/* ── Bienvenida (UX A1) ── */
.v2-dlg.pu{padding:24px}
.pu-t{font-size:22px;font-weight:700;line-height:1.2;margin:0 0 8px;color:var(--ink)}
.pu-x{font-size:15px;line-height:1.5;color:var(--ink);margin:0}
.pu-pie{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px;min-height:24px}
.pu-puntos{display:flex;gap:6px}
.pu-puntos i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.pu-puntos i.on{background:var(--gold)}
.pu-saltear{background:none;border:0;color:var(--ink-soft);font-size:14px;cursor:pointer;padding:8px 0}
.pu-sig{width:100%;justify-content:center}
.pu-abanico{display:flex;justify-content:center;height:130px;margin:0 0 18px}
.pu-c{width:74px;aspect-ratio:3/5;object-fit:cover;border-radius:6px;border:1px solid var(--line);box-shadow:var(--shadow)}
.pu-c:first-child{transform:rotate(-9deg) translate(14px,8px)}
.pu-c:last-child{transform:rotate(9deg) translate(-14px,8px)}
.pu-c.dorso{position:relative;z-index:1}
.pu-tabs{display:flex;justify-content:space-around;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 4px;margin:0 0 18px}
.pu-tabs span{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--ink-faint)}
.pu-tabs svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6}
.pu-tabs .on{color:var(--gold);font-weight:600}
.pu-tabs .on svg{stroke-width:2.2}
.r-nota{margin:-2px 0 10px}
.hoy-link{font-size:13px;color:var(--gold);text-decoration:none}
.c-vacio .hoy-btn{margin-top:10px}
.hoy-h .r-cuenta{margin-left:10px;font-size:13px;vertical-align:middle}
/* Ruta limpia (UX A5) */
.r-t .r-lock{margin-right:6px;vertical-align:-1px}
.r-nota svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;vertical-align:-2px}
.r-estado.hecho{font-size:14px}
/* Portada provisoria de los audios sin carta (UX A2): papel, número de clase y sección */
.v2-portada{width:100%;height:100%;aspect-ratio:3/5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:radial-gradient(circle at 50% 38%,var(--surface-3),var(--surface-2) 70%);color:var(--gold);text-align:center;border-radius:inherit}
.v2-portada b{font-size:40px;font-weight:600;line-height:1}
.v2-portada span{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:0 6px}
.pf2-card.v2-portada{height:auto;width:min(180px,42vw);border:1px solid var(--line);border-radius:var(--radius)}
.pf2-card.v2-portada b{font-size:64px}
#miniThumb.is-glyph{color:var(--gold);font-weight:600}

/* ── Tipografía y espaciado (UX M1, M2): escala con más saltos, grupos con más aire ── */
.hoy-h{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.hoy-t{font-size:19px}
.r-t{font-size:16px;font-weight:600}
.hoy-s{font-size:15px;line-height:1.5}
.hoy-next .hoy-s,.hoy-cod .hoy-s,.r-s,.c-sub,.pf2-ver,.mas-switch .hoy-s,.v2-portada + .hoy-s{font-size:13px}
.c-nombre{font-size:13px}
.r-badge{font-size:11px}
.hoy-card,.hoy-next{padding:16px}
.hoy-grid{gap:24px}
.v2-pant > .hoy-card,.mas-sec{margin-top:24px}
.r-tramo{margin-top:28px}
.r-lista{gap:8px}
.hoy-stats{font-size:13px}
@media (min-width:900px){.hoy-h{font-size:32px}}
.v2-pant > .hoy-btn{margin:4px 0 0}

/* ── Estado cero y jerarquía de Hoy / Progreso (UX A6, M3) ── */
.hoy-linea{margin-top:6px}
.g-prog .hoy-week{margin-top:16px;max-width:none}
.hoy-compra{display:flex;flex-direction:column;gap:10px;padding:16px 0 0;border-top:1px solid var(--line)}
.hoy-compra .hoy-btn.ghost{margin-top:0}
.hoy-compra strong{font-size:15px}
@media (min-width:900px){
  .hoy-grid{grid-template-areas:"next cod" "prog shelf" "compra compra"}
}
.p-top{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.p-top .hoy-bar{margin-top:10px}
.p-big{font-size:34px;margin:4px 0 0}
.p-leyenda{font-size:13px;margin-top:6px}
.p-fila.palo-bastos .p-celda.descubierta{background:var(--wands)} .p-fila.palo-bastos .p-celda.media{box-shadow:inset 0 -3px 0 var(--wands)}
.p-fila.palo-copas .p-celda.descubierta{background:var(--cups)} .p-fila.palo-copas .p-celda.media{box-shadow:inset 0 -3px 0 var(--cups)}
.p-fila.palo-espadas .p-celda.descubierta{background:var(--swords)} .p-fila.palo-espadas .p-celda.media{box-shadow:inset 0 -3px 0 var(--swords)}
.p-fila.palo-pentaculos .p-celda.descubierta{background:var(--pentacles)} .p-fila.palo-pentaculos .p-celda.media{box-shadow:inset 0 -3px 0 var(--pentacles)}
.p-fila.palo-bastos .p-lbl.on{color:var(--wands)} .p-fila.palo-copas .p-lbl.on{color:var(--cups)}
.p-fila.palo-espadas .p-lbl.on{color:var(--swords)} .p-fila.palo-pentaculos .p-lbl.on{color:var(--pentacles)}
.p-ins li{padding:0}
.p-ins button{display:flex;gap:6px;align-items:center;background:none;border:0;color:inherit;font:inherit;padding:8px 12px;min-height:36px;cursor:pointer;border-radius:999px}
.p-como{margin-top:10px;min-height:1em}

/* ── Cartas (UX A3): dorso provisorio en paleta, grupos, filtros en una línea, nombres ── */
.c-scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px 4px;padding:0 16px}
.c-scroll::-webkit-scrollbar{display:none}
.c-scroll .c-chip{flex:none}
.c-barra{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:6px 0 4px}
.c-barra .c-cuenta{margin:0}
.c-seg{flex-wrap:nowrap;gap:0;margin:0;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.c-seg .c-chip{border:0;border-radius:0;padding:6px 10px;font-size:12px;background:none}
.c-seg .c-chip[aria-pressed="true"]{background:var(--gold-soft)}
.c-sec{margin-top:20px}
.c-cero{margin:4px 0 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.c-cero .hoy-btn{text-decoration:none;margin-top:6px}
/* Dorso provisorio: CardBacks.png llevado a tinta cálida + marco dorado; la imagen propia viene después */
.c-dorso{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;aspect-ratio:3/5;
  border-radius:6px;border:1px solid var(--gold-line);overflow:hidden;color:var(--gold);background:var(--surface-2)}
.c-dorso::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(23,21,18,.5),rgba(23,21,18,.5)),url("../media/ui/dorso-carta.webp?v=2") center/cover}
.c-dorso > *{position:relative}
.c-dorso b{font-size:22px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.c-dorso svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.7;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.c-dorso.palo-bastos{color:var(--wands)} .c-dorso.palo-copas{color:var(--cups)}
.c-dorso.palo-espadas{color:var(--swords)} .c-dorso.palo-pentaculos{color:var(--pentacles)}

.c-celda.descubierta img{border-color:var(--gold-line)}
.c-celda.sin .c-nombre{color:var(--ink-soft)}
.c-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
@media (max-width:374px){.c-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.c-nombre{font-size:12px}}

/* ── Momento de descubrir (UX A4): sobre el mini, la carta gira del dorso al frente ── */
.v2-descubri:not([hidden]){position:fixed;left:50%;transform:translateX(-50%);z-index:66;
  bottom:calc(var(--nav-h) + 150px + env(safe-area-inset-bottom));width:min(360px,calc(100vw - 24px));
  display:flex;gap:14px;align-items:center;background:var(--surface-2);border:1px solid var(--gold-line);
  border-radius:14px;padding:12px;box-shadow:var(--shadow)}
@media (min-width:900px){.v2-descubri:not([hidden]){bottom:160px;left:calc(50% + var(--side-w) / 2)}}
body.player-open .v2-descubri:not([hidden]){bottom:auto;top:calc(72px + env(safe-area-inset-top));left:50%}
.dsc-carta{position:relative;width:60px;flex:none;aspect-ratio:3/5;perspective:600px}
.dsc-cara{position:absolute;inset:0;width:100%;height:100%;border-radius:5px;border:1px solid var(--gold-line);backface-visibility:hidden;object-fit:cover}
.dsc-dorso{background:url("../media/ui/dorso-carta.webp?v=2") center/cover;transform:rotateY(180deg)}
.dsc-frente.media{filter:grayscale(.8) brightness(.6)}
.v2-descubri.gira .dsc-frente{animation:dsc-frente .6s ease-out both}
.v2-descubri.gira .dsc-dorso{animation:dsc-dorso .6s ease-out both}
@keyframes dsc-frente{from{transform:rotateY(-180deg)}to{transform:rotateY(0)}}
@keyframes dsc-dorso{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}
@media (prefers-reduced-motion:reduce){.v2-descubri.gira .dsc-frente,.v2-descubri.gira .dsc-dorso{animation:none}}
.dsc-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.dsc-txt strong{font-size:16px;line-height:1.25}
.dsc-txt > span{font-size:13px;color:var(--ink-soft)}
.dsc-acc{display:flex;gap:8px;margin-top:8px}
.dsc-acc .hoy-btn{padding:7px 12px;font-size:13px}
.dsc-acc .ghost{margin-top:0}
/* QA-4: chips de Cartas y "Entrar con Google" con área táctil de 44 px */
.c-chip,.auth-btn{min-height:44px}


/* Imágenes de apoyo (v2/tipos-de-imagen.md). Las cabeceras ya no llevan imagen: ver «Dirección A». */
.r-main.con-elemento{display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center}
.r-main.con-elemento > :not(.r-elemento){grid-column:2}
.r-elemento{grid-row:1 / span 2;width:44px;height:44px;border-radius:8px;object-fit:cover;border:1px solid var(--line)}
.ficha-elemento{display:block;width:96px;height:96px;border-radius:10px;object-fit:cover;border:1px solid var(--line);margin:4px 0 10px}
.v2-vacio-img{display:block;width:100%;max-height:200px;object-fit:cover;border-radius:10px}
.c-cero .v2-vacio-img{max-height:130px;object-position:center 72%}
.pu-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;margin:0 0 16px}
.mas-instalar-img{float:right;width:84px;height:84px;object-fit:cover;border-radius:10px;margin:0 0 8px 12px}
.p-vacio{max-height:170px;margin:10px 0 12px}



/* ═══════════════════════════════════════════════════════════════════════
   Dirección «Cartel + índice» · orientación variante B, neutra (Matías, 30/9)
   Referencias: diseno/24-variante-b.html (aprobado) · 24-spec-variante-b.md · 23-spec-orientacion.md
   · Shell neutro e igual en todas las pantallas: sin campos de color por pantalla ni por tramo.
   · La jerarquía la hacen la escala, los filetes en --ink y la nav fija.
   · Fraunces (800/300/cursiva) para títulos y números, Archivo para la interfaz.
   · REGLA DEL OCRE: ocre en la nav = ubicación. En el contenido, un solo ocre accionable por
     pantalla (Hoy: Escuchar · Ruta: la fila recomendada · reproductor: play/pausa · bienvenida:
     Siguiente). En Hoy hay dos a propósito (barra de la nav + Escuchar), no es un error. Con el
     acordeón de «Tu ruta» abierto, el audio actual también va en ocre: es la misma acción.
     Lo demás que antes era ocre (rótulos, links, estados elegidos) va en --ink o --ink-soft.
   · Todo lo que sangra a los bordes usa --gut (= relleno lateral de <main>): nada desborda.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 0 · tokens ── */
:root{
  --display2:"Fraunces",Georgia,serif;
  --ui2:"Archivo","Libre Franklin",system-ui,sans-serif;
  --gut:20px;
  --paper:#131218; --surface:#1D1C24; --surface-2:#26252F; --surface-3:#302F3A;
  --line:#3A3846; --line-soft:#2A2933; --nav-bg:#0B0B0F;
  --ink:#F1E9D8; --ink-soft:#C4BFB4; --ink-faint:#9A958C;
  --overlay:rgba(6,6,8,.84);
  --nav-h:73px; /* alto real de la nav con ícono + label (medido) */
}
@media (max-width:650px){:root{--gut:16px}} /* tarot.css: main{padding:0 16px} a ≤650px */
html{background:var(--paper)}
body.v2{background:var(--paper);font-family:var(--ui2);overflow-x:clip}
body.v2 button,body.v2 input{font-family:inherit}

/* ── 1 · tipografía ── */
/* sin font-variation-settings "opsz" fijo: con 144 forzado, a 26-30px Fraunces cerraba tanto
   que se comía los espacios («Tucuenta», «Preguntasfrecuentes»). */
.hoy-h,.r-h,.hoy-t,.pu-t,.cdd h3,.hoy-big,.hoy-stats b,.pf2-title,.v2-portada b,.sheet-title,.hp-n{
  font-family:var(--display2);font-weight:800;letter-spacing:-.03em}
.eyebrow,.hoy .eyebrow,.v2-pant .eyebrow,.pf2 .eyebrow,.kw-box .eyebrow,.cdd-k,.hoy-prog h2{
  font-family:var(--display2);font-style:italic;font-weight:400;font-size:17px;
  letter-spacing:0;text-transform:none;color:var(--ink-soft);margin:0 0 4px}
.v2-brand{font-family:var(--display2);font-style:italic;font-weight:400;font-size:17px;letter-spacing:0;text-transform:lowercase}
.r-cuenta,.c-cuenta,.pf-speed,.pf-scrub-tip,.p-dow,.p-col,.r-badge,.chip,.hoy-week span,.r-s,.hp-s,.seg-dur,.hp-a time,.pf2-pos{
  font-family:var(--ui2);font-variant-numeric:tabular-nums}
/* etiqueta de pantalla («HOY», «RUTA»…): la misma en las cinco */
.v2-lab{font-family:var(--ui2);font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0;padding-top:20px}
.hoy-h{font-size:40px;line-height:.95;letter-spacing:-.03em}
.r-h{font-size:28px;line-height:1}
.r-h .r-cuenta,.hoy-h .r-cuenta{font-family:var(--ui2);font-size:14px;font-weight:600;letter-spacing:0;color:var(--ink-soft);white-space:nowrap}
.hoy-h .r-cuenta{margin-left:12px;vertical-align:middle}
.hoy-t,.pu-t{letter-spacing:-.025em}
@media (min-width:900px){.hoy-h{font-size:52px}}

/* ── 2 · piezas comunes ── */
.hoy-btn{border-radius:0;font-weight:800;padding:13px 18px}
/* secundario: borde ink de 1.5px, nunca ocre; 44px de área táctil */
.hoy-btn.ghost{border:1.5px solid var(--ink);color:var(--ink);background:transparent;min-height:44px}
.v2-x{border-radius:0;border:1.5px solid var(--line)}
.chip{border:1.5px solid var(--line);border-radius:0;background:none;color:var(--ink-soft);font-weight:800;font-size:12px}
.hoy-link{color:var(--ink-soft);font-weight:600}
/* sección = filete duro arriba, nunca una caja */
.hoy-card{background:none;border:0;border-radius:0;padding:14px 0 0;border-top:2px solid var(--ink)}
.hoy-compra{border-top:2px solid var(--ink)}
/* cabecera de pantalla: etiqueta + título + bajada, sin imagen */
.v2-cab{position:relative;border:0;border-radius:0;background:none;margin:0 calc(-1 * var(--gut));padding:6px var(--gut) 22px}
.v2-cab .hoy-s{max-width:none;margin-top:8px}
/* elegido (chips, versión, día escuchado): bloque invertido en ink, sin ocre */
.c-chip[aria-pressed="true"],.c-seg .c-chip[aria-pressed="true"],.pf2-ver[aria-pressed="true"],.seg-btn[aria-pressed="true"],
.p-ins li.on,.p-dia.on{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:800}
.pf2-ver[aria-pressed="true"] strong,.pf2-ver[aria-pressed="true"] span,.p-ins li.on button{color:var(--paper)}

/* ── 3 · nav fija: mismo fondo en todas las pantallas; la activa lleva una barra ocre arriba ── */
.v2-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;background:var(--nav-bg);border-top:1px solid var(--line);
  padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
.v2-nav a{position:relative;flex-direction:column;gap:4px;padding:12px 0 7px;border:0;border-radius:0;
  font-size:12px;font-weight:600;letter-spacing:.01em;color:var(--ink-soft)}
.v2-nav a svg{display:block;width:20px;height:20px;stroke-width:1.6}
.v2-nav a[aria-current="page"],.v2-nav a[aria-current="page"]:hover{background:none;color:var(--ink);font-weight:800}
.v2-nav a[aria-current="page"] svg{stroke-width:2.2}
/* arriba y no abajo: no choca con el home indicator de iOS */
.v2-nav a[aria-current="page"]::before{content:"";position:absolute;left:10%;right:10%;top:-8px;height:4px;background:var(--gold)}
body.v2 .mini:not([hidden]){background:var(--paper);border-top:1px solid var(--line)}
@media (min-width:900px){ /* riel lateral: la barra pasa al borde izquierdo */
  .v2-nav{display:flex;border-top:0;border-right:1px solid var(--line);padding:22px 14px}
  .v2-nav a{flex-direction:row;font-size:15px;padding:10px 12px;margin:0}
  .v2-nav a[aria-current="page"]{background:none;color:var(--ink)}
  .v2-nav a[aria-current="page"]::before{left:-14px;right:auto;top:6px;bottom:6px;width:4px;height:auto}
}

/* ── 4 · Hoy: cartel → carta del día → tu ruta → tus cartas ── */
.cab-hoy{padding-bottom:18px;align-items:flex-start}
.hoy-linea{font-family:var(--display2);font-style:italic;font-weight:400;font-size:17px;color:var(--ink-soft);margin-top:4px}
.hoy-grid{gap:28px}
/* el cartel: bloque de surface; en el celular ocupa el ancho de la pantalla */
.hoy-next{display:block;position:relative;overflow:hidden;background:var(--surface);border:0;border-radius:0;padding:18px var(--gut) 0}
.hoy-art{float:right;width:110px;aspect-ratio:2/3;margin:2px 0 8px 12px;border:0;border-radius:0}
.hoy-meta{display:block}
.hoy-meta > div:first-child{display:flow-root} /* el título no se mete debajo de la carta */
.hoy-tramo{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.hoy-next .eyebrow{font-size:15px;margin:8px 0 0}
/* 54px o 40px según entre en 2 líneas (ajustarTitulo, app.js); nunca parte una palabra */
.hoy-next .hoy-t{font-size:54px;line-height:.88;letter-spacing:-.035em;margin:10px 0 14px;hyphens:none;overflow-wrap:normal;word-break:normal}
.hoy-next .hoy-acciones{clear:both;display:block;margin:0}
.hoy-next .hoy-btn{display:flex;align-items:baseline;justify-content:flex-start;gap:10px;font-size:16px;
  width:calc(100% + 2 * var(--gut));margin:0 calc(-1 * var(--gut));padding:15px var(--gut)}
.hoy-next .hoy-btn svg{align-self:center}
.hoy-btn-meta{margin-left:auto;font-weight:600;font-size:12.5px}
.hoy-btn-meta:empty{display:none}
.hoy-otra{margin-top:10px}
.hoy-otra .hoy-btn{width:100%;justify-content:center;font-size:13.5px;padding:8px 12px}
.hoy-otra .hoy-s{font-size:13px;margin-top:8px}
@media (max-width:899px){.hoy-next{margin:0 calc(-1 * var(--gut))}}
/* la carta del día: segunda pieza, siempre más chica que el cartel (104 < 110px; 28px < 40px) */
.cdd-k{color:var(--ink)}
.cdd-box{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;border-top:2px solid var(--ink);padding-top:14px;margin-top:8px}
.cdd-img img{display:block;width:104px;aspect-ratio:2/3;object-fit:cover}
.cdd-meta{font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.cdd h3{font-size:28px;line-height:.9;margin:6px 0 8px;hyphens:none;overflow-wrap:normal}
@media (max-width:359px){.cdd h3{font-size:22px}} /* en 320 el cartel baja hasta 26px con «Enamorados»: la del día sigue más chica */
.cdd p{font-size:13.5px;line-height:1.4;color:var(--ink-soft);margin:0}
.cdd-btn{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;
  border:1.5px solid var(--ink);border-radius:0;background:none;color:var(--ink);font-size:13.5px;font-weight:800;text-decoration:none;cursor:pointer}
.cdd-btn svg{width:13px;height:13px;stroke:currentColor;fill:none}
.cdd-una .hoy-s{border-top:2px solid var(--ink);padding-top:10px;margin-top:8px}
/* «Tu ruta»: filas numeradas que se despliegan en el lugar */
.hoy-prog .hoy-row{margin-bottom:6px}
.hoy-prog h2{margin:0}
.hp-item{border-top:1px solid var(--line)}
.hoy-row + .hp-item{border-top:2px solid var(--ink)}
.hp-row{position:relative;width:100%;display:grid;grid-template-columns:40px minmax(0,1fr) auto 18px;align-items:center;gap:8px;
  padding:10px 0;margin:0;background:none;border:0;border-radius:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.hp-n{font-size:26px;line-height:1}
.hp-t{font-weight:800;font-size:15px;line-height:1.15}
.hp-s{font-size:12px;font-weight:600;color:var(--ink-soft);text-align:right;white-space:nowrap}
.hp-ch{font-size:13px;color:var(--ink-soft);justify-self:center;transition:transform .2s}
.hp-row[aria-expanded="true"] .hp-ch{transform:rotate(180deg);color:var(--ink)}
.hp-row:hover .hp-t{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.hp-item.done .hp-row{color:var(--ink-faint)}
.hp-item.now .hp-row{padding-left:12px;margin-left:-12px;width:calc(100% + 12px)}
.hp-item.now .hp-row::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:4px;background:var(--ink)}
.hp-item.now .hp-s{color:var(--ink);font-weight:800}
.hp-panel{padding:0 0 12px 40px}
.hp-panel ul{list-style:none;margin:0;padding:0}
.hp-a button{width:100%;display:grid;grid-template-columns:30px minmax(0,auto) minmax(8px,1fr) auto;align-items:baseline;gap:6px;
  padding:8px 0;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:none;color:var(--ink);
  font:600 14.5px/1.25 var(--ui2);text-align:left;cursor:pointer}
.hp-a:first-child button{border-top:0}
.hp-a i{font-style:normal;font-family:var(--display2);font-weight:800;font-size:13px;color:var(--ink-soft)}
.hp-d{border-bottom:2px dotted var(--line);transform:translateY(-4px)}
.hp-a time{font-size:12px;color:var(--ink-soft);white-space:nowrap}
.hp-a time .r-lock{display:inline-flex;margin-right:4px;vertical-align:-2px}
.hp-a.ok button{color:var(--ink-faint)}
.hp-a.cur button{background:var(--gold);color:var(--gold-ink);font-weight:800;margin-left:-10px;padding:8px 8px 8px 10px;width:calc(100% + 18px)}
.hp-a.cur i,.hp-a.cur time{color:var(--gold-ink)}
.hp-a.cur .hp-d{border-color:var(--gold-ink)}
.hp-mas{display:block;font-size:13px;font-weight:800;padding-top:8px;color:var(--ink);text-decoration:none}
.hp-mas:hover{text-decoration:underline}
/* el resto de Hoy */
.hoy-big{font-size:64px;letter-spacing:-.05em;line-height:.9}
.hoy-big small{font-family:var(--ui2);font-size:16px;letter-spacing:0;font-weight:600;color:var(--ink-soft)}
.hoy-bar{height:5px;border-radius:0;background:var(--line)}
.hoy-bar i{background:var(--ink)}
.hoy-stats b{font-size:22px}
.hoy-week span i{border:2px solid var(--line);border-radius:0}
.hoy-week span.on i{background:var(--ink);border-color:var(--ink)}
.hoy-week span.today i{border-color:var(--ink)}
.hoy-shelf .c{border:0;border-radius:0}
/* estado cero honesto: huecos punteados, no 8 cartas atenuadas */
.hoy-slots{display:flex;gap:8px;margin:8px 0}
.hoy-slots i{display:block;width:44px;aspect-ratio:2/3;border:1.5px dashed var(--line)}
.hoy-cero .hoy-s{font-size:13px}
@media (min-width:900px){
  .hoy-grid{grid-template-areas:"next next" "cod prog" "idx idx" "shelf shelf" "compra compra";gap:32px 40px}
  .g-idx{grid-area:idx}
  .hoy-next{padding:24px 28px 0}
  .hoy-art{width:150px;margin-left:28px}
  .hoy-next .hoy-btn{width:calc(100% + 56px);margin:0 -28px;padding:16px 28px}
}

/* ── 5 · Ruta = tabla de contenidos ── */
.r-tramo{margin-top:14px;scroll-margin-top:12px}
/* cabecera de tramo: surface, filete de 4px en ink y el n.º de sección como fantasma, recortado por la cabecera */
.r-cab{position:relative;overflow:hidden;display:block;min-height:0;margin:0 calc(-1 * var(--gut));padding:14px var(--gut) 12px;
  background:var(--surface);border-top:4px solid var(--ink)}
.r-cab[data-n]::before{content:attr(data-n);position:absolute;right:-6px;top:-18px;pointer-events:none;white-space:nowrap;
  font-family:var(--display2);font-weight:800;font-size:120px;line-height:.85;letter-spacing:-.05em;color:var(--ink);opacity:.14}
.r-tramo .r-h{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:0}
.r-nota{margin:12px 0 4px}
.r-lista{gap:0;counter-reset:fila}
.r-fila{position:relative;counter-increment:fila;background:none;border:0;border-radius:0;border-top:1px solid var(--line)}
.r-fila:first-child{border-top:0}
.r-fila::before{content:counter(fila,decimal-leading-zero);position:absolute;left:0;top:17px;
  font-family:var(--display2);font-weight:800;font-size:15px;line-height:1;color:var(--ink)}
.r-fila[data-n]::before{content:attr(data-n)} /* Mayores: el romano */
.r-fila:has(.con-elemento)::before{display:none}
.r-main{padding:14px 0 14px 52px;border-radius:0}
.r-main:not(.con-elemento){display:grid;grid-template-columns:auto 1fr auto;column-gap:8px;align-items:baseline}
.r-main:not(.con-elemento) > .r-t{grid-column:1;grid-row:1}
.r-main:not(.con-elemento) > .r-s{grid-column:3;grid-row:1;white-space:nowrap;justify-self:end}
.r-main:not(.con-elemento)::after{content:"";grid-column:2;grid-row:1;align-self:end;margin-bottom:6px;border-bottom:2px dotted var(--line)} /* puntos guía */
.r-main:not(:has(.r-s))::after{display:none}
.r-main.con-elemento{padding-left:0}
.r-t{font-family:var(--ui2);font-weight:600;font-size:17px;letter-spacing:0;line-height:1.25}
.r-s{font-size:13px;color:var(--ink-soft)}
.r-vers{padding:0 0 14px 52px;gap:8px}
.r-ver{background:none;border:1.5px solid var(--line);border-radius:0;padding:8px 12px}
.r-elemento{border:0;border-radius:0}
.r-fila.pronto{opacity:.6}
/* lo escuchado: ink-faint con ✓ (sobre paper da 6.4) */
.r-fila:has(> .r-main .r-estado.hecho) .r-t,.r-fila:has(> .r-main .r-estado.hecho)::before{color:var(--ink-faint)}
.r-estado.empezado{color:var(--ink);font-weight:600}
.r-estado.hecho{color:var(--ink-faint)}
.r-badge{font-size:11px;font-weight:800;border-radius:0}
/* lo que sigue = franja ocre a todo el ancho: el único ocre de Ruta */
.r-fila.reco{background:var(--gold);color:var(--gold-ink);margin:0 calc(-1 * var(--gut));padding:0 var(--gut);border-top-color:var(--gold)}
.r-fila.reco::before{left:var(--gut);color:var(--gold-ink)}
.r-fila.reco + .r-fila{border-top-color:var(--gold)}
.r-fila.reco .r-s,.r-fila.reco .r-t,.r-fila.reco .r-estado.empezado,.r-fila.reco .r-estado.hecho,.r-fila.reco .r-lock{color:var(--gold-ink)}
.r-fila.reco .r-badge{background:var(--gold-ink);color:var(--gold)}
.r-fila.reco .r-ver{border-color:var(--gold-ink);color:var(--gold-ink)}
.r-fila.reco .r-main::after{border-color:var(--gold-ink)}

/* ── 6 · Mazo ── */
.c-chip{border:1.5px solid var(--line);border-radius:0;background:none;color:var(--ink);font-weight:600}
.c-scroll{margin:0 calc(-1 * var(--gut)) 4px;padding:0 var(--gut)}
.c-seg{border:1.5px solid var(--line);border-radius:0}
.c-seg .c-chip{border:0}
.c-celda img{border-radius:0;border:0}
.c-celda.media img{border-bottom:4px solid var(--ink-soft)}
.c-nombre{font-weight:600}
.c-sec .r-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:2px solid var(--ink);padding-top:12px;margin-bottom:12px}
.c-dorso{border-radius:0;border:1px solid var(--line);background:var(--surface)}
.c-dorso::before{background:linear-gradient(color-mix(in srgb,var(--paper) 62%,transparent),color-mix(in srgb,var(--paper) 62%,transparent)),url("../media/ui/dorso-carta.webp?v=2") center/cover}

.c-dorso{color:var(--ink)}
.c-celda.media .c-sub{color:var(--ink-soft)}
.hoy-shelf .c.media::after{background:var(--ink-soft)}

/* ── 7 · Progreso y Más ── */
.p-dia.today{box-shadow:inset 0 0 0 1.5px var(--ink)}
.p-col.on{color:var(--ink);font-weight:800}
.p-celda.media{background:var(--surface-3);box-shadow:inset 0 -3px 0 var(--ink-soft)}
.p-celda.descubierta{background:var(--ink)}
.mas-sec a,.contacto a{color:var(--ink);text-decoration:underline}
.mas-faq[open] summary{color:var(--ink)}
.mas-switch input{accent-color:var(--ink)}
.mas-testi{border-left-color:var(--line)}
.v2-offline:not([hidden]){background:var(--surface-2);border-bottom-color:var(--line);color:var(--ink)}
.p-ins li{border:1.5px solid var(--line);border-radius:0}
.p-dia,.p-celda{border-radius:0}
.mas-faq{border-top:1px solid var(--line)}

/* ── 8 · Reproductor: sobre surface, con la ruta fija arriba ── */
body.v2 .player-full:not([hidden]){background:var(--surface);padding-bottom:calc(16px + env(safe-area-inset-bottom))}
.pf2{position:relative;max-width:440px;align-items:stretch;gap:10px;margin:0 auto auto;padding-top:0}
/* «‹ Ruta · Arcanos Mayores        4 de 22» */
.pf2-top{position:sticky;top:calc(-1 * (20px + env(safe-area-inset-top)));z-index:3;display:flex;align-items:center;gap:8px;
  width:calc(100% + 40px);margin:calc(-1 * (20px + env(safe-area-inset-top))) -20px 0;padding:calc(6px + env(safe-area-inset-top)) 20px 4px;
  background:var(--paper);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--ink-soft)}
.pf2 .pf-close{display:inline-flex;align-items:center;width:auto;height:auto;min-height:44px;padding:0;
  background:none;color:var(--ink-soft);border:0;border-radius:0;font-size:13.5px;font-weight:600}
.pf2 .pf-close:hover{color:var(--ink);background:none}
.pf2-sec{color:var(--ink);font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf2-sec::before{content:"·";color:var(--ink-soft);opacity:.5;font-weight:600;margin-right:8px}
.pf2-pos{margin-left:auto;font-size:12.5px;white-space:nowrap}
/* la carta a sangre: el .player-full tiene 20px de relleno fijo a los lados y arriba (tarot.css) */
.pf2-card,.pf2-card.v2-portada{align-self:stretch;width:calc(100% + 40px);max-width:none;height:clamp(150px,38vh,320px);aspect-ratio:auto;
  margin:0 -20px 4px;object-fit:cover;object-position:center 28%;border:0;border-radius:0}
.pf2-card.v2-portada{background:var(--surface-2)}
.pf2-card.v2-portada b{font-size:72px}
/* diseno/26: la carta es un botón con el chip «Ver carta completa»; el botón posiciona, el img conserva el recorte y las alturas */
.pf2-card-btn{position:relative;display:block;align-self:stretch;width:calc(100% + 40px);margin:0 -20px 4px;
  padding:0;border:0;background:none;cursor:pointer;color:var(--ink)}
.pf2-card-btn .pf2-card{display:block;width:100%;margin:0}
.pf2-card-chip{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;background:rgba(19,18,24,.85);color:var(--ink);font-size:12.5px;font-weight:600;letter-spacing:.01em}
.pf2-card-chip svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75}
.pf2-card-btn:hover .pf2-card-chip{background:var(--paper)}
.pf2-card-btn:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.pf2-meta{text-align:left}
.pf2-title{font-size:clamp(32px,11.5vw,42px);letter-spacing:-.03em;line-height:.92;margin:2px 0 0;text-wrap:balance}
/* tiempo grande arriba de la barra («2:16 / 5:10») */
.pf2 .pf-scrub-row{display:flex;flex-direction:column}
.pf2 .pf-times{order:-1;display:flex;justify-content:flex-start;align-items:baseline;gap:10px;margin:0 0 6px;
  font-family:var(--display2);font-weight:300;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.pf2 #pfCur{font-size:48px;line-height:1}
.pf2 #pfDur{font-size:20px;opacity:.6}
.pf2 #pfDur::before{content:"/ "}
.pf-scrub{border-radius:0;background:rgba(241,233,216,.25)}
.pf2 .pf-scrub{height:3px}
.pf-scrub-fill{border-radius:0;background:var(--ink)}
.pf-scrub-bead{width:13px;height:13px;margin:-5px 0 0 -6px;background:var(--ink)}
/* controles como texto; play/pausa es el único ocre */
.pf2-controls{justify-content:space-between;gap:4px;margin:0}
.pf2 .pf-seek{width:auto;height:auto;min-width:44px;min-height:44px;border:0;background:none;border-radius:0;
  font-family:var(--display2);font-weight:800;font-size:19px;color:var(--ink);padding:0 4px}
.pf2 .pf-seek:hover{background:none;text-decoration:underline}
.pf2 .pf-play{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;height:auto;border-radius:0;padding:12px 22px;font-size:20px;font-weight:800;min-width:0;white-space:nowrap}
@media (max-width:359px){.pf-play-t{display:none}} /* en 320 no entra el rótulo: queda el ícono */
.pf2-vers{gap:8px}
.pf2-ver{background:none;border:1.5px solid var(--line);border-radius:0;padding:8px 10px}
.pf2 .pf2-ver .pf2-ok{color:inherit}
.pf2 .pf-row2,.pf2-ajustes{justify-content:space-between;margin:0}
.pf2-next{margin:0}
@media (max-height:740px){
  .pf2-card,.pf2-card.v2-portada{height:clamp(110px,26vh,190px)}
  .pf2-title{font-size:clamp(26px,8vw,34px)}
  .pf2 #pfCur{font-size:38px}
}
@media (min-width:641px){ /* tablet/escritorio: la carta vuelve a la columna */
  .pf2-top{width:auto;margin:0 0 6px;top:0}
  .pf2-card,.pf2-card.v2-portada{width:100%;margin:0 0 4px;height:clamp(180px,34vh,320px)}
  .pf2-card-btn{width:100%;margin:0 0 4px}
}

/* ── 9 · ficha de carta (hoja de la v1, en el lenguaje nuevo) ── */
.sheet{background:var(--surface);border:0;border-radius:0;gap:12px}
.sheet-close{border-radius:50%;background:none;border:1.5px solid var(--ink);color:var(--ink)}
.sheet-home{border:1.5px solid var(--line)}
.sheet-img{border-radius:0}
.sheet-title{font-size:34px;line-height:1;margin:4px 0 0}
.kw-box{border-radius:0;background:var(--surface-2)}
.kw-box b{color:var(--ink)}
.sheet-label{font-size:13px}
.seg{background:none;border:1.5px solid var(--line);border-radius:0;padding:0;gap:0}
.seg-btn{border-radius:0;font-family:var(--ui2);font-size:14px;font-weight:600;color:var(--ink);padding:10px 16px}
.seg-dur{font-size:13px}
body.v2 .btn{border-radius:0;font-weight:800}
body.v2 .btn-ghost{border:1.5px solid var(--line)}
.chapter-link-row{border-radius:0;background:var(--surface-2)}

/* ── 10 · avisos y diálogos: sin sombra, bordes duros ── */
.v2-siguiente:not([hidden]),.v2-descubri:not([hidden]),.v2-dlg{border:1.5px solid var(--ink);border-radius:0;box-shadow:none;background:var(--surface)}
.dsc-cara{border-radius:0;border:0}
.v2-portada{background:var(--surface-2);border-radius:0}
.auth-btn,.auth-box .auth-btn,.auth-email{font-family:var(--ui2);border-radius:0}
.auth-btn{border:1.5px solid var(--ink);background:none;color:var(--ink);font-weight:600}
.pu-img,.v2-vacio-img,.mas-instalar-img,.ficha-elemento,.r-elemento{border-radius:0}
/* bienvenida, paso 3: la nav real en chico, con Hoy marcada */
.pu-demo{margin:18px -24px 4px}
.v2-dlg .v2-nav.pu-nav{position:static;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:auto;padding:8px 8px 10px;border-top:1px solid var(--line);border-right:0}
.v2-dlg .pu-nav a{flex-direction:column;font-size:12px;padding:12px 0 7px}
.v2-dlg .pu-nav a[aria-current="page"]::before{left:10%;right:10%;top:-8px;bottom:auto;width:auto;height:4px}
.pu-puntos i.on{background:var(--ink)}
/* el play del mini no suma un segundo ocre a la pantalla: el ocre del reproductor vive en el player completo */
body.v2 .mini-play{background:var(--ink);color:var(--paper)}
.pu-flecha{font-size:12.5px;font-weight:600;color:var(--ink-soft);margin:10px 24px 0}
.pu-t{font-family:var(--display2);font-weight:800;font-size:30px;line-height:.98}
/* aviso de contenido pago (de la v1): mismo lenguaje, título en Fraunces, bloque ocre */
.paywall-box{border:1.5px solid var(--ink);border-radius:0;box-shadow:none;text-align:left}
.paywall-close{background:none;border:1.5px solid var(--ink);color:var(--ink)}
.paywall-title{font-family:var(--display2);font-weight:800;font-size:28px;letter-spacing:-.03em;line-height:1;margin:0 0 10px}
.paywall-btn{font-family:var(--ui2);font-size:15px;font-weight:800;border-radius:0;border:0;background:var(--gold);color:var(--gold-ink);padding:14px 16px}
.paywall-btn:hover{background:var(--gold);text-decoration:underline}
.paywall-btn.secondary{border:1.5px solid var(--line);background:none;color:var(--ink)}
.toast{border-radius:0;border:1.5px solid var(--ink);box-shadow:none;font-family:var(--ui2)}
