/* Geist + Geist Mono (SIL OFL), self-hosted from Google Fonts — latin + latin-ext only (EN/SK); no extra font CSS request */

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url('../../fonts/geist/geist-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url('../../fonts/geist/geist-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: 'Geist Mono';
    font-style: normal;
    font-weight: 300 500;
    font-display: swap;
    src: url('../../fonts/geist/geist-mono-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Geist Mono';
    font-style: normal;
    font-weight: 300 500;
    font-display: swap;
    src: url('../../fonts/geist/geist-mono-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;
}

/* Design tokens — Modulabs (BYQ Supply), Locopro variant with Signal Yellow. Source of truth: /DESIGN.md (§3–§8) */
:root {
    /* colors */
    --color-lifted-onyx: #121212;
    --color-stone-depth: #e6e0da;
    --color-signal-yellow: #f4d41b;
    --color-lifted-paper: #fcfaf6;
    --color-warning-rust: #c56a21;
    --color-alert-crimson: #c94040;
    --color-graphite-void: #0a0a0b;
    --color-verdant-pulse: #2ad87f;
    --color-depth-charcoal: #212122;
    --color-parchment-cream: #f6f3ec;
    --color-softened-parchment: #f6f3ece0;
    --color-text-medium: #f6f3eca3; /* 64% cream — secondary copy on dark */
    --color-hairline: #f6f3ec29;    /* 16% cream — 1px borders on dark */

    /* font families */
    --font-geist-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --font-geist-sans: "Geist", Arial, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

    /* type scale */
    --text-label-small: 10px;
    --leading-label-small: 1.2;
    --tracking-label-small: 0.75px;
    --text-caption: 12px;
    --leading-caption: 1.33;
    --tracking-caption: 0.75px;
    --text-body-sm: 14px;
    --leading-body-sm: 1.43;
    --text-body: 16px;
    --leading-body: 1.5;
    --text-body-lg: 20px;
    --leading-body-lg: 1.4;
    --text-heading-sm: 24px;
    --leading-heading-sm: 1.17;
    --text-heading: 32px;
    --leading-heading: 1.125;
    --tracking-heading: -0.5px;
    --text-heading-lg: 40px;
    --leading-heading-lg: 1;
    --tracking-heading-lg: -1px;
    --text-display-sm: 48px;
    --leading-display-sm: 1;
    --tracking-display-sm: -2px;
    --text-display: 64px;
    --leading-display: 0.94;
    --tracking-display: -2.5px;
    --text-display-xl: 96px;
    --leading-display-xl: 0.83;
    --tracking-display-xl: -2.5px;

    /* weights */
    --font-weight-regular: 400;
    --font-weight-medium: 500;

    /* spacing (4px rhythm) */
    --spacing-4: 4px;
    --spacing-8: 8px;
    --spacing-12: 12px;
    --spacing-16: 16px;
    --spacing-20: 20px;
    --spacing-24: 24px;
    --spacing-32: 32px;
    --spacing-48: 48px;
    --spacing-64: 64px;
    --spacing-80: 80px;
    --spacing-120: 120px;

    /* layout */
    --page-max-width: 1800px;
    --section-gap: 120px;
    --card-padding: 32px;
    --element-gap: 24px;

    /* radius */
    --radius-pill: 9999px;
    --radius-default: 8px;
    --radius-large: 16px;

    /* shadows */
    --shadow-inset-rim-light: 0 -1px 0 0 rgba(246, 243, 236, 0.16), 0 1px 0 0 rgba(246, 243, 236, 0.08);

    /* motion */
    --duration-color-fast: 150ms;
    --duration-ui-default: 300ms;
    --duration-background-soft: 650ms;
    --easing-background-soft: ease;
    --ease-out: cubic-bezier(0.33, 1, 0.68, 1);        /* default for movement: hovers, reveals, parallax */
    --ease-out-strong: cubic-bezier(0.2, 0.8, 0.2, 1); /* entrances: words, machines, cards */
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);     /* things that draw or wipe: lines, clip-paths */

    /* breakpoints (reference only — custom properties cannot be used inside @media):
       1190 small desktop · 991 tablet · 767 phone · 600 small phone · (pointer: coarse) touch */
}

/* text for screen readers and search engines only */
.lp-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* sticky columns sit below the sticky navigation bar (72px when stuck, css/design/nav.css) plus 48px of air */
:root {
    --lp-sticky-top: calc(72px + var(--spacing-48));
}
