/**
 * base.css — reset / normalize (replaces Tailwind Preflight)
 * Token-driven element defaults for the admin + viewer chrome.
 */

*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; }

html { -webkit-text-size-adjust: 100%; line-height: 1.5; }

body {
    font-family: var(--font-body);
    background: var(--color-bg);
    color: var(--color-text);
    line-height: var(--leading-normal);
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-header);
    font-weight: var(--weight-bold);
    line-height: var(--leading-tight);
    color: var(--color-text);
}

a { color: var(--color-link); text-decoration: none; }
a:hover { color: color-mix(in srgb, var(--color-link) 78%, var(--color-text)); }

img, svg, video, canvas { display: block; max-width: 100%; }

/* Form elements inherit typography and reset appearance */
button, input, select, textarea {
    font: inherit;
    color: inherit;
    margin: 0;
}
button { background: none; border: none; cursor: pointer; }

ul, ol { list-style: none; padding: 0; }

hr { border: none; border-top: 1px solid var(--color-border); }

:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
    outline-offset: 2px;
}
