/* ============================================================
   Design tokens — Jack Portfolio
   These tokens are the single source of truth for color, spacing,
   radius, shadow, and typography. styles.css can reference them
   via var(--token-name) and override locally where needed.
   ============================================================ */

:root {
    /* Brand & semantic colors (existing palette retained) */
    --color-primary: #52c41a;
    --color-primary-strong: #389e0d;
    --color-secondary: #1890ff;
    --color-accent: #73d13d;
    --color-eco-gold: #faad14;
    --color-earth: #8c7851;

    --color-bg: #1a2332;
    --color-bg-strong: #141d2b;
    --color-bg-section: #1f2937;

    --color-text: #ffffff;
    --color-text-muted: #d1d5db;
    --color-text-dim: #9ca3af;

    --color-success: #52c41a;
    --color-warning: #faad14;
    --color-danger: #ff4d4f;
    --color-info: #1890ff;

    /* Spacing scale */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --space-8: 4rem;

    /* Radii */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-pill: 999px;

    /* Shadow */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.15);
    --shadow-md: 0 4px 20px rgba(0, 0, 0, 0.25);
    --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.35);

    /* Typography */
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                 "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-md: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.5rem;
    --font-size-2xl: 2rem;
    --font-size-3xl: 3rem;

    /* Motion */
    --motion-fast: 150ms;
    --motion-base: 250ms;
    --motion-slow: 450ms;

    /* Z-index */
    --z-nav: 50;
    --z-modal: 1000;
    --z-toast: 2000;

    /* Aliases for backwards compatibility with existing styles.css */
    --primary-color: var(--color-primary);
    --secondary-color: var(--color-secondary);
    --accent-color: var(--color-accent);
    --dark-bg: var(--color-bg);
    --darker-bg: var(--color-bg-strong);
    --light-section-bg: var(--color-bg-section);
    --text-primary: var(--color-text);
    --text-secondary: var(--color-text-muted);
    --text-tertiary: var(--color-text-dim);
}

/* Accessibility */
:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

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