/* Tutti Frutti — identidad visual.
   Todos los colores y tipografías se definen acá, una sola vez, por función. */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/fonts/bricolage-grotesque-latin-standard-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/fonts/bricolage-grotesque-latin-ext-standard-normal.woff2) format('woff2-variations');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/jetbrains-mono-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/jetbrains-mono-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fredoka';font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/fredoka-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fredoka';font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/fredoka-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --bg:#0A2629;            /* fondo */
  --glow-1:#17595A;        /* brillo difuso principal */
  --glow-2:#123C5A;        /* brillo difuso secundario */
  --text:#ECE7DF;          /* texto y letra de la ronda */
  --muted:rgba(236,231,223,.6);
  --faint:rgba(236,231,223,.16);
  --line:rgba(236,231,223,.2);
  --surface:rgba(236,231,223,.06);
  --accent:#D4FF3A;        /* acción, líder, tiempo, ×2 */
  --warm:#E8875F;          /* sorpresas y congelado */
  --on-accent:#0A2629;     /* texto sobre bloques de acento */
  --font-display:'Bricolage Grotesque','Arial Narrow',Arial,sans-serif;
  --font-data:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --narrow:'wdth' 75;
}
*{box-sizing:border-box;margin:0;padding:0;border-radius:0}
html,body{background:var(--bg);color:var(--text);font-family:var(--font-display);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}
body{min-height:100vh;min-height:100dvh;overflow-x:hidden}
#app{position:relative;z-index:1}

/* ---------- Fondo vivo: brillos, bandas y grano ---------- */
#amb{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.glow{position:absolute;border-radius:50%;filter:blur(80px)}
.g1{width:70vmax;height:70vmax;left:-25vmax;top:10vh;background:var(--glow-1);opacity:.75;animation:drift1 18s ease-in-out infinite}
.g2{width:60vmax;height:60vmax;right:-25vmax;top:-25vmax;background:var(--glow-2);opacity:.8;animation:drift2 22s ease-in-out infinite}
@keyframes drift1{50%{transform:translate(12vw,6vh)}}
@keyframes drift2{50%{transform:translate(-10vw,8vh)}}
.band{position:absolute;left:-30%;width:160%;overflow:hidden;display:flex}
.band .mv{display:inline-flex;white-space:nowrap;animation:marquee linear infinite}
.band .mv span{padding:0 .3em}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.b1{top:34%;height:14vmin;transform:rotate(-9deg);background:var(--surface)}
.b1 .mv{font-weight:800;font-variation-settings:var(--narrow);font-size:24vmin;line-height:.6;color:var(--faint);text-transform:uppercase;animation-duration:70s}
/* La cinta de acento vive en su propio carril al pie de la tele: ningún texto pasa por detrás. */
:root{--lane:11vh}
.b2{bottom:2.2vh;height:26px;transform:rotate(-1.6deg);background:var(--accent)}
.b2 .mv{font-family:var(--font-data);font-weight:500;font-size:12px;line-height:26px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-accent);animation-duration:34s;animation-direction:reverse}
body:not(.tv) .b2{display:none}
body:not(.tv) .b1{top:30%}
.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.13;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
/* Celular: tamaños de lectura cómoda */
body:not(.tv) .eyebrow{font-size:13px}
body:not(.tv) .cat .lbl{font-size:14px;letter-spacing:.06em}
body:not(.tv) .cat input{font-size:28px;padding:8px 0 10px}
body:not(.tv) .x2{font-size:13px;padding:5px 9px}
body:not(.tv) .topbar .t{font-size:52px}
body:not(.tv) .topbar .sub{font-size:19px}
body:not(.tv) .ltag{font-size:12px}
body:not(.tv) .tag{font-size:12px}
body:not(.tv) .pl{font-size:24px}
body:not(.tv) .progress .pp{font-size:20px}
body:not(.tv) .progress .pp .f{font-size:13px}
body:not(.tv) .dock .pw{font-size:13px}
body:not(.tv) .dock .pw .ic{font-size:24px}
body:not(.tv) .it{font-size:24px}
body:not(.tv) .it .who{font-size:12px;width:76px}
body:not(.tv) .it .st{font-size:12px}
body:not(.tv) .rv h3{font-size:14px}
body:not(.tv) .res .c{font-size:12px;width:92px}
body:not(.tv) .res .a{font-size:24px}
body:not(.tv) .res .a .s{font-size:12px}
body:not(.tv) .chip{font-size:19px}
body:not(.tv) .langs button{font-size:13px;padding:7px 10px}
body:not(.tv) .sheet .opts button{font-size:24px}
body:not(.tv) .spy .eyebrow{font-size:13px}
@media (prefers-reduced-motion:reduce){.band .mv,.glow,.bigletter{animation:none!important}}

