@font-face {
    font-family: "Tilt Neon";
    src: url("../fonts/tilt-neon-latin-regular.woff2")
        format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

:root {
    color-scheme: dark;

    /* Identidad visual basada en el logo. */
    --brand-black: #080808;
    --brand-white: #ffffff;
    --brand-red: #d71920;
    --brand-red-bright: #f1252c;
    --brand-red-dark: #9f1016;

    /* Superficies y texto. */
    --color-background: var(--brand-black);
    --color-surface: #111111;
    --color-surface-raised: #191919;
    --color-surface-soft: #222222;
    --color-text: var(--brand-white);
    --color-text-soft: #e5e5e5;
    --color-text-muted: #b7b7b7;
    --color-accent: var(--brand-red);
    --color-accent-hover: var(--brand-red-bright);
    --color-accent-active: var(--brand-red-dark);
    --color-border: #303030;
    --color-border-strong: #505050;
    --color-focus: var(--brand-white);
    --color-overlay: rgb(0 0 0 / 76%);
    --color-success: #45c76f;
    --color-error: var(--brand-red-bright);

    /* Tipografía. */
    --font-body: Inter, Arial, Helvetica, sans-serif;
--font-display: "Tilt Neon", "Arial Narrow", Arial, sans-serif;
    --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --font-weight-regular: 400;
    --font-weight-medium: 600;
    --font-weight-bold: 800;
    --font-weight-display: 400;
    --line-height-tight: 1.05;
    --line-height-heading: 1.15;
    --line-height-body: 1.65;
    --letter-spacing-tight: -0.025em;
    --letter-spacing-wide: 0.08em;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: clamp(1.5rem, 5vw, 2rem);
    --text-3xl: clamp(2rem, 7vw, 3.25rem);
    --text-display: clamp(2.75rem, 11vw, 6.5rem);

    /* Escala de espacios mobile-first. */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --section-space: clamp(4rem, 12vw, 8rem);
    --gutter: clamp(1rem, 5vw, 2rem);

    /* Medidas y contenedores. */
    --container-wide: 90rem;
    --container-main: 75rem;
    --container-reading: 48rem;
    --header-height: 5.5rem;
    --touch-target: 2.75rem;
    --content-min-height: 60vh;

    /* Bordes y profundidad. */
    --border-width: 1px;
    --border-accent-width: 3px;
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --radius-lg: 0.875rem;
    --radius-pill: 999px;
    --shadow-sm: 0 0.25rem 1rem rgb(0 0 0 / 24%);
    --shadow-lg: 0 1.5rem 4rem rgb(0 0 0 / 48%);
    --shadow-red: 0 0 2rem rgb(215 25 32 / 24%);

    /* Movimiento y capas. */
    --transition-fast: 160ms ease;
    --transition-base: 260ms ease;
    --transition-slow: 480ms ease;
    --z-base: 1;
    --z-header: 100;
    --z-floating: 200;
    --z-overlay: 300;
    --z-modal: 400;

    /* Áreas seguras para teléfonos con notch. */
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
}
