/* IvaniaTV · Placa de créditos y lectura legal.
   Ocampo-Infra Agent System · autor Roberto Ocampo <ro@ocampo.ai> */
.tv-privacidad {
  position: fixed; z-index: 10000;
  top: 0; right: 0; bottom: 0; left: 0;
  box-sizing: border-box;
  padding: var(--tv-seguro-y) var(--tv-seguro-x);
  background: radial-gradient(ellipse 90% 80% at 50% 40%, rgba(46,38,34,.55) 0, rgba(26,22,20,0) 70%), var(--tv-fondo);
  color: var(--tv-texto); font-family: var(--ip-sans);
  font-size: calc(24.5px * var(--tv-k)); font-weight: 400;
  line-height: 1.3; overflow: hidden; text-align: left;
}
.tv-privacidad p { margin: 0; }
.tv-privacidad-version, .tv-privacidad-rotulo {
  color: var(--tv-oro); text-transform: uppercase; letter-spacing: .16em;
}
.tv-privacidad h1 {
  font-family: var(--ip-serif); font-weight: 500;
  font-size: calc(48px * var(--tv-k)); line-height: 1.15; letter-spacing: .005em;
  margin: calc(12px * var(--tv-k)) 0 calc(24px * var(--tv-k));
}
.tv-privacidad-filete {
  width: calc(96px * var(--tv-k)); height: 1px; background: var(--tv-oro);
  margin-bottom: calc(40px * var(--tv-k));
}
.tv-privacidad-columnas { display: flex; }
.tv-privacidad-lectura { width: 50%; box-sizing: border-box; padding-right: calc(16px * var(--tv-k)); }
.tv-privacidad-codigos { width: 50%; box-sizing: border-box; padding-left: calc(8px * var(--tv-k)); }
.tv-privacidad-resumen { font-size: calc(26px * var(--tv-k)); line-height: 1.45; letter-spacing: .01em; }
.tv-privacidad-resumen p + p { margin-top: calc(16px * var(--tv-k)); }
.tv-privacidad-creditos { margin-top: calc(40px * var(--tv-k)); color: var(--tv-texto-2); letter-spacing: .04em; }
.tv-privacidad-creditos p + p { margin-top: calc(8px * var(--tv-k)); }
.tv-privacidad-tarjeta { display: flex; align-items: center; position: relative; }
.tv-privacidad-tarjeta + .tv-privacidad-tarjeta { margin-top: calc(40px * var(--tv-k)); }
.tv-privacidad-tarjeta:last-child::before {
  content: ''; position: absolute; left: 0; right: 0;
  top: calc(-20px * var(--tv-k)); height: 1px; background: var(--tv-linea);
}
/* El código mide 116 px; los cuatro módulos de margen suman 16 px por lado.
   No se escala por perfil: cada módulo conserva cuatro píxeles enteros. */
