/* ===========================================================================
   Ella Carrigan Photography — design tokens
   Earthy filmic palette: cream canvas, deep olive ink, sage panels,
   warm sienna accent. Colours in OKLCH, variants derived with relative syntax.
   =========================================================================== */

:root {
    /* --- Base palette (OKLCH) --- */
    --sage:    oklch(72% 0.022 105);   /* #b2af9b — signature sage/taupe */
    --olive:   oklch(26% 0.045 118);   /* #1e2311 — deep olive ink        */
    --sienna:  oklch(46% 0.085 55);    /* warm brown/sienna accent        */
    --cream:   oklch(95.5% 0.013 92);  /* ivory canvas                    */
    --ink:     oklch(22% 0.02 118);    /* near-black filmic               */

    /* --- Derived surfaces --- */
    --bg-primary:    var(--cream);
    --bg-secondary:  oklch(from var(--sage) calc(l + 0.16) calc(c - 0.004) h); /* pale sage */
    --bg-sage:       var(--sage);
    --bg-dark:       oklch(from var(--olive) calc(l - 0.04) c h);
    --surface-card:  oklch(from var(--cream) calc(l - 0.02) c h);

    /* --- Text --- */
    --text-primary:   var(--olive);
    --text-secondary: oklch(from var(--olive) calc(l + 0.22) calc(c - 0.01) h);
    --text-muted:     oklch(from var(--olive) calc(l + 0.34) calc(c - 0.02) h);
    --text-on-dark:   var(--cream);
    --text-on-dark-muted: oklch(from var(--cream) calc(l - 0.18) c h);

    /* --- Accent --- */
    --color-primary:        var(--sienna);
    --color-primary-hover:  oklch(from var(--sienna) calc(l - 0.06) calc(c + 0.02) h);
    --color-primary-soft:   oklch(from var(--sienna) calc(l + 0.30) calc(c - 0.03) h);

    /* --- Semantic (forms / flash) --- */
    --color-success: oklch(58% 0.10 145);
    --color-error:   oklch(52% 0.16 28);
    --color-warning: oklch(70% 0.12 75);
    --color-info:    oklch(60% 0.07 230);

    /* --- Borders / lines --- */
    --border-color:    oklch(from var(--olive) calc(l + 0.50) calc(c - 0.02) h / 0.35);
    --border-strong:   oklch(from var(--olive) calc(l + 0.30) c h / 0.55);
    --hairline:        oklch(from var(--olive) calc(l + 0.55) c h / 0.25);
    --border-radius:    2px;
    --border-radius-lg: 4px;

    /* --- Typography --- */
    --font-display: "Fraunces", Georgia, "Times New Roman", serif;
    --font-sans:    "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-mono:    ui-monospace, "Cascadia Code", monospace;

    --fs-xs:   0.78rem;
    --fs-sm:   0.9rem;
    --fs-base: 1.0625rem;
    --fs-lg:   1.25rem;
    --fs-xl:   1.6rem;
    --fs-2xl:  2.2rem;
    --fs-3xl:  clamp(2.6rem, 6vw, 4.2rem);
    --fs-4xl:  clamp(2.2rem, 10.5vw, 8rem);

    --tracking-wide:  0.18em;
    --tracking-wider: 0.32em;

    /* --- Spacing --- */
    --space-xs:  0.25rem;
    --space-sm:  0.5rem;
    --space-md:  1rem;
    --space-lg:  1.5rem;
    --space-xl:  2.5rem;
    --space-2xl: 4rem;
    --space-3xl: 7rem;

    /* --- Shadows --- */
    --shadow-sm:  0 1px 3px oklch(from var(--olive) l c h / 0.12);
    --shadow-md:  0 12px 30px -12px oklch(from var(--olive) l c h / 0.35);
    --shadow-lg:  0 30px 60px -20px oklch(from var(--olive) l c h / 0.45);

    /* --- Layout --- */
    --container-max: 1180px;
    --container-wide: 1440px;
    --header-height: 76px;
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
}
