/*
 * Alt SourceCode Theme Tokens
 * Based on Bind Template (Framer export)
 * All design tokens centralized here
 */

/* ===== FONT FACES ===== */
@font-face {
    font-family: "Inter";
    src: url("../../assets/fonts/inter-400-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 400;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Inter";
    src: url("../../assets/fonts/inter-500-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 500;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Inter";
    src: url("../../assets/fonts/inter-700-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 700;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== CSS CUSTOM PROPERTIES ===== */
:root {
    /* === Colors === */
    /* Primary */
    --color-primary: #007cff;
    --color-primary-dark: #0073af;
    --color-primary-rgb: 0, 124, 255;

    /* Accents */
    --color-accent-green: #34c848;
    --color-accent-green-border: #27ad30;
    /* BIND window control border */
    --color-accent-orange: #ec5a29;
    --color-accent-yellow: #febb40;
    --color-accent-yellow-border: #dca034;
    /* BIND window control border */
    --color-accent-red: #fd5754;
    --color-accent-red-border: #e34844;
    /* BIND window control border */

    /* Neutrals */
    --color-black: #000;
    --color-white: #fff;
    --color-text: #000;
    --color-text-muted: rgba(0, 0, 0, 0.7);
    --color-text-subtle: rgba(0, 0, 0, 0.5);
    --color-text-inverse: #fff;
    --color-text-inverse-muted: rgba(255, 255, 255, 0.7);

    /* Backgrounds — BIND EXACT (rgb(242,242,242) is main page bg) */
    --color-bg-primary: #f2f2f2;
    /* Main page background — BIND's most used */
    --color-bg-secondary: #f7f7f5;
    /* Warm gray — less common */
    --color-bg-tertiary: #e9e9e9;
    /* Darker gray for inputs/subtle areas */
    --color-bg-card: #fff;
    /* Cards — BIND uses white (109 uses) */
    --color-bg-dark: #000;

    /* Borders */
    --color-border: #e8e8e8;
    --color-border-strong: #dcdcdc;
    --color-border-subtle: rgba(0, 0, 0, 0.04);

    /* === Typography === */
    --font-family: "Geist Sans", "Geist", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
    --font-family-heading: "Halant", Georgia, serif;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;

    /* Font Sizes — BIND EXACT VALUES */
    --font-size-2xs: 10px;
    /* Tiny text, micro labels */
    --font-size-xs: 12px;
    /* Small text, badges */
    --font-size-sm: 14px;
    /* Labels, nav, buttons (most common) */
    --font-size-base: 16px;
    /* Body text */
    --font-size-lg: 18px;
    /* Large body */
    --font-size-xl: 22px;
    /* H4, card titles */
    --font-size-2xl: 32px;
    /* H3 mobile, section titles */
    --font-size-3xl: 40px;
    /* H2 tablet */
    --font-size-4xl: 48px;
    /* H1/H2 tablet, section headers */
    --font-size-5xl: 58px;
    /* Hero subtitle desktop */
    --font-size-6xl: 64px;
    /* Hero title desktop */
    --font-size-hero: 70px;
    /* ControlTheme Hero Title (user decision 2026-01-25) */

    /* Line Heights — BIND EXACT VALUES */
    --line-height-tighter: 1.1em;
    /* Very tight (hero titles) */
    --line-height-tight: 1.2em;
    /* Headings (most common) */
    --line-height-snug: 1.4em;
    /* Labels, buttons */
    --line-height-normal: 150%;
    /* Body text */
    --line-height-relaxed: 120%;
    /* Alternate body */

    /* Letter Spacing — BIND EXACT VALUES */
    --letter-spacing-tight: -0.06em;
    /* Headings */
    --letter-spacing-normal: -0.03em;
    /* Body, labels */
    --letter-spacing-none: 0;
    /* When no spacing needed */

    /* === Spacing === */
    --space-xs: 0.25rem;
    /* 4px */
    --space-sm: 0.5rem;
    /* 8px */
    --space-md: 1rem;
    /* 16px */
    --space-lg: 1.5rem;
    /* 24px */
    --space-xl: 2rem;
    /* 32px */
    --space-2xl: 3rem;
    /* 48px */
    --space-3xl: 4rem;
    /* 64px */
    --space-4xl: 6rem;
    /* 96px */
    --space-5xl: 8rem;
    /* 128px */

    /* Container */
    --container-max: 1200px;
    --container-padding: clamp(1rem, 5vw, 2rem);

    /* === Border Radius === */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-2xl: 24px;
    --radius-full: 9999px;

    /* === Shadows === */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15);
    --shadow-border: 0 0 0 1px rgba(0, 0, 0, 0.04);

    /* === Animation === */
    --ease-smooth: cubic-bezier(0.55, 0, 0, 1);
    --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
    --ease-in-out-expo: cubic-bezier(0.87, 0, 0.13, 1);

    --duration-fast: 150ms;
    --duration-normal: 300ms;
    --duration-slow: 500ms;
    --duration-appear: 1.5s;

    --appear-shift: 40px;

    /* === Z-Index Scale === */
    --z-base: 0;
    --z-above: 1;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-overlay: 300;
    --z-modal: 400;
    --z-toast: 500;
}

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    :root {
        --duration-appear: 0.01ms;
        --appear-shift: 0px;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}