:root {
    color-scheme: light dark;
    --bg: #ffffff;
    --fg: #1a1a1a;
    --muted: #6b6b6b;
    --link: #0056b3;
    --link-visited: #6b2fb3;
    --border: #e2e2e2;
    --code-bg: #f2f2f2;
    --max-width: 42rem;

    /* spacing scale — follows Tailwind's spacing scale (0.25rem step) */
    --space-0-5: 0.125rem;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-12: 3rem;
    --space-16: 4rem;

    /* font-size scale — follows Tailwind's text scale */
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;

    --transition: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (prefers-color-scheme: dark) {
    :root {
        --bg: #14161a;
        --fg: #e8e8e8;
        --muted: #9a9a9a;
        --link: #6ea8ff;
        --link-visited: #b892f2;
        --border: #2a2d33;
        --code-bg: #1e2126;
    }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    padding: var(--space-12) var(--space-6) var(--space-16);
    background: var(--bg);
    color: var(--fg);
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    line-height: 1.6;
}
header, nav, main, footer {
    max-width: var(--max-width);
    margin: 0 auto;
}

/* default tag spacing baseline */
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 var(--space-2);
    line-height: 1.25;
}
p {
    margin: 0 0 var(--space-4);
}
ul, ol {
    margin: 0 0 var(--space-4);
    padding-left: var(--space-6);
}
li {
    margin: 0 0 var(--space-1);
}
blockquote {
    margin: 0 0 var(--space-4);
    padding-left: var(--space-4);
    border-left: 2px solid var(--border);
}

header {
    margin-bottom: var(--space-12);
}
header h1 {
    font-size: var(--text-2xl);
    margin: 0 0 var(--space-1);
}
nav {
    margin-bottom: var(--space-6);
}
nav a {
    font-size: var(--text-sm);
}
a {
    color: var(--link);
    text-underline-offset: var(--space-1);
    transition: color var(--transition), opacity var(--transition), text-decoration-color var(--transition);
}
a:visited {
    color: var(--link-visited);
}
a:hover,
a:focus {
    text-decoration-style: dashed;
    opacity: 0.9;
}

article h1 {
    font-size: var(--text-3xl);
    margin: 0 0 var(--space-1);
}
article li {
    margin: 0 0 var(--space-1);
}
code {
    background: var(--code-bg);
    padding: var(--space-1) var(--space-2);
    border-radius: 4px;
    font-size: var(--text-sm);
}
pre {
    background: var(--code-bg);
    padding: var(--space-2);
    border-radius: 6px;
    overflow-x: auto;
}
pre code {
    background: none;
    padding: 0;
}

header p,
.text-muted,
article > time {
    color: var(--muted);
}
header p {
    margin: 0;
}
article > time {
    display: block;
    font-size: var(--text-sm);
    margin-bottom: var(--space-6);
}
