/* =========================
   GLOBAL STYLES & VARIABLES
========================= */

:root {
    --header-height: 72px;

    /* ── Accent palette ── */
    --accent: #1d4ed8;
    --accent-light: #3b82f6;
    --accent-teal: #0891b2;
    --accent-gradient: linear-gradient(135deg, #1d4ed8, #0891b2);
    --ring: rgba(29, 78, 216, .95);
    --ring-fill: rgba(29, 78, 216, .14);

    /* ── Dark theme ── */
    --text: #e2e8f0;
    --text-muted: rgba(226, 232, 240, .55);
    --bg-solid: rgba(10, 15, 26, .98);
    --bg-solid-2: rgba(10, 15, 26, .95);
    --bg-glass: rgba(10, 15, 26, .72);
    --bg-glass-2: rgba(10, 15, 26, .50);
    --border-glass: rgba(148, 163, 184, .10);

    /* ── Light theme ── */
    --text-light: #0f172a;
    --text-muted-light: rgba(51, 65, 85, .60);
    --bg-light: #f3f5f8;
    --border-light: rgba(148, 163, 184, .18);

    /* ── Typography ── */
    --font-display: 'Inter', system-ui, -apple-system, sans-serif;
    --fs-hero: clamp(38px, 4.5vw, 68px);
    --fs-section: clamp(26px, 2.8vw, 44px);
    --fs-card: clamp(15px, 1.1vw, 18px);
    --fw-black: 900;
    --tracking-tight: -0.03em;
    --radius-lg: 20px;
    --radius-md: 14px;
    --radius-sm: 10px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-display);
    background: #0c1120;
    color: var(--text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Light Theme Overwrite */
html[data-theme="light"] {
    background: var(--bg-light);
    color: var(--text-light);
}

html[data-theme="light"] body {
    background: var(--bg-light);
    color: var(--text-light);
}

/* Theme Preload Utilities */
html.no-js body {
    visibility: hidden;
}

/* prevent language/flag flash before i18n is applied */
html.lang-pending [data-i18n],
html.lang-pending #langCurrentFlag {
    visibility: hidden;
}