
/* ══ LA BIENVENIDA (07/10/2026 noche, 2.ª vuelta; frente/bienvenida-js.js) ═══════════════════════════════════════════════
   Como la puerta (#muro, visita-css): el club difuminado detrás, la marca arriba con su brillo, todo en texto. Una pantalla
   a la vez que se desliza con el dedo; puntitos; «вернуться в клуб» abajo. */
#bv { position:fixed; inset:0; z-index:9650; overflow:hidden; display:flex; justify-content:center;
  font-family:var(--dc-font); font-weight:var(--dc-weight); color:var(--dc-ink, #F2F2F4); -webkit-tap-highlight-color:transparent;
  opacity:0; transition:opacity var(--dc-t-salida, .5s) var(--dc-ease); }
#bv.on { opacity:1; transition:opacity var(--dc-t-entrada, .8s) var(--dc-ease); }
#bv .bv-caja { position:relative; width:100%; max-width:980px; height:100%; box-sizing:border-box;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:clamp(28px, 11vh, 130px) 0 calc(22px + env(safe-area-inset-bottom, 0px));
  transform:translateY(16px); transition:transform var(--dc-t-entrada, .8s) var(--dc-ease), opacity .6s var(--dc-ease), filter .6s var(--dc-ease); }
#bv.on .bv-caja { transform:none; }
#bv.sale .bv-caja { opacity:0; filter:blur(14px); transform:scale(.98); }
#bv .bv-marca { flex:0 0 auto; }

/* la ventana: una pantalla de ancho, la pista con todas en fila */
#bv .bv-ventana { flex:1 1 auto; width:100%; overflow:hidden; touch-action:pan-y; cursor:grab; user-select:none; -webkit-user-select:none; }
#bv .bv-pista { display:flex; height:100%; transition:transform .65s var(--dc-ease); will-change:transform; }
#bv .bv-pista.quieta { transition:none; }
#bv .bv-p { flex:0 0 100%; min-width:0; height:100%; box-sizing:border-box; padding:0 28px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  opacity:.25; filter:blur(6px); transition:opacity .65s var(--dc-ease), filter .65s var(--dc-ease); }
#bv .bv-p.on { opacity:1; filter:none; }
#bv .bv-vis { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:200px; margin-bottom:18px; }
#bv .bv-t { font-size:40px; line-height:1.15; max-width:760px; text-wrap:balance;
  text-shadow:0 0 22px rgba(242,242,244,.42), 0 0 64px rgba(242,242,244,.14); }
#bv .bv-f { font-size:22px; line-height:1.4; max-width:620px; color:var(--dc-ink-70, rgba(242,242,244,.7)); text-wrap:balance; }
#bv .bv-ir { margin-top:10px; background:none; border:0; padding:6px 10px; cursor:pointer; font:inherit; font-size:24px; color:#F2F2F4;
  text-shadow:0 0 22px rgba(242,242,244,.45), 0 0 64px rgba(242,242,244,.16); }

/* los puntitos (08/10: fuera, Rolando no los quiere; las pantallas pasan solas) y la salida */
#bv .bv-puntos { display:none !important; flex:0 0 auto; display:flex; gap:10px; padding:18px 0 14px; }
#bv .bv-puntos i { width:7px; height:7px; border-radius:50%; background:rgba(242,242,244,.28); cursor:pointer; transition:background .4s ease, transform .4s var(--dc-ease); }
#bv .bv-puntos i.on { background:#F2F2F4; transform:scale(1.25); box-shadow:0 0 10px rgba(242,242,244,.5); }
#bv .bv-volver { flex:0 0 auto; background:none; border:0; padding:6px 12px; cursor:pointer; font:inherit; font-size:18px; color:rgba(242,242,244,.75);
  transition:font-size .6s var(--dc-ease), color .4s ease, text-shadow .6s ease; }
#bv.con-ficha .bv-volver { opacity:0; pointer-events:none; transition:opacity .4s ease; }   /* 08/10: la franja de la traducción va encima */
#bv .bv-volver.fin { font-size:34px; color:#F2F2F4; text-shadow:0 0 22px rgba(242,242,244,.55), 0 0 64px rgba(242,242,244,.2); }
@media (any-hover:hover) { #bv .bv-volver:hover, #bv .bv-ir:hover { color:#fff; } }

/* 1 · la tarjeta, con la luz blanca detrás */
#bv .bv-carta { position:relative; width:390px; height:246px; }
#bv .bv-carta .cr-carta { position:absolute; left:0; top:0; transform:scale(.5); transform-origin:0 0;
  box-shadow:0 0 90px 22px rgba(255,255,255,.4); }   /* 08/10 (Rolando): sin marco blanco, sólo la sombra blanca */