/* ---------- Básicos ---------- */
button{font-family:var(--font-display);cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text);font-weight:700;font-variation-settings:var(--narrow);text-transform:uppercase;letter-spacing:.02em;padding:14px 18px;font-size:20px;line-height:1;transition:transform .08s,opacity .25s,background .2s,color .2s}
button:active{transform:translateY(1px)}
button.primary,button.hot{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:800}
button.block{display:block;width:100%}
button:disabled{opacity:.3;cursor:default;transform:none}
input{font-family:var(--font-display);font-size:24px;font-weight:600;border:0;border-bottom:1px solid var(--line);background:transparent;padding:6px 0 8px;width:100%;color:var(--text);outline:none;-webkit-appearance:none;border-radius:0;transition:border-color .2s}
input::placeholder{color:var(--muted)}
input:focus{border-bottom-color:var(--text)}
input:disabled{color:var(--muted)}
.wrap{max-width:560px;margin:0 auto;padding:18px 18px 150px}
.eyebrow{font-family:var(--font-data);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mute{color:var(--muted)}
.mega{font-weight:800;font-variation-settings:var(--narrow);text-transform:uppercase;line-height:.84;letter-spacing:-.02em}
.rule{height:1px;background:var(--line);margin:16px 0}
.row{display:flex;align-items:center;gap:10px}
.between{justify-content:space-between}
.grow{flex:1;min-width:0}
.dot{width:10px;height:10px;flex:none;border-radius:50%}
.tag{display:inline-block;font-family:var(--font-data);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border:1px solid currentColor;vertical-align:middle}
.ltag{display:inline-block;font-family:var(--font-data);font-size:10px;font-weight:500;letter-spacing:.06em;color:var(--muted);vertical-align:middle;margin-left:6px}
.hidden{display:none!important}
.fade-in{animation:fade .4s ease both}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- Letra viva ---------- */
.bigletter{font-family:var(--font-display);font-weight:800;line-height:1;color:var(--text);animation:breathe 5s ease-in-out infinite}
@keyframes breathe{0%,100%{font-variation-settings:'wdth' 75,'wght' 800,'opsz' 96}50%{font-variation-settings:'wdth' 100,'wght' 300,'opsz' 96}}

/* ---------- Logo ---------- */
.logo{display:inline-block;font-weight:800;font-variation-settings:var(--narrow);text-transform:uppercase;line-height:.8;font-size:60px;letter-spacing:-.03em}
.logo span{display:block}
.logo span:last-child{color:var(--accent);padding-left:.5em}
.langs{display:flex;flex:none;gap:4px}
.langs button{padding:6px 8px;font-family:var(--font-data);font-size:11px;font-weight:500;font-variation-settings:normal;letter-spacing:.06em;border-color:var(--line)}
.langs button.on{background:var(--text);border-color:var(--text);color:var(--on-accent)}

/* ---------- Listas de jugadores ---------- */
.plist{display:flex;flex-direction:column;margin-top:8px}
.pl{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:10px 0;font-size:22px;font-weight:600}
.pl:last-child{border-bottom:1px solid var(--line)}
.pl.off{opacity:.4}
.pl .sc{font-weight:800;font-variation-settings:var(--narrow);font-size:26px;font-variant-numeric:tabular-nums}
.pl .kick{flex:none;width:40px;height:40px;padding:0;margin-left:4px;font-size:18px;line-height:1;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--warm)}
.pl .kick:active{background:var(--warm);color:var(--bg)}
.pl .tag{margin-left:6px}

