/**
 * Typography
 *
 * Escala deliberadamente contenida para una lectura tranquila.
 */

html {
    font-family: var(--hemik-font-sans);
    font-size: 100%;
}

body {
    color: var(--hemik-color-text);
    font-family: var(--hemik-font-sans);
    font-size: var(--hemik-font-size-base);
    font-weight: var(--hemik-font-weight-regular);
    line-height: var(--hemik-line-height-body);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--hemik-color-text);
    font-weight: var(--hemik-font-weight-semibold);
    line-height: var(--hemik-line-height-heading);
    text-wrap: balance;
}

h1 {
    font-size: var(--hemik-font-size-4xl);
    letter-spacing: -0.025em;
}

h2 {
    font-size: var(--hemik-font-size-3xl);
    letter-spacing: -0.02em;
}

h3 {
    font-size: var(--hemik-font-size-2xl);
}

h4 {
    font-size: var(--hemik-font-size-xl);
}

h5 {
    font-size: var(--hemik-font-size-lg);
}

h6 {
    font-size: var(--hemik-font-size-base);
}

p,
li,
dd {
    text-wrap: pretty;
}

small {
    font-size: var(--hemik-font-size-sm);
}

strong,
b {
    font-weight: var(--hemik-font-weight-semibold);
}

code,
kbd,
samp,
pre {
    font-family: var(--hemik-font-mono);
}

code {
    font-size: 0.925em;
}

pre {
    overflow-x: auto;
    padding: var(--hemik-space-4);
    border: var(--hemik-border);
    border-radius: var(--hemik-radius-md);
    background: var(--hemik-color-surface-soft);
    line-height: 1.6;
    white-space: pre;
}

blockquote {
    padding-inline-start: var(--hemik-space-5);
    border-inline-start: 3px solid var(--hemik-color-border-strong);
    color: var(--hemik-color-text-soft);
    font-size: var(--hemik-font-size-lg);
    line-height: var(--hemik-line-height-relaxed);
}

figcaption {
    margin-block-start: var(--hemik-space-2);
    color: var(--hemik-color-text-muted);
    font-size: var(--hemik-font-size-sm);
    line-height: 1.55;
}

::selection {
    color: var(--hemik-color-text);
    background: var(--hemik-color-brand-soft);
}