#bv .bv-carta::before { content:''; position:absolute; inset:-18%; border-radius:50%; pointer-events:none;
  background:radial-gradient(closest-side, rgba(255,255,255,.4), rgba(255,255,255,.1) 55%, rgba(255,255,255,0));
  animation:bvHalo 4.5s ease-in-out infinite; }
@keyframes bvHalo { 0%, 100% { opacity:.7; transform:scale(.96); } 50% { opacity:1; transform:scale(1.04); } }

/* 2 · la frase: la palabra se levanta (la subida de Folio) y la traducción sale encima, en la frase */
#bv .bv-frase { margin:0; padding-top:.6em; font-size:48px; line-height:2.1; max-width:820px; text-wrap:balance;
  text-shadow:0 0 22px rgba(242,242,244,.3); }
#bv .bv-pal { position:relative; display:inline-block; line-height:1.1; }
#bv .bv-pal-w { display:inline-block; transform-origin:50% 85%;
  transition:transform var(--dc-t-lento, .7s) var(--dc-ease), text-shadow var(--dc-t-lento, .7s) var(--dc-ease), color var(--dc-t-lento, .7s) var(--dc-ease); }
#bv .bv-pal.alzada .bv-pal-w { color:#fff; transform:translateY(-.24em) scale(1.08); text-shadow:0 .47em .76em rgba(0,0,0,.62), 0 .82em 1.3em rgba(0,0,0,.3); }
#bv .bv-pal-tr { position:absolute; left:50%; bottom:calc(100% + .1em); white-space:nowrap; pointer-events:none;
  font-size:.46em; line-height:1.2; color:rgba(242,242,244,.88); text-shadow:0 0 14px rgba(242,242,244,.35);
  opacity:0; transform:translate(-50%, .4em); filter:blur(4px);
  transition:opacity .5s var(--dc-ease), transform .7s var(--dc-ease), filter .5s var(--dc-ease); }
#bv .bv-pal-tr { display:none; }
/* 08/10 (Rolando): la traducción, abajo, como en todo el club (.noche .tr-ficha): la penumbra que sube del borde,
   la palabra grande, lo que significa y «в тетрадь». Es un dibujo: no se toca. */
#bv .bv-ficha { position:absolute; left:0; right:0; bottom:0; z-index:3; pointer-events:none; box-sizing:border-box;
  display:grid; grid-template-columns:minmax(0, 1fr) auto; column-gap:28px; align-items:end; text-align:left;
  padding:110px max(20px, calc(50vw - 330px)) max(46px, 18px, env(safe-area-inset-bottom));
  background:linear-gradient(0deg, rgba(10,10,12,.96) 0%, rgba(10,10,12,.9) 52%, rgba(10,10,12,0) 100%);
  opacity:0; transform:translateY(18px); transition:opacity var(--dc-t-salida, .5s) var(--dc-ease), transform var(--dc-t-salida, .5s) var(--dc-ease); }
#bv .bv-ficha.abierta { opacity:1; transform:none; transition:opacity var(--dc-t-entrada, .8s) var(--dc-ease), transform var(--dc-t-entrada, .8s) var(--dc-ease); }
#bv .bv-ficha-es { grid-column:1; font-size:46px; line-height:1.05; color:#F2F2F4; text-shadow:0 0 22px rgba(242,242,244,.42), 0 0 64px rgba(242,242,244,.14); }
#bv .bv-ficha-ru { grid-column:1; margin-top:12px; font-size:30px; line-height:1.3; color:rgba(242,242,244,.72); }
#bv .bv-ficha-g { grid-column:2; grid-row:1 / span 2; align-self:end; font-size:30px; color:#F2F2F4; white-space:nowrap; text-shadow:0 0 22px rgba(242,242,244,.45); }

/* 3 · no solo: dos frases, como en un chat, en texto */
#bv .bv-chat { display:flex; flex-direction:column; gap:12px; width:min(420px, 100%); }
#bv .bv-chat p { margin:0; font-size:26px; line-height:1.3; }
#bv .bv-chat-a { align-self:flex-start; color:rgba(242,242,244,.7); }
#bv .bv-chat-b { align-self:flex-end; color:#F2F2F4; text-shadow:0 0 18px rgba(242,242,244,.35); }

