/* ---------------------------------------------------------------------------
   Forge — structural tokens.
   Parent theme only, NEVER overridden by a child. These are the constants the
   design system is built on: the type scale, the spacing rhythm, the container
   width, the motion curves.

   A child theme replaces theme.css (colour + type family) and inherits this
   file untouched, so a re-skin can never accidentally break the spacing scale.
--------------------------------------------------------------------------- */

:root {
    /* Type scale */
    --step--1: clamp(0.82rem, 0.80rem + 0.10vw, 0.88rem);
    --step-0:  clamp(1.00rem, 0.97rem + 0.15vw, 1.09rem);
    --step-1:  clamp(1.20rem, 1.13rem + 0.35vw, 1.42rem);
    --step-2:  clamp(1.50rem, 1.36rem + 0.70vw, 1.99rem);
    --step-3:  clamp(1.90rem, 1.63rem + 1.35vw, 2.80rem);
    --step-4:  clamp(2.45rem, 1.90rem + 2.75vw, 4.40rem);

    /* Spacing — one 4px rhythm, three tiers */
    --gap-1: 0.5rem;
    --gap-2: 1rem;
    --gap-3: 1.5rem;
    --space-component: 2rem;
    --space-section:   clamp(3.5rem, 2.5rem + 4vw, 6.5rem);
    --space-page:      clamp(5rem, 3rem + 8vw, 9rem);

    /* Layout */
    --shell:     76rem;
    --gutter:    1.25rem;
    --radius:    2px;
    --radius-lg: 4px;

    /* Motion */
    --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
    --fast: 160ms;
    --slow: 340ms;
}
