/* Base typography and document defaults */

html { scroll-behavior: smooth; }

body {
    background: var(--c-bg);
    color: var(--c-fg);
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    line-height: var(--lh-base);
    font-weight: var(--fw-regular);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    letter-spacing: -0.01em;
}

h1 { font-size: var(--fs-4xl); }
h2 { font-size: var(--fs-3xl); }
h3 { font-size: var(--fs-2xl); }
h4 { font-size: var(--fs-xl); }
h5 { font-size: var(--fs-lg); }
h6 { font-size: var(--fs-md); text-transform: uppercase; letter-spacing: 0.08em; }

p { line-height: var(--lh-base); }
p + p { margin-top: var(--s-3); }

a {
    color: var(--c-fg);
    text-decoration: none;
    transition: color var(--t-fast) var(--ease-out), opacity var(--t-fast) var(--ease-out);
}
a:hover, a:focus-visible { opacity: 0.7; }

hr {
    border: 0;
    border-top: 1px solid var(--c-border);
    margin: var(--s-6) 0;
}

strong, b { font-weight: var(--fw-semibold); }
em, i { font-style: italic; }

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

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

mark { background: var(--c-accent); color: var(--c-fg); padding: 0 2px; }

img, video { border-radius: var(--radius); }
