/* Optional expression layer. Load after product styles. No shell geometry here. */
.lm-kv {
  --kv-green: var(--color-accent-text, #39740f);
  --kv-lime: var(--color-lime-text, #667500);
  --kv-purple: var(--color-tech-text, #6d5bd0);
  --kv-grid: rgb(63 127 18 / 5%);
  --kv-line: rgb(63 127 18 / 50%);
  --kv-grid-cell: 32px;
  --kv-hud-size: 16px;
}
:root[data-theme='dark'] .lm-kv {
  --kv-green: #8ff04a;
  --kv-lime: #e4fb4a;
  --kv-purple: #a98bff;
  --kv-grid: rgb(143 240 74 / 5%);
  --kv-line: rgb(143 240 74 / 50%);
}
:root[data-theme='dark'] .lm-kv:is([data-kv-level='expressive'],[data-kv-level='showcase']) {
  --color-bg: #05080a;
  --color-surface: #111a14;
  --color-text: #e8f5e2;
  --color-muted: #b0c2a7;
}
.lm-kv .kv-eyebrow { font: 400 12px/1.5 var(--font-mono,monospace); letter-spacing: .12em; text-transform: uppercase; color: var(--kv-purple); }
.lm-kv .kv-accent { color: var(--kv-green); }
.lm-kv .kv-mono { font-family: var(--font-mono,monospace); }
.lm-kv.kv-grid { position: relative; isolation: isolate; }
.lm-kv.kv-grid::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: linear-gradient(var(--kv-grid) 1px,transparent 1px),linear-gradient(90deg,var(--kv-grid) 1px,transparent 1px); background-size: var(--kv-grid-cell) var(--kv-grid-cell); }
.lm-kv[data-kv-level='base'].kv-grid::before { content: none; }
.lm-kv .kv-hud { position: relative; }
.lm-kv .kv-hud::before, .lm-kv .kv-hud::after { content: ''; position: absolute; width: var(--kv-hud-size); height: var(--kv-hud-size); pointer-events: none; border-color: var(--kv-line); }
.lm-kv .kv-hud::before { top: 10px; left: 10px; border-left: 1px solid; border-top: 1px solid; border-color: var(--kv-line); }
.lm-kv .kv-hud::after { bottom: 10px; right: 10px; border-right: 1px solid; border-bottom: 1px solid; border-color: var(--kv-line); }
.lm-kv[data-kv-level='base'] .kv-hud::before, .lm-kv[data-kv-level='base'] .kv-hud::after { content: none; }
:root[data-theme='dark'] .lm-kv:not([data-kv-level='base']) .kv-glow { text-shadow: 0 0 18px rgb(143 240 74 / 24%); }
.lm-kv [data-kv-matrix] { display: none; position: absolute; inset: 0 0 auto; width: 100%; height: min(100%,800px); z-index: -1; pointer-events: none; opacity: .3; }
:root[data-theme='dark'] .lm-kv[data-kv-level='showcase'] [data-kv-matrix] { display: block; }
.lm-kv [data-kv-ticker] { overflow: hidden; font: 400 12px/1.6 var(--font-mono,monospace); color: var(--color-muted,var(--kv-green)); }
.lm-kv .kv-ticker-track { display: flex; width: max-content; gap: 48px; }
.lm-kv [data-kv-ready='true'] .kv-ticker-track { animation: kv-ticker-scroll 32s linear infinite; }
.lm-kv [data-kv-running='false'] .kv-ticker-track { animation-play-state: paused; }
.lm-kv [data-kv-boot] { display: none; }
.lm-kv [data-kv-boot].kv-boot-active { display: block; position: fixed; bottom: 24px; left: 16px; max-width: calc(100vw - 32px); z-index: 30; padding: 16px; background: var(--color-surface,#111a14); border: 1px solid var(--kv-line); border-radius: 12px; pointer-events: none; }
.lm-kv [data-kv-boot] button { pointer-events: auto; }
.lm-kv .kv-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* Modo telao: exibicao em tela grande, vista de longe e sem ninguem operando a pagina.
   Unico escopo em que esta camada toca o recipiente, e so dentro de [data-kv-stage='wall'].
   Nao usar em ferramenta, formulario ou leitura de perto. */
.lm-kv[data-kv-stage='wall'] {
  --wrap-max: none;
  --wrap-pad: clamp(32px, 4vw, 96px);
  --kv-grid-cell: clamp(32px, 2.4vw, 80px);
  --kv-hud-size: clamp(16px, 1.4vw, 44px);
}
.lm-kv[data-kv-stage='wall'] .wrap { max-width: none; }
.lm-kv[data-kv-stage='wall'] :where(h1) { font-size: clamp(2.5rem, 4.6vw, 7rem); line-height: 1.04; }
.lm-kv[data-kv-stage='wall'] :where(h2) { font-size: clamp(1.75rem, 2.6vw, 4rem); line-height: 1.1; }
.lm-kv[data-kv-stage='wall'] :where(h3) { font-size: clamp(1.25rem, 1.7vw, 2.5rem); }
.lm-kv[data-kv-stage='wall'] :where(p, li, dd, dt) { font-size: clamp(1.125rem, 1.25vw, 2rem); }
.lm-kv[data-kv-stage='wall'] .kv-eyebrow { font-size: clamp(12px, 1vw, 24px); }
/* O numero e o que se le do fundo da sala: cresce mais que o texto ao redor. */
.lm-kv[data-kv-stage='wall'] [data-kv-count] { font-size: clamp(2.5rem, 5.5vw, 9rem); line-height: 1; }
/* A chuva cobre a tela inteira, nao uma faixa de 800px presa ao topo da secao. */
.lm-kv[data-kv-stage='wall'] [data-kv-matrix] { position: fixed; inset: 0; width: 100%; height: 100%; }
.lm-kv[data-kv-stage='wall'] [data-kv-ticker] { font-size: clamp(14px, 1.15vw, 30px); }
.lm-kv[data-kv-stage='wall'] .kv-ticker-track { gap: clamp(48px, 5vw, 144px); }
/* O controle continua existindo e operavel pelo teclado; so nao ocupa a tela enquanto ninguem o usa. */
.lm-kv[data-kv-stage='wall'] [data-kv-pause] { position: fixed; left: 16px; bottom: 16px; z-index: 40; opacity: 0; pointer-events: none; }
.lm-kv[data-kv-stage='wall'] [data-kv-pause]:focus-visible { opacity: 1; pointer-events: auto; }
@keyframes kv-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 24px)); } }
@keyframes kv-reveal { from { opacity: .85; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .lm-kv *, .lm-kv *::before, .lm-kv *::after { animation: none !important; transition: none !important; }
  .lm-kv [data-kv-matrix], .lm-kv [data-kv-boot] { display: none !important; }
}
@media (forced-colors: active) {
  .lm-kv.kv-grid::before, .lm-kv .kv-hud::before, .lm-kv .kv-hud::after, .lm-kv [data-kv-matrix] { display: none; }
  .lm-kv .kv-glow { text-shadow: none !important; }
}
@media print {
  .lm-kv.kv-grid::before, .lm-kv [data-kv-matrix], .lm-kv [data-kv-boot], .lm-kv [data-kv-pause] { display: none !important; }
  .lm-kv .kv-glow { text-shadow: none !important; }
  .lm-kv .kv-ticker-track { animation: none !important; }
}
