:root {
  --fondo: #101010; --ventana: #1b1b1b; --tarjeta: #252525; --borde: #3a3a3a; --caja: #4a4a4a;
  --coral: #e8705a; --coral-suave: #f0b090; --coral-borde: #7a4a3a;
  --texto: #f2f2f2; --gris: #a8a8a8; --tenue: #8c8c8c; --pista: #383838;
  --mono: "JetBrains Mono", "Cascadia Mono", Consolas, monospace;
}
* { box-sizing: border-box; }
html { background: var(--fondo); }
body { margin: 0; padding: 24px 16px; color: var(--texto); font: 15px/1.6 var(--mono); }
a { color: inherit; }
h1, h2, h3, p { margin: 0; }
.ventana { max-width: 1080px; margin: 0 auto; padding: 0 20px 8px; background: var(--ventana); border: 1px solid var(--borde); border-radius: 16px; }
.barra { display: flex; align-items: center; gap: 8px; padding: 14px 0; }
.punto { width: 12px; height: 12px; border-radius: 50%; background: #565656; }
.punto.coral { background: var(--coral); }
.insignia { margin-left: auto; padding: 1px 12px; border: 1.5px solid var(--caja); border-radius: 12px; color: var(--gris); font-size: 12px; font-weight: 700; }
.insignia.encendida { border-color: #e8956f; color: var(--coral-suave); }
.caja { background: var(--tarjeta); border: 1px solid var(--caja); border-radius: 10px; padding: 14px 16px; box-shadow: 3px 3px 0 #0b0b0b, 6px 6px 0 #0b0b0b66; }
.tenue { color: var(--tenue); font-size: 13px; }
.ejemplo { padding: 0 7px; border: 1px solid var(--coral-borde); border-radius: 8px; color: var(--coral-suave); font: 700 10px/1.6 var(--mono); }
[hidden] { display: none; }

.cabecera { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 18px; border-color: var(--coral-borde); box-shadow: 3px 3px 0 #5a3428, 6px 6px 0 #5a342866; }
.personaje { justify-self: start; width: 104px; height: 108px; shape-rendering: crispEdges; }
.gesto { opacity: 0; animation: gesto 5.5s step-end infinite; }
@keyframes gesto { 0% { opacity: 0; } 62% { opacity: 1; } 74.5% { opacity: 0; } 82% { opacity: 1; } 94.5% { opacity: 0; } }
.marca { text-align: center; }
h1 { display: flex; flex-direction: column; align-items: center; font-weight: 400; line-height: 1.1; }
.wicho { font: 400 clamp(44px, 8vw, 66px)/1.1 "Mr Dafoe", cursive; color: var(--coral); }
.pixel { position: relative; font: 400 clamp(15px, 2.6vw, 21px)/1.2 "Press Start 2P", monospace; color: var(--texto); }
.adorno { position: absolute; left: 100%; bottom: .1em; width: 1.5em; height: 1.5em; margin-left: 3px; shape-rendering: crispEdges; }
.destello { animation: destello 1.6s steps(2, jump-none) infinite alternate; }
@keyframes destello { from { opacity: 1; } to { opacity: .35; } }
.score { justify-self: end; width: 210px; padding: 10px 12px; border: 1px solid var(--caja); border-radius: 9px; }
.score-fila { display: flex; justify-content: space-between; align-items: center; color: var(--gris); font-size: 12px; }
.score-num { margin: 4px 0 8px; font: 400 20px/1.3 "Press Start 2P", monospace; }
.medidor { height: 10px; margin-bottom: 4px; overflow: hidden; background: var(--pista); border-radius: 6px; }
.medidor div { width: 0; height: 100%; background: var(--coral); border-radius: 6px; transition: width .5s; }

.comando { margin: 20px 0 10px; font: 700 16px/1.4 var(--mono); }
.comando::before { content: "> "; color: var(--coral); }

#lluvia { position: fixed; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
.quien-texto { max-width: 78ch; }
.quien-texto p + p { margin-top: 9px; color: #d6d6d6; }
.quien-texto b { color: var(--coral-suave); }
.saludo { font: 700 19px/1.4 var(--mono); }

.redes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.red { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px 8px; background: color-mix(in srgb, var(--c) 14%, transparent); border: 1.5px solid var(--c); border-radius: 10px; color: var(--texto); font-size: 14px; font-weight: 700; text-decoration: none; transition: transform .15s, background .15s, box-shadow .15s; }
.red svg { flex: none; width: 22px; height: 22px; fill: var(--c); }
.red:hover, .red:focus-visible { background: color-mix(in srgb, var(--c) 30%, transparent); box-shadow: 0 0 14px color-mix(in srgb, var(--c) 45%, transparent); transform: translateY(-2px); }

.tarjetas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.tarjeta { display: flex; flex-direction: column; gap: 8px; }
h3 { display: flex; align-items: center; gap: 8px; color: var(--gris); font: 400 14px/1.4 var(--mono); }
.tarjeta p { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.pantalla { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; overflow: hidden; padding: 12px; background: #141414; border: 1px solid var(--borde); border-radius: 8px; color: var(--gris); font-size: 13px; text-align: center; }
.pantalla:has(iframe) { padding: 0; }
.pantalla iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tarjeta .pantalla { flex: 1; aspect-ratio: auto; min-height: 200px; }
.widget-tiktok { flex: 1; overflow: hidden; min-height: 420px; background: #141414; border: 1px solid var(--borde); border-radius: 8px; }
.widget-tiktok section { height: 100%; }
.widget-tiktok iframe { height: 420px !important; }
.tiktok { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; height: 100%; min-height: 420px; text-decoration: none; }
.pixelado { color: var(--texto); font: 400 11px/1.5 "Press Start 2P", monospace; }
.boton { padding: 3px 12px; border: 1px solid var(--coral-borde); border-radius: 9px; color: var(--coral-suave); }
.tiktok:hover .boton { border-color: var(--coral); }

.vivo { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
.pantalla-stream { width: 100%; min-height: 330px; }
.aviso { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; max-width: 460px; }
.aviso[hidden] { display: none; }
.monitor { width: 120px; height: 78px; shape-rendering: crispEdges; animation: falla 3.2s step-end infinite; }
@keyframes falla { 0% { opacity: 1; } 88% { opacity: .55; } 91% { opacity: 1; } 94% { opacity: .55; } 97% { opacity: 1; } }
.aviso-titulo { color: var(--coral-suave); font: 400 16px/1.5 "Press Start 2P", monospace; }
.acento { position: relative; }
.acento::after { content: ""; position: absolute; top: -.25em; left: .4em; width: .3em; height: .15em; background: currentColor; }
.aviso-texto { color: var(--gris); font-size: 13px; line-height: 1.5; }
.aviso-botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.aviso .boton { background: none; font: 400 13px/1.6 var(--mono); text-decoration: none; cursor: pointer; }
.aviso .boton:hover, .aviso .boton:focus-visible { border-color: var(--coral); }
.bloque-stream p { min-height: 21px; margin-top: 8px; }
.bloque-chat { display: flex; flex-direction: column; gap: 8px; min-height: 420px; }
.chat { position: relative; flex: 1; overflow: hidden; background: #141414; border: 1px solid var(--borde); border-radius: 8px; }
.chat iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pie { padding: 16px 0 8px; color: var(--tenue); font-size: 13px; text-align: right; }

@media (max-width: 820px) {
  .ventana { padding: 0 12px 6px; }
  .cabecera { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .personaje, .score { justify-self: center; }
  .score { width: 100%; }
  .tarjetas, .vivo { grid-template-columns: minmax(0, 1fr); }
  .redes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .red:last-child { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .destello, .gesto, .monitor { animation: none; }
  .red { transition: none; }
}
@media (max-width: 420px) {
  body { padding: 12px 8px; }
}
