/* ==========================================================================
   Gleamcode landing - design tokens
   --------------------------------------------------------------------------
   The palette is sampled from the official brand mark (Shared/brand/platform-logo.png),
   not invented: deep navy #001040 / #001868, mid blue #0038C0, bright azure #0090F8.
   One accent only. Dark theme only, locked for the whole page.
   ========================================================================== */

@font-face {
    font-family: "Geist";
    src: url("../fonts/Geist-Variable.woff2") format("woff2-variations");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Geist Mono";
    src: url("../fonts/GeistMono-Variable.woff2") format("woff2-variations");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    /* --- Type families ---------------------------------------------------
       Fallback stack deliberately avoids Inter. */
    --font-sans: "Geist", ui-sans-serif, -apple-system, "Segoe UI Variable Display",
        "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-mono: "Geist Mono", ui-monospace, "Cascadia Mono", "SFMono-Regular",
        Consolas, "Liberation Mono", monospace;

    /* --- Surfaces --------------------------------------------------------
       Never #000000: an off-black carrying the brand's blue undertone. */
    --bg: #05060e;
    --bg-raised: #080a16;
    --surface: #0b0f22;
    --surface-2: #121736;
    --surface-3: #182046;

    /* --- Brand ----------------------------------------------------------- */
    --brand-deep: #001040; /* logo body, darkest structural ink */
    --brand-mid: #0038c0; /* logo mid blue */
    --brand-bright: #0090f8; /* logo highlight, the accent's origin */

    /* --- Accent (single, locked) ------------------------------------------
       8.96:1 on --bg, 8.41:1 on --surface. Verified, not guessed. */
    --accent: #38b6ff;
    --accent-strong: #4fc0ff;
    --accent-dim: #0090f8;
    --accent-ink: #04070f; /* text on a filled accent surface: 8.92:1 */

    /* --- Text ------------------------------------------------------------- */
    --fg: #e9edf7; /* 17.25:1 on --bg */
    --fg-muted: #9aa7c4; /* 8.37:1 on --bg, 7.87:1 on --surface */
    /* Worst case for this one is --surface-2, where #6B779A measured 3.94:1 and
       failed AA on the route labels and the spec keys. 5.03:1 there, 5.82:1 on --bg. */
    --fg-faint: #7c89ae;

    /* --- Lines ------------------------------------------------------------ */
    --line: #1b2344;
    --line-strong: #2b3665;
    --line-accent: rgb(56 182 255 / 0.32);

    /* --- Glow / depth -----------------------------------------------------
       Shadows are tinted to the background hue. No pure-black drop shadows. */
    --shadow-sm: 0 1px 2px rgb(2 4 12 / 0.6);
    --shadow-md: 0 8px 24px -8px rgb(2 4 12 / 0.8);
    --shadow-lg: 0 32px 64px -24px rgb(1 3 10 / 0.9);
    --shadow-screen: 0 48px 96px -32px rgb(0 8 40 / 0.85),
        0 0 0 1px rgb(56 182 255 / 0.12);
    --glow-accent: 0 0 0 1px rgb(56 182 255 / 0.35), 0 12px 40px -12px rgb(0 144 248 / 0.5);

    /* --- Spacing (4 / 8 rhythm) -------------------------------------------- */
    --sp-1: 0.25rem;
    --sp-2: 0.5rem;
    --sp-3: 0.75rem;
    --sp-4: 1rem;
    --sp-5: 1.5rem;
    --sp-6: 2rem;
    --sp-7: 3rem;
    --sp-8: 4rem;
    --sp-9: 6rem;
    --sp-10: 8rem;

    /* --- Section rhythm ---------------------------------------------------- */
    --section-y: clamp(4.5rem, 9vw, 8.5rem);
    --shell: 1280px;
    --gutter: clamp(1.25rem, 4vw, 3rem);

    /* --- Radii (Shape Lock: 16px containers, pill for interactive) ---------- */
    --r-sm: 8px;
    --r-md: 12px;
    --r-lg: 16px;
    --r-xl: 24px;
    --r-pill: 999px;

    /* --- Type scale --------------------------------------------------------- */
    /* The headline is 7 words, and the hero copy sits in roughly half the shell.
       At the previous 5rem cap it wrapped onto five lines, which is a font-size
       error rather than a copy-length one. */
    --t-display: clamp(2.5rem, 4.4vw, 3.75rem);
    --t-h2: clamp(2rem, 3.8vw, 3.15rem);
    --t-h3: clamp(1.25rem, 1.7vw, 1.5rem);
    --t-lead: clamp(1.0625rem, 1.35vw, 1.25rem);
    --t-body: 1rem;
    --t-sm: 0.9375rem;
    --t-xs: 0.8125rem;
    --t-micro: 0.75rem;

    /* --- Motion -------------------------------------------------------------
       Built-in CSS easings are too weak. These are the strong variants. */
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
    --dur-press: 160ms;
    --dur-fast: 200ms;
    --dur-mid: 280ms;
    --dur-reveal: 620ms;

    /* --- Layers ------------------------------------------------------------- */
    --z-base: 0;
    --z-raised: 10;
    --z-sticky: 40;
    --z-nav: 100;
    --z-overlay: 200;

    /* --- Touch --------------------------------------------------------------- */
    --touch-min: 44px;

    color-scheme: dark;
}
