@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 500 800;
    font-display: swap;
    src: url("/fonts/outfit-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Outfit";
    font-style: normal;
    font-weight: 500 800;
    font-display: swap;
    src: url("/fonts/outfit-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "DM Sans";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("/fonts/dm-sans-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "DM Sans";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("/fonts/dm-sans-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    color-scheme: light;

    /* Core brand palette (Brand.dc.html, Oct 2026 restyle) */
    --gmw-violet: #6D4AFF;         /* primary, buttons, links */
    --gmw-violet-bright: #8F75FF;  /* hover / bright violet accent */
    --gmw-violet-dark: #B5A6FF;    /* violet on dark backgrounds */
    --gmw-violet-ink: #4B2FCC;     /* readable violet ink on light tints */
    --gmw-coral: #FF4F8B;          /* sparkle, confetti */
    --gmw-coral-ink: #E0306F;      /* readable coral ink on white */
    --gmw-coral-tint: #FFE4EE;     /* coral tint */
    --gmw-blush: #FF8FB4;          /* soft blush accent */
    --gmw-lemon: #FFD166;          /* logo, highlights - carries Midnight text */
    --gmw-lemon-tint: #FFF3D6;     /* lemon tint */
    --gmw-mint: #22D3B5;           /* claimed, success */
    --gmw-mint-ink: #0FA58A;       /* readable mint ink on white */
    --gmw-mint-tint: #DDF8F2;      /* mint tint */
    --gmw-midnight: #1B1340;       /* ink, dark bands */
    --gmw-slate: #5E5A7A;          /* body copy */
    --gmw-lilac-mist: #F6F4FF;     /* section tint */
    --gmw-lilac-border: #E6E2F7;   /* card / control border */
    --gmw-violet-tint: #EFEAFF;    /* violet tint */
    --gmw-dashed-border: #C9C3E6;  /* dashed border / empty slot */
    --gmw-muted-on-midnight: #A9A2CC; /* muted text on midnight */
    --gmw-white: #FFFFFF;          /* page ground */

    /* Neutral / ground roles. The cream palette is retired; these names stay
       so the existing call sites keep resolving, now against the new roles. */
    --gmw-cream: var(--gmw-white);        /* page ground */
    --gmw-cream-2: var(--gmw-lilac-mist); /* secondary neutral surface, inactive chips */
    --gmw-cream-3: var(--gmw-violet-tint);/* quiet fill */
    --gmw-card: var(--gmw-white);         /* elevated surface */
    --gmw-card-solid: var(--gmw-white);   /* pure white where a crisp surface is needed */
    --gmw-ink: var(--gmw-midnight);       /* primary text / headings */
    --gmw-ink-2: #3C365D;                 /* strong secondary ink */
    --gmw-muted: var(--gmw-slate);        /* secondary explanatory text */
    --gmw-muted-2: #5E5A7A;               /* tertiary / quiet metadata; slate, 4.5:1 on white (docs/UI-REVIEW-2026-10.md item 23) */
    --gmw-line: var(--gmw-lilac-border);  /* low-contrast surface border */
    --gmw-line-2: var(--gmw-violet-tint); /* border alt */
    --gmw-line-3: var(--gmw-dashed-border);/* stronger border / dividers */

    /* Primary action = electric violet */
    --gmw-primary: var(--gmw-violet);          /* primary brand/action */
    --gmw-primary-2: var(--gmw-violet-bright); /* hover / bright accent */
    --gmw-primary-tint: var(--gmw-violet-tint);/* soft primary background */
    --gmw-primary-tint-2: #E3DCFF;             /* softer primary border tint */
    --gmw-primary-ink: var(--gmw-violet-ink);  /* readable text on primary tint */

    /* Success / safe / privacy = mint */
    --gmw-success: var(--gmw-mint);
    --gmw-success-2: var(--gmw-mint-ink);
    --gmw-success-tint: var(--gmw-mint-tint);
    --gmw-success-border: var(--gmw-mint);

    /* Purchased / completed = lemon */
    --gmw-gold: var(--gmw-lemon);
    --gmw-gold-ink: var(--gmw-midnight);
    --gmw-gold-tint: var(--gmw-lemon-tint);

    /* Back-compat aliases: old token names now resolve to the new roles so
       components can migrate incrementally without breaking. */
    --gmw-spruce: var(--gmw-primary);
    --gmw-spruce-2: var(--gmw-primary-2);
    --gmw-mint-2: var(--gmw-success-2);
    --gmw-coral-2: var(--gmw-coral-tint);
    --gmw-blue: var(--gmw-cream-2);      /* blue retired -> lilac mist */
    --gmw-purple: var(--gmw-cream-3);    /* purple callouts -> violet tint */

    /* Shape */
    --gmw-radius-sm: 12px;   /* inner tiles */
    --gmw-radius-md: 14px;   /* inner tiles */
    --gmw-radius-lg: 18px;   /* cards */
    --gmw-radius-xl: 20px;   /* cards */
    --gmw-radius-pill: 999px;
    --gmw-radius-sidebar: 12px;
    --gmw-radius-app-icon: 18px;

    --gmw-border-hairline: 1px solid var(--gmw-lilac-border);
    --gmw-border-control: 1.5px solid var(--gmw-lilac-border);

    /* Elevation */
    --gmw-shadow-card: 0 6px 18px rgba(27, 19, 64, .05);
    --gmw-shadow-panel: 0 12px 32px rgba(27, 19, 64, .08);
    --gmw-shadow-hero: 0 24px 60px rgba(27, 19, 64, .12);
    --gmw-shadow-button: 0 8px 20px rgba(109, 74, 255, .28);
    --gmw-shadow-button-lg: 0 10px 24px rgba(109, 74, 255, .3);
    --gmw-shadow-floating: 0 12px 28px rgba(109, 74, 255, .35);
    --gmw-shadow: var(--gmw-shadow-panel);
    --gmw-shadow-sm: var(--gmw-shadow-card);

    /* Spacing rhythm (unchanged) */
    --gmw-space-1: .35rem;
    --gmw-space-2: .65rem;
    --gmw-space-3: 1rem;
    --gmw-space-4: 1.5rem;
    --gmw-space-5: 2rem;

    /* Typography */
    --gmw-font-family: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --gmw-font-display: "Outfit", var(--gmw-font-family);

    --gmw-focus-ring: 3px solid rgba(109, 74, 255, .30);
    --gmw-focus-ring-soft: 3px solid rgba(109, 74, 255, .20);
    --gmw-button-shadow: var(--gmw-shadow-button);

    /* Review viewport targets (unchanged review contract) */
    --gmw-desktop-viewport-width: 1440px;
    --gmw-desktop-viewport-height: 1100px;
    --gmw-mobile-viewport-width: 390px;
    --gmw-mobile-viewport-height: 900px;
}

@media (max-width: 900px) {
    :root {
        --gmw-responsive-columns: 1;
    }
}

@media (max-width: 540px) {
    :root {
        --gmw-mobile-action-width: 100%;
    }
}
