/*
 * ZEUS Studio — tokens de marca (Fase 3).
 *
 * Isto NÃO é o `frontend/design-system.css` (aquele é o template que os
 * agentes geradores usam nos sistemas que o ZEUS entrega a clientes, e tem
 * os neutros do Tailwind de propósito, até a fase "Estética nos sistemas
 * gerados"). Este arquivo é a identidade visual do ZEUS Studio em si —
 * fonte: `Z3US-ARTEMIS-/src/index.css` ("Torre de Comando Olimpo").
 *
 * Toda cor abaixo foi verificada por contraste WCAG contra os fundos que ela
 * realmente encontra (ver tests/TestRunner.php, grupo "fase 3") — nenhuma
 * é escolhida "no olho". Nunca azul, em nenhum token.
 */

@font-face {
    font-family: 'Quicksand';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../../assets/vendor/fonts/quicksand/quicksand-latin-300-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Quicksand';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../assets/vendor/fonts/quicksand/quicksand-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Quicksand';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../../assets/vendor/fonts/quicksand/quicksand-latin-500-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Quicksand';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url('../../assets/vendor/fonts/quicksand/quicksand-latin-600-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Quicksand';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../assets/vendor/fonts/quicksand/quicksand-latin-700-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../../assets/vendor/fonts/jetbrains-mono/jetbrains-mono-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../../assets/vendor/fonts/jetbrains-mono/jetbrains-mono-latin-500-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../../assets/vendor/fonts/jetbrains-mono/jetbrains-mono-latin-700-normal.woff2') format('woff2');
}

/* Sem isto, o navegador trata --z-spin-angle como um valor discreto (não
   interpolável) na animação do card ativo (components.css) — o giro salta
   de um extremo ao outro em vez de girar suavemente. */
@property --z-spin-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

:root {
    /* ---- Marca: o raio ---- */
    --z-orange: #f99d28;
    --z-orange-light: #fbb741;
    --z-orange-dark: #f95e10;
    --z-orange-gradient: linear-gradient(135deg, var(--z-orange-light), var(--z-orange-dark));
    --z-orange-glow: 0 0 24px hsl(33 95% 57% / .18);
    --z-orange-glow-strong: 0 0 32px hsl(33 95% 57% / .38);
    /* Variações de opacidade do MESMO matiz — nomeadas para não repetir
       "hsl(33 95% 57%)" como número mágico em components.css/login.css.
       Se --z-orange mudar num rebrand, só estas linhas acompanham. */
    --z-orange-a12: hsl(33 95% 57% / .12);
    --z-orange-a14: hsl(33 95% 57% / .14);
    --z-orange-a35: hsl(33 95% 57% / .35);
    --z-orange-a50: hsl(33 95% 57% / .5);
    --z-orange-a60: hsl(33 95% 57% / .6);
    /* Fundo do login: mesmo matiz, bem mais escuro — glow atrás das
       partículas, não o laranja de interação. */
    --z-login-glow-1: hsl(33 95% 25% / .35);
    --z-login-glow-2: hsl(20 95% 20% / .25);

    /* ---- Grafite quente (nunca cinza azulado) ---- */
    --z-bg: #121110;
    --z-bg-elevated: #1b1a18;
    --z-bg-elevated-2: #23211f;
    --z-border: #3b3835;
    --z-border-strong: #4d4944;

    /* ---- Texto ---- */
    --z-text: #ecebe9;
    --z-text-secondary: #968f88; /* hsl(30 6% 56%) — mesmo matiz quente dos outros neutros; #828282 (cinza puro) quebrava o padrão e falhava AA contra --z-bg-elevated-2 (4.18:1) */
    --z-text-on-orange: var(--z-bg);

    /* ---- Semânticas (contraste verificado, nunca azul) ---- */
    --z-danger: #e74d3c;
    --z-danger-bg: #321815;
    --z-success: #45b56e;
    --z-success-bg: #162d1e;
    --z-warning: #fbba23;
    --z-warning-bg: #342814;

    /* ---- Tipografia ---- */
    --z-font-sans: 'Quicksand', system-ui, sans-serif;
    --z-font-mono: 'JetBrains Mono', ui-monospace, monospace;
    --z-text-xs: 0.75rem;
    --z-text-sm: 0.8125rem;
    --z-text-base: 0.9375rem;
    --z-text-lg: 1.125rem;
    --z-text-xl: 1.375rem;
    --z-text-2xl: 1.75rem;
    --z-text-3xl: 2.25rem;

    /* ---- Espaço ---- */
    --z-space-1: 0.25rem;
    --z-space-2: 0.5rem;
    --z-space-3: 0.75rem;
    --z-space-4: 1rem;
    --z-space-5: 1.5rem;
    --z-space-6: 2rem;
    --z-space-8: 3rem;
    --z-space-10: 4rem;

    /* ---- Raio (nunca quadrado, nunca pílula fora do lugar certo) ---- */
    --z-radius: 0.75rem;
    --z-radius-sm: 0.5rem;
    --z-radius-lg: 1rem;
    --z-radius-full: 999px;

    /* ---- Elevação ---- */
    --z-shadow-sm: 0 1px 2px hsl(0 0% 0% / .4);
    --z-shadow-md: 0 8px 24px hsl(0 0% 0% / .35);
    --z-shadow-lg: 0 16px 48px hsl(0 0% 0% / .45);

    /* ---- Movimento ----
     * Uma animação em primeiro plano por vez; reduced-motion desliga tudo
     * isto sem apagar as variáveis (os componentes leem `--z-motion-scale`
     * para decidir se animam, ver base.css). */
    --z-duration-fast: 120ms;
    --z-duration-base: 200ms;
    --z-duration-slow: 400ms;
    --z-stagger-step: 40ms;
    --z-ease-out: cubic-bezier(.16, 1, .3, 1);
    --z-ease-spring: cubic-bezier(.34, 1.56, .64, 1);
    --z-motion-scale: 1; /* 0 quando prefers-reduced-motion: reduce — ver base.css */

    /* ---- Camadas ---- */
    --z-index-shell: 10;
    --z-index-panel: 20;
    --z-index-overlay: 100;
    --z-index-toast: 200;
}
