/* Explain: Base reset, typography, and accessibility utilities. - */
* {
    box-sizing: border-box;
}

html {
    background: var(--background-color);
    color: var(--text-color);
    scroll-padding-top: 92px;
}

body {
    margin: 0;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 0% 0%, var(--sage-soft), transparent 45rem),
        radial-gradient(circle at 100% 20%, var(--terracotta-soft), transparent 40rem),
        radial-gradient(circle at 50% 100%, var(--sage-soft), transparent 45rem),
        var(--background-color);
    color: var(--text-color);
    font-family: var(--font-body);
    text-rendering: optimizeLegibility;
}

button,
a,
select {
    cursor: pointer;
}

img {
    display: block;
    max-width: 100%;
}

::selection {
    background: var(--accent-color);
    color: #ffffff;
}

/* Accessibility Utilities */
html.a11y-text-1 { font-size: 110%; }
html.a11y-text-2 { font-size: 120%; }
html.a11y-text-3 { font-size: 130%; }

html.a11y-font * {
    font-family: Arial, Helvetica, sans-serif !important;
}

html.a11y-links a {
    text-decoration: underline !important;
    font-weight: 800 !important;
}

html.a11y-contrast {
    --primary-color: #ffffff;
    --primary-hover: #ffff00;
    --secondary-color: #111111;
    --accent-color: #ffff00;
    --button-color: #ffff00;
    --background-color: #000000;
    --surface-color: #111111;
    --footer-bg: #000000;
    --text-color: #ffffff;
    --text-muted: #dddddd;
    --border-color: #ffff00;
    --glass-bg: rgba(0, 0, 0, 0.95);
    --glass-border: #ffff00;
    --nav-bg: rgba(0, 0, 0, 0.95);
    --field-bg: #222222;
    --sage-soft: #222222;
    --terracotta-soft: #222222;
    --sage-dark: #ffff00;
}

html.a11y-contrast .btn,
html.a11y-contrast button[type="submit"],
html.a11y-contrast #a11y-reset {
    color: #000000 !important;
    background-color: #ffff00 !important;
}