/* ---------- Configuración ---------- */
.set{border-top:1px solid var(--line);padding:16px 0 4px;margin-top:18px}
.stepper{display:flex;align-items:center}
.stepper button{padding:6px 12px;font-size:20px}
.stepper b{min-width:76px;text-align:center;font-size:26px;font-weight:800;font-variation-settings:var(--narrow);font-variant-numeric:tabular-nums}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:5px 9px;font-size:17px;font-weight:600}
.chip button{border:0;background:none;padding:0 2px;font-size:15px;color:var(--warm)}
.set input{font-size:20px}
.sl{font-size:22px;font-weight:700}
/* Barra de desplazamiento discreta, del color del juego */
.scrolly{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.scrolly::-webkit-scrollbar{width:6px}.scrolly::-webkit-scrollbar-track{background:transparent}.scrolly::-webkit-scrollbar-thumb{background:var(--line)}
/* Tele: configuración en dos columnas (ajustes | categorías), con tamaños que se adaptan al alto de la pantalla */
.tv #settings{border-top:1px solid var(--line);padding-top:1.6vh;margin-top:1.6vh}
.tv #settings .sgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0 3vw}
.tv #sum{display:none}
.tvplayers.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.tv #settings .srow{margin-top:1.1vh!important}
.tv #settings .sl{font-size:clamp(13px,2.5vh,24px)}
.tv #settings .scat{margin-top:1.1vh!important}
.tv #settings .stepper b{font-size:clamp(15px,2.9vh,26px);min-width:3.6em}
.tv #settings .stepper button{padding:.5vh .9vw;font-size:clamp(14px,2.4vh,22px)}
.tv #settings .chip{font-size:clamp(12px,2.1vh,19px);padding:.4vh .6vw}
.tv #settings input{font-size:clamp(14px,2.3vh,20px)}
.tv #settings .snote{font-size:clamp(11px,1.7vh,15px)!important}
.tv #settings [data-ai]{font-size:clamp(13px,2.2vh,18px)!important;padding:.6vh 1vw!important}
.tv .tvleft .langs{margin-bottom:2.5vh}

/* ---------- Escritura (celular) ---------- */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:flex-start;justify-content:space-between;padding:12px 18px 6px;background:linear-gradient(var(--bg) 70%,transparent);overflow:hidden;height:118px}
.topbar .info{display:flex;flex-direction:column;gap:2px;z-index:1}
.topbar .t{font-weight:800;font-variation-settings:var(--narrow);font-size:44px;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.topbar .t.low{color:var(--accent)}
.topbar .L{position:absolute;right:14px;top:-14px;font-size:140px}
.topbar .sub{font-size:16px;font-weight:600;color:var(--muted);text-transform:none}
.banner{margin:0 18px;padding:10px 12px;font-weight:800;font-variation-settings:var(--narrow);text-transform:uppercase;font-size:20px;line-height:1.05;background:var(--surface)}
.banner.red{background:var(--accent);color:var(--on-accent);animation:pulse 1s ease-in-out infinite}
.banner.evt{background:var(--warm);color:var(--on-accent);animation:wipe .5s ease both}
@keyframes pulse{50%{opacity:.82}}
@keyframes wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.cat{margin-top:16px}
.cat .lbl{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-data);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cat .lbl .n{margin-right:6px}
.x2{border:1px solid var(--line);background:none;padding:3px 7px;font-family:var(--font-data);font-size:11px;font-weight:500;font-variation-settings:normal}
.x2.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.cat.dbl .lbl{color:var(--accent)}
.cat.dbl input{border-bottom-color:var(--accent)}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--bg);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.dock .inner{max-width:560px;margin:0 auto;display:flex;align-items:stretch}
.dock .pw{flex:1;border:0;border-right:1px solid var(--line);font-family:var(--font-data);font-variation-settings:normal;font-size:11px;font-weight:500;letter-spacing:.08em;padding:16px 6px;display:flex;flex-direction:column;align-items:center;gap:6px}
.dock .pw .ic{font-size:20px;line-height:1}
.dock .basta{flex:2;border:0;background:var(--accent);color:var(--on-accent);font-size:34px;font-weight:800;padding:12px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock .basta:disabled{opacity:1;background:var(--surface);color:var(--muted)}
.dock .primary{border:0;font-size:24px;padding:20px}
.progress{display:flex;flex-direction:column;margin-top:8px}
.progress .pp{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;border-top:1px solid var(--line);padding:7px 0}
.progress .pp .f{margin-left:auto;font-family:var(--font-data);font-size:11px;color:var(--muted)}
.progress .pp.cold{color:var(--warm)}.progress .pp.cold .f{color:var(--warm)}
.progress .pp.full{color:var(--accent)}.progress .pp.full .f{color:var(--accent)}
.frozen{position:fixed;inset:0;z-index:50;background:rgba(10,38,41,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}
.frozen .mega{font-size:84px;color:var(--warm)}
.frozen .eyebrow{color:var(--warm)}
.spy{position:fixed;left:18px;right:18px;top:128px;z-index:45;background:var(--text);color:var(--on-accent);padding:14px 16px;max-width:524px;margin:0 auto;animation:wipe .4s ease both}
.spy .eyebrow{color:var(--on-accent)}
.spy .a{font-size:44px;font-weight:800;font-variation-settings:var(--narrow);text-transform:uppercase;line-height:1}

/* ---------- Hoja de comodines ---------- */
.sheet-bg{position:fixed;inset:0;z-index:60;background:rgba(5,20,22,.7);display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--bg);width:100%;max-width:560px;border-top:1px solid var(--line);padding:18px 18px calc(18px + env(safe-area-inset-bottom));max-height:80vh;overflow:auto;animation:up .28s ease both}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet .opts{display:flex;flex-direction:column;margin-top:12px}
.sheet .opts button{text-align:left;display:flex;align-items:center;gap:10px;border:0;border-top:1px solid var(--line);font-size:22px;padding:14px 0;text-transform:none;font-weight:600}

/* ---------- Votación ---------- */
.rv{margin-top:20px}
.rv h3{font-family:var(--font-data);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-bottom:6px}
.it{display:flex;align-items:center;gap:10px;padding:10px 0;border:0;border-top:1px solid var(--line);font-size:22px;font-weight:600;width:100%;background:none;color:var(--text);text-transform:none;letter-spacing:0;text-align:left;font-variation-settings:normal}
.it .who{font-family:var(--font-data);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);width:70px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.it .ans{flex:1;min-width:0}
.it.bad .ans{text-decoration:line-through;color:var(--muted)}
.it.nope .ans{text-decoration:line-through;text-decoration-color:var(--warm);text-decoration-thickness:2px;color:var(--warm)}
.it .st{font-family:var(--font-data);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;flex:none}
.vx{width:32px;height:32px;flex:none;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:16px}

/* ---------- Resultados ---------- */
.res{margin-top:16px}
.res .r{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.res .c{font-family:var(--font-data);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);width:88px;flex:none}
.res .a{flex:1;font-size:22px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.res .a .s{font-family:var(--font-data);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.res .p{font-size:26px;font-weight:800;font-variation-settings:var(--narrow);flex:none;min-width:46px;text-align:right}
.pts-sola{color:var(--accent)}.pts-unica{color:var(--text)}.pts-repetida{color:var(--muted)}.pts-zero{color:var(--warm)}

/* ---------- Giro de letra ---------- */
.spin{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;overflow:hidden}
.spin .bigL{font-size:60vmin}
.spin .bigL.land{animation:land .6s cubic-bezier(.2,1.4,.4,1) both,breathe 5s .6s ease-in-out infinite}
@keyframes land{from{transform:scale(1.4);opacity:.2}to{transform:none;opacity:1}}
.evtcard{background:var(--warm);color:var(--on-accent);padding:16px 22px;margin-top:18px;max-width:560px;animation:wipe .6s .2s ease both}
.evtcard .eyebrow{color:var(--on-accent)}
.evtcard .mega{font-size:52px}
.evtcard .to{text-decoration:underline;text-underline-offset:4px}

/* ---------- Podio ---------- */
.podium{display:flex;align-items:flex-end;justify-content:center;gap:6px;margin-top:24px}
.podium .col{flex:1;max-width:180px;text-align:center}
.podium .bar{background:var(--surface);border-top:1px solid var(--line);color:var(--text);font-weight:800;font-variation-settings:var(--narrow);font-size:44px;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;transform-origin:bottom;animation:rise .9s cubic-bezier(.2,1.1,.4,1) both}
.podium .bar.first{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.podium .n{font-size:24px;font-weight:700;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.podium .pts{font-size:30px;font-weight:800;font-variation-settings:var(--narrow);margin-top:6px}
@keyframes rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}

.toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);z-index:80;background:var(--text);color:var(--on-accent);padding:12px 16px;font-size:18px;font-weight:600;max-width:92vw;animation:fade .25s ease both}

/* ---------- Pantalla grande ---------- */
body.tv{overflow:hidden}
.tvgrid{display:grid;grid-template-columns:46vw 1fr;height:100vh;position:relative}
.tvleft{position:relative;padding:5vh 3vw var(--lane);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.tvright{padding:5vh 4vw var(--lane) 1vw;overflow:hidden;display:flex;flex-direction:column;gap:2.2vh}
.tv .logo{font-size:13vh}
.tv .eyebrow{font-size:1.7vh}
.tvL{position:absolute;left:3vw;bottom:-8vh;font-size:84vh}
.tvtimer{font-weight:800;font-variation-settings:var(--narrow);font-size:20vh;line-height:.8;letter-spacing:-.04em;font-variant-numeric:tabular-nums;text-align:right}
.tvtimer.low{color:var(--accent)}
.tvclock{height:3px;background:var(--line);margin-top:1.5vh}
.tvclock i{display:block;height:3px;background:var(--accent);margin-left:auto;transition:width .25s linear}
.tvsite{font-weight:700;font-size:4vh;line-height:1.05;margin-top:.6vh;word-break:break-all}
.codein{font-size:56px!important;font-weight:800;letter-spacing:.3em;text-transform:uppercase;font-variation-settings:var(--narrow);margin-top:6px}
.createlink{display:block;text-align:center;margin-top:10px;padding:16px;border:1px solid var(--line);color:var(--text);text-decoration:none;font-weight:800;font-variation-settings:var(--narrow);text-transform:uppercase;font-size:22px}
.tvurl{font-weight:800;font-variation-settings:var(--narrow);font-size:12vh;letter-spacing:.06em;color:var(--accent);line-height:.9;letter-spacing:-.02em;word-break:break-all}
.tvqr{background:var(--text);padding:10px;display:inline-block}
.tvplayers{display:grid;grid-template-columns:repeat(auto-fill,minmax(18vw,1fr));column-gap:2vw}
.tvp{border-top:1px solid var(--line);padding:1.2vh 0;font-size:3.6vh;font-weight:600;display:flex;align-items:center;gap:.8vw;min-width:0}
.tvplayers.compact .tvp{font-size:2.8vh;padding:.7vh 0}
.tvp .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tvp b{font-family:var(--font-data);font-weight:500;font-size:1.8vh;color:var(--muted)}
.tvp.full,.tvp.full b{color:var(--accent)}
.tvp.cold,.tvp.cold b{color:var(--warm)}
.tvbar{height:2px;background:var(--line);margin-top:.8vh;position:relative}
.tvbar i{position:absolute;left:0;top:0;bottom:0;background:var(--text);transition:width .4s}
.tvp.full .tvbar i{background:var(--accent)}
.tvcats{display:flex;flex-wrap:wrap;gap:.6vh 1.4vw}
.tvcats span{font-family:var(--font-data);font-size:1.9vh;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tvbanner{font-weight:800;font-variation-settings:var(--narrow);font-size:5.5vh;line-height:1;text-transform:uppercase;padding:1.4vh 1.4vw;background:var(--warm);color:var(--on-accent);animation:wipe .5s ease both}
.tvbanner.red{background:var(--accent);animation:pulse 1s infinite}
.tvbanner .sm{font-family:var(--font-data);font-size:1.8vh;font-weight:500;letter-spacing:.08em;margin-right:1vw;vertical-align:middle}
.tvtable{width:100%;border-collapse:collapse;table-layout:fixed;font-size:2.6vh}
.tvtable th,.tvtable td{border-top:1px solid var(--line);padding:.8vh .6vw;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tvtable th{font-family:var(--font-data);font-size:1.6vh;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tvtable thead th,.tvtable tr:first-child th{color:var(--text);font-family:var(--font-display);font-size:2.6vh;font-weight:700;text-transform:none;letter-spacing:0;border-top:0}
.tvtable td{font-weight:600}
.tvtable td.bad{color:var(--muted)}
.tvtable td.nope{color:var(--warm)}
.tvtable td.bad .ans,.tvtable td.nope .ans{text-decoration:line-through}
.tvtable .cell{display:flex;align-items:baseline;gap:.5vw;min-width:0}
.tvtable .cell .ans{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tvtable td b{flex:none;font-weight:800;font-variation-settings:var(--narrow)}
.tvtable .aim,.tvtable .lg{flex:none;font-style:normal;font-family:var(--font-data);font-size:1.4vh;letter-spacing:.06em}
.tvtable .lg{opacity:.6;font-weight:500}
.tvtable.many{font-size:2.2vh}
.tvtable.many th,.tvtable.many td{padding:.7vh .45vw}
.tvtable.many tr:first-child th{font-size:2.2vh}
.tvtable.many tr.tot td{font-size:2.8vh}
.tvtable.lots{font-size:1.9vh}
.tvtable.lots tr:first-child th{font-size:1.9vh}
.tvfinal .logo{font-size:9vh}
.tvtable tr.tot td{border-top:1px solid var(--text);font-weight:800;font-variation-settings:var(--narrow);font-size:3.4vh}
.tvai{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:2.4vh}
.tvai-win{flex:1;min-height:6vh;overflow:hidden;margin-top:1vh;-webkit-mask-image:linear-gradient(transparent,#000 2vh,#000 calc(100% - 3vh),transparent);mask-image:linear-gradient(transparent,#000 2vh,#000 calc(100% - 3vh),transparent)}
.tvai-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2vh 2vw;padding:1vh 0}
.tvai-list.roll{animation:aiRoll linear infinite alternate}
@keyframes aiRoll{0%,12%{transform:translateY(0)}88%,100%{transform:translateY(var(--roll))}}
.tvai-it{border-top:1px solid var(--line);padding-top:.8vh;font-size:2.3vh;font-weight:600;line-height:1.25}
.tvai-it .r{font-size:1.9vh;font-weight:400;margin-top:.3vh}
.tvhost{display:flex;gap:1vw;margin-top:2vh}
/* Sorpresas con paso previo: idioma, duelo y apuestas */
.setup .setup-title{font-size:56px;color:var(--warm);margin:8px 0 14px}
.tvfull.setup .setup-title{font-size:13vh;margin:1vh 0 3vh}
.setup-t{font-weight:800;font-variation-settings:var(--narrow);font-size:34px;font-variant-numeric:tabular-nums}
.tvfull.setup .setup-t{font-size:9vh}
.setup-h{font-size:40px;color:var(--accent)}
.setup-p{font-size:20px;margin-top:10px}
.tvfull.setup .setup-p{font-size:4vh}
.choices{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.choices.two{flex-direction:row}.choices.two .choice{flex:1;justify-content:center}
.choices.amts{flex-direction:row}.choices.amts .choice{flex:1;justify-content:center;font-size:28px}
.choice{display:flex;align-items:center;justify-content:space-between;gap:10px;text-transform:none;font-size:26px;font-weight:700;padding:16px;font-variation-settings:normal}
.choice i{font-style:normal;font-family:var(--font-data);font-size:13px;color:var(--muted);font-weight:500}
.choice.on{background:var(--text);color:var(--on-accent);border-color:var(--text)}
.nobet{margin-top:10px;font-size:18px}
.setup-list{margin-top:18px}
.setup-list .trow .nm{font-size:22px}
.tvfull.setup .setup-list{columns:2;column-gap:4vw}
.tvfull.setup .setup-list .trow{break-inside:avoid}
.tvfull.setup .setup-list .trow .nm{font-size:4vh}
.tvfull.setup .setup-list .eyebrow{font-size:2vh}
.duel{display:flex;align-items:center;gap:12px;margin-top:8px}
.duel .side{flex:1;min-width:0}.duel .side:last-child{text-align:right}
.duel .dn{font-weight:800;font-variation-settings:var(--narrow);text-transform:uppercase;font-size:44px;line-height:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.duel .vs{font-family:var(--font-data);font-size:14px;color:var(--warm);text-transform:uppercase}
.duel .dn.long{font-size:30px}
.duel.big .dn{font-size:16vh}.duel.big .dn.long{font-size:11vh}.duel.big .vs{font-size:3vh}.duel.big .eyebrow{font-size:2vh}
.betcols{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;margin-top:14px;font-size:18px}
.betcols b{font-weight:800;color:var(--accent)}
.tvfull.setup .betcols{font-size:3.2vh;margin-top:4vh}
.cat.secret .lbl{color:var(--warm)}
.cat.secret input{border-bottom-style:dashed}
.cat.revealed .lbl{color:var(--warm)}
.extras{margin-top:14px;font-size:17px;line-height:1.5;border-top:1px solid var(--line);padding-top:10px}
.extras.big{font-size:2.3vh;margin-top:1.4vh;padding-top:1vh}
/* Podio: el nombre es el trofeo */
.trophy-eb{color:var(--accent)}
.trophy-name{font-weight:800;line-height:.86;letter-spacing:-.02em;text-transform:uppercase;margin-top:1.5vh;width:100%}
.trophy-name .sep{color:var(--muted)}
.trophy-score{display:flex;align-items:baseline;gap:14px;margin-top:2vh}
.trophy-score .n{font-weight:800;font-variation-settings:var(--narrow);color:var(--accent);line-height:.9;font-size:16vh;letter-spacing:-.03em}
.trophy-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:4vw}
.trophy-foot .tvhost{margin-top:0}
.trophy-rest{width:46%;margin-left:auto}
.trow{border-top:1px solid var(--line);padding:1vh 0;gap:1.2vw;animation:riseIn .6s ease both}
.trow .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.trow .sc{font-weight:800;font-variation-settings:var(--narrow)}
.trow.t2 .nm,.trow.t2 .sc{font-size:5.4vh}
.trow.t3 .nm,.trow.t3 .sc{font-size:4.2vh}
.trow.tsmall{padding-top:1.2vh;line-height:1.7}
@keyframes riseIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.trophy-ph .trophy-score .n{font-size:84px}
.trophy-ph .trophy-name{margin-top:10px}
.tvhost button{font-size:3.6vh;padding:1.8vh 2.4vw;background:var(--bg)}
.tvhost button.hot,.tvhost button.primary{background:var(--accent)}
.tvfull{position:relative;height:100vh;padding:5vh 4vw var(--lane);display:flex;flex-direction:column}
.tvlead{display:flex;gap:2vw}
.tvlead div{text-align:right}
.tvlead .nm{font-family:var(--font-data);font-size:1.7vh;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tvlead .sc{font-weight:800;font-variation-settings:var(--narrow);font-size:8vh;line-height:.9}
.tvlead .first .nm,.tvlead .first .sc{color:var(--accent)}
.tvchip{position:absolute;left:4vw;top:5vh}

/* Firma de Croncoo: la palabra croncoo siempre en su tipografía de marca, sobre fondo propio para que ninguna banda pase por detrás */
.bycc{display:inline-flex;align-items:baseline;gap:.4em;margin-top:28px;padding:.35em .7em;background:var(--bg);color:var(--muted);font-size:15px;font-weight:600;text-decoration:none;position:relative;z-index:2}
.bycc span{text-transform:lowercase;letter-spacing:.02em}
.bycc b{font-family:'Fredoka',system-ui,sans-serif;font-weight:600;font-size:1.45em;color:var(--text);letter-spacing:-.005em}
body.tv .bycc{display:flex;width:max-content;margin-top:1.6vh;font-size:1.9vh;padding:.3em .6em}

/* Cancelar partida (solo el anfitrión, durante el juego) */
.cancelwrap{padding-top:28px;padding-bottom:110px}
.cancelg{display:block;margin:0 auto;padding:10px 16px;font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:0;width:auto;flex:none}
.cancelg:active{color:var(--warm);border-color:var(--warm)}
body.tv .cancelg{position:fixed;right:1.4vw;bottom:11vh;z-index:70;background:var(--bg);font-size:1.6vh;padding:.6vh 1vw}
