/* base.css · reinicio, tipografía y utilidades */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; background: var(--c-fondo); }
body {
  background: var(--c-fondo); color: var(--c-texto);
  font: 400 var(--t-base)/1.45 var(--f-texto);
  min-height: 100dvh; overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
html.bloqueo, html.bloqueo body { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-align: inherit; touch-action: manipulation; }
input { font: inherit; color: inherit; }
ul { list-style: none; padding: 0; }
[hidden] { display: none !important; }
a { color: inherit; }
p, li { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; font-weight: 700; }
::selection { background: var(--atm); color: #000; }

.disp { font-family: var(--f-display); font-weight: 700; text-transform: uppercase; line-height: .86; letter-spacing: .004em; }
.num { font-variant-numeric: tabular-nums; }
.solo-lectores { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Foco visible con estilo de marca */
:focus-visible { outline: 3px solid var(--atm); outline-offset: 3px; border-radius: 4px; }

/* Superficies del navegador tematizadas con la paleta */
html { scrollbar-color: #3a362e var(--c-fondo); scrollbar-width: thin; }
input, textarea { caret-color: var(--c-acento); accent-color: var(--c-acento); }
a { text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--c-fondo); }
::-webkit-scrollbar-thumb { background: #3a362e; border-radius: 6px; border: 2px solid var(--c-fondo); }

/* Durante la apertura no hay desplazamiento ni barra visible */
html:has(#intro) { overflow: hidden; }
