[data-theme="light"] {
    --primary: #18181b;
    --primary-light: #3f3f46;
    --bg: #fafafa;
    --bg-card: #ffffff;
    --text: #18181b;
    --text-muted: #52525b;
    --border: #e4e4e7;
    --accent: #1d4e89;
}
[data-theme="dark"] {
    --primary: #fafafa;
    --primary-light: #a1a1aa;
    --bg: #09090b;
    --bg-card: #18181b;
    --text: #fafafa;
    --text-muted: #a1a1aa;
    --border: #27272a;
    --accent: #7cb2f5;
}
body {
    background-color: var(--bg);
    color: var(--text);
    transition: background-color 0.3s ease, color 0.3s ease;
}
.card {
    background-color: var(--bg-card);
    border-color: var(--border);
}
.text-muted { color: var(--text-muted); }
.link-accent { color: var(--accent); }
.text-primary { color: var(--primary); }
.border-theme { border-color: var(--border); }
.hover-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 40px -10px rgba(0,0,0,0.1);
}
[data-theme="dark"] .hover-card:hover {
    box-shadow: 0 10px 40px -10px rgba(0,0,0,0.5);
}
.animate-fade-in {
    animation: fadeIn 0.6s ease-out forwards;
    opacity: 0;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.theme-btn.active {
    background-color: var(--primary);
    color: var(--bg);
}
/* Focus styles for keyboard navigation */
:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: 4px;
}
/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .animate-fade-in {
        animation: none;
        opacity: 1;
    }
    .hover-card:hover {
        transform: none;
    }
    body {
        transition: none;
    }
}