.tv-qr-marco {
  flex: 0 0 auto; padding: 16px; background: var(--tv-qr-fondo);
  outline: 1px solid var(--tv-oro); outline-offset: 6px;
}
.tv-privacidad .tv-qr-lienzo {
  width: 116px; height: 116px; border: 0; padding: 0;
  color: #000; background: var(--tv-qr-fondo);
}
.tv-privacidad-leyenda { margin-left: calc(32px * var(--tv-k)); }
.tv-privacidad h2 {
  font-family: var(--ip-serif); font-weight: 500; font-size: calc(30px * var(--tv-k));
  line-height: 1.2; letter-spacing: .005em; margin: calc(4px * var(--tv-k)) 0;
}
.tv-privacidad-url { color: var(--tv-texto-2); letter-spacing: .02em; white-space: nowrap; }
.tv-privacidad-rotulo { white-space: nowrap; }
.tv-privacidad-pie {
  /* 1.0.33: el marco de foco de «Volver» (4 px + 6 px de separación) sobresale del botón; se suma
     al margen para que el marco, no sólo el botón, quede dentro de la zona segura del 5 %. */
  position: absolute;
  left: calc(var(--tv-seguro-x) + var(--tv-foco-ancho) + var(--tv-foco-sep));
  bottom: calc(var(--tv-seguro-y) + var(--tv-foco-ancho) + var(--tv-foco-sep));
  display: flex; align-items: center; letter-spacing: .04em; color: var(--tv-texto-2);
}
.tv-privacidad-volver {
  display: inline-block; height: calc(56px * var(--tv-k)); line-height: calc(56px * var(--tv-k));
  padding: 0 calc(32px * var(--tv-k)); border: 1px solid var(--tv-linea);
  margin-right: calc(48px * var(--tv-k)); color: var(--tv-texto);
}
/* La placa comparte clases en el pase y en H0. Esta hoja se sirve después de sala.css. */
.tv-salida { background: transparent; }
.tv-salida-velo {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(to right, rgba(26,22,20,.90) 0, rgba(26,22,20,.90) 560px, rgba(26,22,20,.45) 820px, rgba(26,22,20,.10) 1200px, rgba(26,22,20,.10) 100%), radial-gradient(ellipse 120% 95% at 55% 45%, rgba(26,22,20,0) 55%, rgba(26,22,20,.55) 100%);
}
.tv-salida .tv-salida-placa {
  position: absolute; top: auto; left: var(--tv-seguro-x);
  bottom: calc(var(--tv-piso-contenido) + 48px * var(--tv-k));
  width: calc(480px * var(--tv-k)); margin: 0; padding: 0;
  background: transparent; border: 0; box-shadow: none; transform: none;
  text-align: left; text-shadow: 0 1px 12px rgba(20,16,15,.6);
}
.tv-salida-filete { width: calc(64px * var(--tv-k)); height: 1px; background: var(--tv-oro); margin-bottom: calc(24px * var(--tv-k)); }
.tv-salida .tv-salida-titulo {
  font-family: var(--ip-serif); font-weight: 500; font-size: calc(48px * var(--tv-k));
  line-height: 1.15; letter-spacing: .005em; margin: 0 0 calc(40px * var(--tv-k)); color: var(--tv-texto);
}
.tv-salida[data-salida="raiz"] .tv-salida-titulo, .es-hogar-salir .tv-salida-titulo { white-space: nowrap; }
.tv-salida-botonera { display: flex; flex-direction: column; align-items: flex-start; margin: 0; }
.tv-salida .tv-salida-boton {
  display: inline-block; flex: 0 0 auto; width: auto; min-width: 0; min-height: 0;
  height: calc(56px * var(--tv-k)); line-height: calc(56px * var(--tv-k));
  margin: 0; padding: 0 calc(16px * var(--tv-k)); border: 0; border-radius: 0;
  background: transparent; color: var(--tv-texto-2); font-family: var(--ip-sans);
  font-weight: 400; font-size: calc(28px * var(--tv-k)); letter-spacing: .02em; white-space: nowrap;
}
.tv-salida .tv-salida-boton + .tv-salida-boton { margin-top: calc(20px * var(--tv-k)); }
.tv-salida-separador { width: calc(160px * var(--tv-k)); height: 1px; background: var(--tv-linea); margin: calc(28px * var(--tv-k)) 0 calc(24px * var(--tv-k)); }
.tv-salida .tv-salida-pie { margin: calc(8px * var(--tv-k)) 0 0; padding: 0; border: 0; }
.tv-salida .tv-salida-boton.es-legal {
  font-size: calc(24.5px * var(--tv-k)); letter-spacing: .04em;
  height: calc(48px * var(--tv-k)); line-height: calc(48px * var(--tv-k));
}
.tv-salida .tv-salida-boton.is-focused {
  outline: var(--tv-foco-ancho) solid var(--tv-foco-color); outline-offset: var(--tv-foco-sep);
  background: transparent; transform: none; color: var(--tv-oro-claro); font-weight: 400;
}
.tv-salida .tv-salida-boton.es-legal.is-focused { color: var(--tv-texto); }
.tv-salida .tv-salida-cuerpo { font-size: calc(24.5px * var(--tv-k)); margin: 0 0 calc(24px * var(--tv-k)); }
.tv-salida-abierta .tv-fijos { opacity: var(--tv-logo-luminancia-reposo); }
.tv-salida-abierta .tv-fondo-capa { filter: brightness(.62) saturate(.85); animation-play-state: paused; }
.es-hogar-bienvenida .tv-hogar-opciones .tv-hogar-boton { font-size: calc(28px * var(--tv-k)); padding-left: calc(24px * var(--tv-k)); padding-right: calc(24px * var(--tv-k)); }
/* La deriva se pausa en la imagen, que es quien lleva la animación. */
.tv-salida-abierta .tv-sangre-img { animation-play-state: paused; }
html[data-piso-reposo="moderno"] .tv-salida-abierta .tv-fondo-capa {
  filter: brightness(.62) saturate(.85) blur(3px); transform: scale(1.02);
}
.tv-salida.is-abierta .tv-salida-velo { animation: tv-salida-velo-entrada var(--tv-dur-escena) var(--tv-ease) both; }
.tv-salida.is-abierta .tv-salida-placa { animation: tv-salida-placa-entrada var(--tv-dur-ui) var(--tv-ease) 200ms both; }
@keyframes tv-salida-velo-entrada { from { opacity: 0; } to { opacity: 1; } }
@keyframes tv-salida-placa-entrada {
  from { opacity: 0; transform: translateY(calc(12px * var(--tv-k))); }
  to { opacity: 1; transform: translateY(0); }
}

/* 1.0.33 · (vive aquí y no en sala.css: sala.css trae cambios del 10/6 sin publicar) pista de «cómo volver» tras negro o pausa locales: dentro de la zona segura del 5 % */
.tv-pista-salida {
  position: absolute;
  right: var(--tv-seguro-x);
  bottom: var(--tv-seguro-y);
  z-index: 50;
  padding: var(--tv-e1) var(--tv-e2);
  font-size: var(--tv-fs-rotulo);
  color: var(--tv-texto-2);
  background-color: var(--tv-superficie);
}

/* 1.0.34 · Puntero (Magic Remote, ratón): lo que se puede activar se ve activable bajo la flecha.
   El anillo de foco no cambia: `.is-focused` sigue siendo el de la casa. */
.tv-privacidad-volver, .tv-salida-boton, .tv-hogar-boton, [data-enfocable] { cursor: pointer; }