/* 4 y 7 · una palabra grande con el brillo del club */
#bv .bv-grande { font-size:110px; line-height:1; letter-spacing:-.02em; text-shadow:0 0 30px rgba(242,242,244,.5), 0 0 80px rgba(242,242,244,.18); }
#bv .bv-tg { font-size:48px; letter-spacing:0; }

/* 5 · el club: las opciones de la casa, en texto */
#bv .bv-ops { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px; font-size:30px; }
#bv .bv-ops span:first-child { text-shadow:0 0 22px rgba(242,242,244,.45); }
#bv .bv-ops span:not(:first-child) { color:rgba(242,242,244,.55); }
#bv .bv-niv { margin-top:14px; font-size:22px; gap:10px 22px; }
#bv .bv-niv span { color:rgba(242,242,244,.7) !important; text-shadow:none !important; }

/* 6 · los planes: las tres tarjetas */
#bv .bv-tres { display:flex; gap:18px; }
#bv .bv-mini { position:relative; width:156px; height:98px; }
#bv .bv-mini-c .cr-carta { position:absolute; left:0; top:0; transform:scale(.2); transform-origin:0 0; box-shadow:0 14px 30px rgba(0,0,0,.35); }

/* el móvil */
@media (max-width:700px) {
  #bv .bv-caja { padding-top:clamp(24px, 8vh, 80px); }
  #bv .bv-p { padding:0 22px; gap:10px; }
  #bv .bv-vis { min-height:150px; margin-bottom:10px; }
  #bv .bv-t { font-size:27px; }
  #bv .bv-f { font-size:16px; }
  #bv .bv-ir { font-size:19px; }
  #bv .bv-volver { font-size:16px; }
  #bv .bv-volver.fin { font-size:26px; }
  #bv .bv-carta { width:300px; height:189px; }
  #bv .bv-carta .cr-carta { transform:scale(.3846); }
  #bv .bv-frase { font-size:34px; max-width:300px; }
  #bv .bv-ficha { padding-top:70px; padding-bottom:max(26px, env(safe-area-inset-bottom)); column-gap:18px; }
  #bv .bv-ficha-es { font-size:34px; }
  #bv .bv-ficha-ru { margin-top:8px; font-size:21px; }
  #bv .bv-ficha-g { font-size:20px; }
  #bv .bv-chat p { font-size:20px; }
  #bv .bv-grande { font-size:76px; }
  #bv .bv-tg { font-size:32px; }
  #bv .bv-ops { font-size:22px; gap:8px 18px; }
  #bv .bv-niv { font-size:17px; }
  #bv .bv-tres { gap:10px; }
  #bv .bv-mini { width:100px; height:63px; }
  #bv .bv-mini-c .cr-carta { transform:scale(.1282); }
}
@media (prefers-reduced-motion: reduce) { #bv .bv-pista, #bv .bv-pal-w, #bv .bv-pal-tr { transition:none !important; } #bv .bv-carta::before { animation:none; } }


/* ═══ EL ESTUDIO (08/10/2026) - la sala de Rolando: todos los datos del club en un sitio.
   Grafito como el club; un solo azul para los datos (validado contra el fondo);
   el texto nunca va del color de la serie. ═══ */
#es-ov {
  --es-bg: #131417; --es-c1: #1c1d21; --es-c2: #25262b; --es-linea: #2f3036;
  --es-t1: #ffffff; --es-t2: #c3c2b7; --es-t3: #8d8c86;
  --es-s1: #3987e5; --es-s1b: rgba(57,135,229,.38);
  --es-bien: #2fae6a; --es-ojo: #d9a514; --es-mal: #e66767;
  position: fixed; inset: 0; z-index: 9000; background: var(--es-bg); color: var(--es-t1);
  font-family: 'DM Sans', system-ui, sans-serif; font-size: 15px; line-height: 1.45;
  overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
  opacity: 0; transition: opacity .35s cubic-bezier(.42,0,.18,1);
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
#es-ov.on { opacity: 1; }
html.es-abierto, html.es-abierto body { overflow: hidden; }
#es-ov * { box-sizing: border-box; }
.es-envol { max-width: 1180px; margin: 0 auto; padding: 0 18px 80px; }
.es-cabeza { padding: 16px 0 4px; }
.es-fila1 { display: flex; align-items: center; gap: 12px; }
.es-titulo { font-family: 'Coolvetica', sans-serif; font-size: 34px; letter-spacing: .01em; line-height: 1; }
.es-titulo small { display: block; font-family: 'DM Sans', sans-serif; font-size: 12px; color: var(--es-t3); letter-spacing: .04em; margin-top: 4px; }
.es-cerrar { margin-left: auto; width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--es-c2); color: var(--es-t1); font-size: 22px; line-height: 42px; cursor: pointer; }
.es-dias { display: flex; gap: 6px; }
.es-dias button, .es-nav button { font: inherit; font-size: 13px; border: 0; border-radius: 999px; padding: 7px 13px; background: transparent; color: var(--es-t2); cursor: pointer; white-space: nowrap; }
.es-dias button.on, .es-nav button.on { background: var(--es-t1); color: #111; }
.es-nav { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 8px; background: var(--es-bg); margin: 0 -18px; padding: 10px 18px; }
.es-nav-in { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; flex: 1; min-width: 0; }
.es-nav-in::-webkit-scrollbar { display: none; }
.es-nav.pegada { box-shadow: 0 10px 18px -12px rgba(0,0,0,.8); }
.es-cerrar2 { width: 34px; height: 34px; line-height: 34px; font-size: 19px; flex: none; opacity: 0; pointer-events: none; transition: opacity .2s; }
.es-nav.pegada .es-cerrar2 { opacity: 1; pointer-events: auto; }
.es-sec { padding-top: 26px; }
.es-sec > h2 { font-family: 'Coolvetica', sans-serif; font-weight: normal; font-size: 26px; margin: 0 0 4px; }
.es-sec > .es-bajada { color: var(--es-t3); font-size: 13px; margin: 0 0 14px; max-width: 70ch; }
.es-rejilla { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.es-carta { background: var(--es-c1); border-radius: 18px; padding: 16px 16px 14px; min-width: 0; }
.es-carta.ancha { grid-column: 1 / -1; }
.es-carta h3 { font-size: 14px; font-weight: 600; margin: 0 0 2px; color: var(--es-t1); }
.es-carta .es-nota { font-size: 12px; color: var(--es-t3); margin: 0 0 10px; }
/* las cifras grandes */
.es-cifras { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.es-cifra { background: var(--es-c1); border-radius: 16px; padding: 14px 14px 12px; }
.es-cifra b small { font-size: .55em; }
.es-cifra b { white-space: nowrap; display: block; font-family: 'Coolvetica', sans-serif; font-weight: normal; font-size: 40px; line-height: 1; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.es-cifra span { display: block; font-size: 12.5px; color: var(--es-t2); margin-top: 6px; }
.es-cifra i { display: block; font-style: normal; font-size: 11.5px; color: var(--es-t3); margin-top: 2px; }
/* gráficos */
.es-graf { position: relative; width: 100%; }
.es-graf svg { display: block; overflow: visible; }
.es-graf .eje { fill: var(--es-t3); font-size: 10.5px; font-family: 'DM Sans', sans-serif; }
.es-graf .rej { stroke: var(--es-linea); stroke-width: 1; }
.es-graf .bar { fill: var(--es-s1); }
.es-graf .bar.reg { fill: var(--es-s1b); }
.es-graf .bar.cero { fill: var(--es-linea); }
.es-graf .zona { fill: transparent; pointer-events: all; cursor: default; }
.es-graf g:hover .bar, .es-graf g.on .bar { filter: brightness(1.25); }
.es-graf .val { fill: var(--es-t1); font-size: 11px; font-family: 'DM Sans', sans-serif; font-variant-numeric: tabular-nums; }
.es-leyenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--es-t2); margin-top: 8px; }
.es-leyenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: var(--es-s1); }
.es-leyenda i.reg { background: var(--es-s1b); }
.es-tip { position: fixed; z-index: 9100; pointer-events: none; background: #fff; color: #111; font-size: 12.5px; line-height: 1.35; border-radius: 10px; padding: 7px 10px; box-shadow: 0 6px 24px rgba(0,0,0,.35); opacity: 0; transition: opacity .12s; max-width: 240px; }
.es-tip.on { opacity: 1; }
.es-tip b { font-weight: 700; }
/* barras horizontales (listas con cantidad) */
.es-hb { display: grid; grid-template-columns: minmax(80px, 38%) 1fr auto; gap: 7px 10px; align-items: center; font-size: 13px; }
.es-hb .k { color: var(--es-t2); overflow-wrap: anywhere; }
.es-hb .t { height: 10px; border-radius: 0 4px 4px 0; background: var(--es-s1); min-width: 2px; }
.es-hb .n { color: var(--es-t1); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.es-hb .n small { color: var(--es-t3); }
.es-vacio { color: var(--es-t3); font-size: 13px; padding: 10px 0; }
/* tablas */
.es-buscar { width: 100%; font: inherit; font-size: 14px; color: var(--es-t1); background: var(--es-c2); border: 0; border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; outline: none; }
.es-tabla-env { overflow-x: auto; margin: 0 -16px; padding: 0 16px; }
.es-tabla { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 760px; }
.es-tabla th { text-align: left; font-weight: 600; color: var(--es-t3); font-size: 11.5px; letter-spacing: .03em; padding: 6px 8px; border-bottom: 1px solid var(--es-linea); white-space: nowrap; cursor: pointer; user-select: none; }
.es-tabla th.num, .es-tabla td.num { text-align: right; font-variant-numeric: tabular-nums; }
.es-tabla td { padding: 9px 8px; border-bottom: 1px solid var(--es-linea); color: var(--es-t2); vertical-align: top; }
.es-tabla td:first-child { color: var(--es-t1); }
.es-tabla tr:last-child td { border-bottom: 0; }
.es-pill { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--es-c2); color: var(--es-t2); white-space: nowrap; }
.es-estado { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.es-estado::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--es-t3); }
.es-estado.bien::before { background: var(--es-bien); }
.es-estado.ojo::before { background: var(--es-ojo); }
.es-estado.mal::before { background: var(--es-mal); }
/* el embudo */
.es-embudo { display: grid; gap: 8px; }
.es-embudo .p { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: end; font-size: 13px; color: var(--es-t2); }
.es-embudo .p .b { grid-column: 1 / -1; height: 12px; border-radius: 0 4px 4px 0; background: var(--es-s1); min-width: 2px; }
.es-embudo .p .n { color: var(--es-t1); font-variant-numeric: tabular-nums; }
/* notas */
.es-notas { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.es-bloc { width: 100%; min-height: 420px; resize: vertical; font: inherit; font-size: 14.5px; line-height: 1.55; color: var(--es-t1); background: var(--es-c2); border: 0; border-radius: 12px; padding: 12px 14px; outline: none; }
.es-guardado { font-size: 12px; color: var(--es-t3); margin-top: 6px; min-height: 16px; }
.es-md { font-size: 14px; color: var(--es-t2); max-height: 640px; overflow-y: auto; padding-right: 6px; }
.es-md h1 { display: none; }
.es-md h2 { font-family: 'Coolvetica', sans-serif; font-weight: normal; font-size: 20px; color: var(--es-t1); margin: 18px 0 6px; }
.es-md h3 { font-size: 14px; color: var(--es-t1); margin: 14px 0 4px; }
.es-md p { margin: 6px 0; }
.es-md ul { margin: 4px 0 8px; padding-left: 18px; }
.es-md li { margin: 3px 0; }
.es-md strong { color: var(--es-t1); }
.es-md code { font-size: 12.5px; background: var(--es-c2); padding: 1px 5px; border-radius: 5px; }
.es-cargando { color: var(--es-t3); padding: 60px 0; text-align: center; }
.es-error { color: var(--es-mal); padding: 20px 0; }
/* la pestaña en la nav del profe: sólo la ve el dueño */
.es-tab { display: none !important; }
html.es-dueno .es-tab { display: inline-flex !important; }
@media (max-width: 640px) {
  .es-envol { padding: 0 12px 80px; }
  .es-nav { margin: 0 -12px; padding: 8px 12px; }
  .es-titulo small { font-size: 11px; }
  .es-titulo { font-size: 28px; }
  .es-cifra b { font-size: 32px; }
  .es-carta { border-radius: 16px; padding: 14px 13px 12px; }
  .es-fila1 .es-dias { display: none; }
  .es-dias.movil { display: flex; margin-top: 10px; }
}
@media (min-width: 641px) { .es-dias.movil { display: none; } }
@media (prefers-reduced-motion: reduce) { #es-ov { transition: none; } }
