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

html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
    text-rendering: optimizeLegibility;
}

body {
    font-family: var(--font, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    background: var(--bg-primary, #0B0D10);
    color: var(--text-secondary, #C8CED6);
    line-height: var(--leading-relaxed, 1.6);
    min-height: 100vh;
    font-size: var(--body, 0.875rem);
    font-weight: var(--weight-normal, 400);
}

::selection {
    background: var(--accent-subtle, rgba(94, 161, 255, 0.08));
    color: var(--text-primary, #F3F5F7);
}

:focus-visible {
    outline: 2px solid var(--accent-primary, #5EA1FF);
    outline-offset: 2px;
    border-radius: var(--radius-sm, 4px);
}

a {
    color: var(--text-primary, #F3F5F7);
    text-decoration: none;
    transition: color var(--transition, 0.2s ease);
}
a:hover {
    color: var(--accent-primary, #5EA1FF);
}

h1, h2, h3, h4, h5, h6 {
    color: var(--text-primary, #F3F5F7);
    font-weight: var(--weight-semibold, 600);
    line-height: var(--leading-tight, 1.2);
    letter-spacing: var(--tracking-tight, -0.02em);
}

h1 { font-size: var(--heading, 1.5rem); margin-bottom: var(--space-2, 0.5rem); }
h2 { font-size: var(--title, 1.125rem); margin-bottom: var(--space-2, 0.5rem); }
h3 { font-size: var(--body, 0.875rem); margin-bottom: var(--space-1, 0.25rem); }

p { margin-bottom: var(--space-2, 0.5rem); }

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--surface-border); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }

img { max-width: 100%; height: auto; display: block; background: var(--surface-bg, #14181C); color: transparent; }

button, input, select, textarea {
    font-family: var(--font);
}
