/* =====================================================================
   Fidelio design tokens — monochrome, Archivo.
   @pff-kirby-core candidate: this token layer migrates to the shared
   package. Site-local values here are Fidelio's monochrome interpretation;
   other sites override the same custom properties.
   ===================================================================== */

:root {
    /* --- Monochrome palette ----------------------------------------- */
    --pff-color-bg:          #ffffff;
    --pff-color-surface:     #ffffff;
    --pff-color-fg:          #0a0a0a;
    --pff-color-fg-muted:    #6b6b6b;
    --pff-color-line:        #e6e6e6;
    --pff-color-inverse:     #ffffff;
    --pff-color-overlay:     rgba(10, 10, 10, 0.42);
    --pff-color-overlay-soft:rgba(10, 10, 10, 0.18);

    /* --- Type -------------------------------------------------------- */
    --pff-font-sans:    "Archivo", "Helvetica Neue", Arial, system-ui, sans-serif;
    --pff-font-display: "Archivo", "Helvetica Neue", Arial, system-ui, sans-serif;

    /* Modular scale (1.250 — major third) */
    --pff-step--1: 0.8125rem;              /* 13 */
    --pff-step-0:  1rem;                   /* 16 */
    --pff-step-1:  1.25rem;                /* 20 */
    --pff-step-2:  clamp(1.5rem, 2.2vw, 1.75rem);
    --pff-step-3:  clamp(2rem, 3.6vw, 2.75rem);
    --pff-step-4:  clamp(2.75rem, 6.5vw, 5rem);

    --pff-leading-tight: 1.05;
    --pff-leading-body:  1.6;

    /* --- Spacing & layout ------------------------------------------- */
    --pff-gutter:        clamp(1rem, 4vw, 3rem);
    --pff-container-max: 1440px;
    --pff-grid-max:      1320px;
    --pff-header-h:      4.5rem;

    /* --- Tracking --------------------------------------------------- */
    --pff-tracking-wide: 0.18em;
    --pff-tracking-mid:  0.08em;

    /* --- Motion ----------------------------------------------------- */
    --pff-ease: cubic-bezier(.2, .6, .2, 1);
    --pff-dur:  .35s;

    /* Shared motion grammar (T-MOT-2), Fidelio character «Editorial Cut»:
       crisp cuts, short travel, nothing lingers. Same token names as the
       core contract so the reveal layer reads one grammar portfolio-wide. */
    --pff-motion-duration-fast: 150ms;
    --pff-motion-duration-base: 300ms;
    --pff-motion-duration-slow: 500ms;
    --pff-motion-ease-out: cubic-bezier(0.2, 0, 0, 1);
    --pff-motion-rise: 12px;
    --pff-motion-reveal-range: 25%;

    /* --- Shape ------------------------------------------------------ */
    --pff-radius: 0;            /* campaign = sharp corners */

    /* --- Breakpoints (informational; used in media queries) -------- */
    --pff-bp-nav: 960px;
}
