/* k.css — kit /thanosgordao: só SEGURANÇA. Nenhuma cor, fonte, raio, sombra ou espaçamento.
   Tudo em :where() (especificidade zero): qualquer regra do cliente vence, menos [hidden]. */
[hidden] { display: none !important; }
:where(html) { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
:where(img, video, canvas, svg) { max-width: 100%; }
:where(img, video) { height: auto; }
:where(.k-sr) { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
:where(.k-pular) { position: absolute; left: 8px; top: -60px; z-index: 9999; padding: 8px 12px; background: #fff; color: #000; }
:where(.k-pular:focus) { top: 8px; }

/* revelar: o conteúdo só se esconde depois que o k.js confirmou que está vivo (html.k-ok).
   Sem JS, com erro de JS ou após o failsafe, tudo aparece. A FORMA da entrada é do cliente. */
:where(html.k-ok [data-k-revela]:not(.k-in)) { opacity: 0; }
:where(html.k-ok [data-k-revela]) { transition: opacity var(--k-revela-dur, .7s) ease; }

/* palco 3D: pôster embaixo, canvas por cima; o canvas só aparece quando a cena desenhou */
:where(.k-palco) { position: relative; }
:where(.k-palco > .k-poster, .k-palco > .k-canvas) { position: absolute; inset: 0; width: 100%; height: 100%; }
:where(.k-palco > .k-poster) { object-fit: contain; }
:where(.k-palco > .k-canvas) { opacity: 0; transition: opacity .5s ease; touch-action: pan-y; }
:where(.k-palco.k-vivo > .k-canvas) { opacity: 1; }
:where(.k-palco [data-k-ancora]) { position: absolute; left: 0; top: 0; pointer-events: none; will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  :where(html.k-ok [data-k-revela]) { transition: none; }
}
@media print {
  :where([data-k-flutuante], .k-palco > .k-canvas) { display: none !important; }
}
