html {
    min-height: 100%;
    background: var(--page-background);
    color: var(--text-primary);
    font-family: var(--font-sans);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body {
    min-height: 100vh;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a,
input,
select,
textarea {
    outline-offset: 3px;
}

:focus-visible {
    outline: 2px solid var(--accent);
    box-shadow: var(--focus-ring);
}

::selection {
    color: var(--brand-off-white);
    background: var(--brand-primary-purple);
}

img,
svg {
    max-width: 100%;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: var(--space-3);
    left: var(--space-3);
    padding: var(--space-2) var(--space-4);
    border: 1px solid var(--accent);
    border-radius: var(--radius-control);
    color: var(--text-primary);
    background: var(--surface-elevated);
    box-shadow: var(--shadow-panel);
    font-weight: 700;
    text-decoration: none;
    transform: translateY(calc(-100% - var(--space-6)));
}

.skip-link:focus {
    transform: translateY(0);
}

#page-content:focus {
    outline: none;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

@media (forced-colors: active) {
    :focus-visible {
        outline: 3px solid CanvasText;
        box-shadow: none;
    }
}

.theme-logo-on-light {
    display: none;
}

html[data-theme="light"] .theme-logo-on-dark {
    display: none;
}

html[data-theme="light"] .theme-logo-on-light {
    display: block;
}

@media (prefers-color-scheme: light) {
    html[data-theme="system"] .theme-logo-on-dark {
        display: none;
    }

    html[data-theme="system"] .theme-logo-on-light {
        display: block;
    }
}
