/*
 * Tokens
 *
 * Every size, space, colour and timing on the rebuilt pages comes from
 * here. To change the look of the whole site, change a value in this file
 * rather than in a page's CSS. Loaded first, before site.css.
 *
 * See REDESIGN-SPEC.md Part 1 for the reasoning behind each scale.
 */

/* ---- Typefaces ------------------------------------------------------ */

@font-face {
  font-family: "PPEditorialOld";
  src: url("../fonts/PPEditorialOld-Ultralight.otf") format("opentype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PPEditorialOld";
  src: url("../fonts/PPEditorialOld-UltralightItalic.otf") format("opentype");
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "PPEditorialOld";
  src: url("../fonts/PPEditorialOld-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "SuisseIntl";
  src: url("../fonts/SuisseIntl-Book.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "SuisseIntl";
  src: url("../fonts/SuisseIntl-Medium.otf") format("opentype");
  font-weight: 500;
  font-display: swap;
}

:root {
  --font-display: "PPEditorialOld", Didot, "Bodoni 72", Georgia, serif;
  --font-text: "SuisseIntl", "Helvetica Neue", Arial, sans-serif;

  /* ---- Type scale: six steps, nothing outside it ---- */
  --step--1: 0.8125rem;                      /* labels, captions, meta */
  --step-0:  1rem;                           /* body */
  --step-1:  1.25rem;                        /* lead paragraph */
  --step-2:  1.75rem;                        /* section heads */
  --step-3:  clamp(2.25rem, 4vw, 3.5rem);    /* card titles, statements */
  --step-4:  clamp(3rem, 8vw, 7rem);         /* case study titles */
  --step-5:  clamp(3.75rem, 14.5vw, 15rem);  /* the wordmark */

  --leading-tight: 1.05;
  --leading-label: 1.2;
  --leading-body: 1.5;
  --tracking-label: 0.08em;

  /* ---- Spacing: 8pt base ---- */
  --sp-1: 8px;
  --sp-2: 16px;
  --sp-3: 24px;
  --sp-4: 32px;
  --sp-5: 48px;
  --sp-6: 64px;
  --sp-7: 96px;
  --sp-8: 128px;
  --sp-9: 192px;

  /* ---- Grid ---- */
  --columns: 12;
  --gutter: var(--sp-3);
  --margin: var(--sp-5);
  --max-width: 1600px;
  --module-gap: var(--sp-8);   /* full: vertical space between modules and sections */
  --module-half: calc(var(--module-gap) / 2);  /* half: where two same-ground blocks meet */
  --nav-height: 5.25rem;

  /* ---- Colour ---- */
  --ground: #1e1e1f;   /* neutral charcoal: homepage, nav, tinted blocks */
  --paper:  #F2F2F1;   /* neutral light grey: work section, case studies */
  --ink:    #141414;   /* text on paper */
  --white:  #ffffff;
  --muted:  #ABABA9;   /* secondary text on ground, 7.2:1 (AAA) */
  --muted-ink: #636361;/* secondary text on paper */
  --rule-light: rgba(255, 255, 255, 0.22);
  --rule-dark: rgba(20, 20, 20, 0.16);

  /* Hover colour. Deliberately a neutral grey, not a brand colour: no
     orange or clay (see "Design guardrail" in CLAUDE.md). */
  --accent: #8C8C89;

  /* Joy colour: a bright orangey magenta (Zoey's pick, 2026-10-15). Only
     for small moments of play (the View cursor,
     Contact hover, Copied). Never a background block, never body text on
     light grounds. Ink on it is about 6:1. */
  --pop: #FF3F6C;

  /* ---- Motion ---- */
  --dur-fast: 200ms;
  --dur-base: 320ms;
  --dur-slow: 480ms;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (max-width: 860px) {
  :root {
    --margin: var(--sp-3);
    --gutter: var(--sp-2);
    --module-gap: var(--sp-6);
    --nav-height: 4.5rem;
  }
}
