/* ═══ BASE — Reset, Typography, Links ═════════════════ */

/* ── Font face (self-hosted) ── */
@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-Variable.woff2') format('woff2');
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Plus Jakarta Sans';
    src: url('../fonts/PlusJakartaSans-Variable-Italic.woff2') format('woff2');
    font-weight: 200 800;
    font-style: italic;
    font-display: swap;
}

/* ── Base reset ── */
body.inkside-theme {
    margin: 0;
    font-family: var(--ink-font);
    font-size: var(--ink-font-size-base);
    line-height: 1.6;
    color: var(--ink-text);
    background-color: var(--ink-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.inkside-theme *,
body.inkside-theme *::before,
body.inkside-theme *::after {
    box-sizing: border-box;
}

/* ── Headings ── */
body.inkside-theme h1,
body.inkside-theme h2,
body.inkside-theme h3,
body.inkside-theme h4,
body.inkside-theme h5,
body.inkside-theme h6 {
    font-family: var(--ink-font);
    color: var(--ink-text);
    font-weight: 700;
    line-height: 1.25;
    margin-top: 0;
    margin-bottom: var(--ink-space-sm);
}

body.inkside-theme h1 { font-size: var(--ink-font-size-3xl); }
body.inkside-theme h2 { font-size: var(--ink-font-size-2xl); }
body.inkside-theme h3 { font-size: var(--ink-font-size-xl); }
body.inkside-theme h4 { font-size: var(--ink-font-size-lg); }
body.inkside-theme h5 { font-size: var(--ink-font-size-md); }
body.inkside-theme h6 { font-size: var(--ink-font-size-base); }

/* ── Paragraphs ── */
body.inkside-theme p {
    margin-top: 0;
    margin-bottom: var(--ink-space-md);
    color: var(--ink-text);
}

/* ── Links ── */
body.inkside-theme a {
    color: var(--ink-primary);
    text-decoration: none;
    transition: color var(--ink-transition-fast);
}

body.inkside-theme a:hover {
    color: var(--ink-primary-hover);
}

/* ── Images ── */
body.inkside-theme img {
    max-width: 100%;
    height: auto;
}

/* ── Selection ── */
body.inkside-theme ::selection {
    background-color: var(--ink-primary);
    color: #fff;
}

/* ── Focus ring ── */
body.inkside-theme :focus-visible {
    outline: 2px solid var(--ink-primary);
    outline-offset: 2px;
    border-radius: var(--ink-radius-xs);
}

/* ── Lists ── */
body.inkside-theme ul,
body.inkside-theme ol {
    padding-left: var(--ink-space-lg);
    margin-bottom: var(--ink-space-md);
}

/* ── Horizontal rule ── */
body.inkside-theme hr {
    border: none;
    border-top: 1px solid var(--ink-border);
    margin: var(--ink-space-xl) 0;
}

/* ── Code ── */
body.inkside-theme code {
    font-family: var(--ink-font-mono);
    font-size: 0.9em;
    background: var(--ink-bg-muted);
    padding: 2px 6px;
    border-radius: var(--ink-radius-xs);
}

/* ── Small / muted text ── */
body.inkside-theme small,
body.inkside-theme .ink-text-muted {
    color: var(--ink-text-muted);
    font-size: var(--ink-font-size-sm);
}

body.inkside-theme .ink-text-faint {
    color: var(--ink-text-faint);
    font-size: var(--ink-font-size-xs);
}
