/* Parketti Appel — design tokens
 * Hallmark · theme: custom (tuned) · vibe: "northern daylight, oiled wood, precise"
 * axes: light / roman-serif / warm
 *
 * The thesis: the room is cool, the floor is warm. Paper, ink and rules are tinted
 * toward Nordic daylight (hue ~250–258); the only warmth on the page is the amber
 * accent and the photographs themselves. Nothing competes with the wood.
 */

:root {
  color-scheme: light dark;

  /* ---- Type ------------------------------------------------------------ */
  --font-display: "Newsreader", ui-serif, Georgia, "Times New Roman", serif;
  --font-body: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
  /* Outlier. One role only: annotation — photo captions and spec figures. */
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --weight-display: 700;
  --weight-body: 400;
  --weight-label: 500;

  /* 1.25 major third, 16px base */
  --text-xs: 0.64rem;
  --text-sm: 0.8rem;
  --text-base: 1rem;
  --text-md: 1.25rem;
  --text-lg: 1.5625rem;
  --text-xl: 1.9531rem;
  --text-2xl: 2.4414rem;
  --text-3xl: 3.0518rem;
  --text-display-s: clamp(1.95rem, 2.6vw + 1rem, 3.05rem);
  --text-display: clamp(2.44rem, 4.2vw + 1rem, 4.75rem);

  --measure: 62ch;
  --measure-narrow: 46ch;

  /* ---- Space ----------------------------------------------------------- */
  --space-3xs: 0.125rem;
  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;

  --page-gutter: clamp(1.25rem, 5vw, 4.5rem);

  /* ---- Rules & radius -------------------------------------------------- */
  --rule-hair: 1px;
  --rule-thick: 2px;
  --radius-none: 0;
  --radius-xs: 2px;

  /* ---- Motion ---------------------------------------------------------- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long: 420ms;

  /* ---- Depth ----------------------------------------------------------- */
  --z-base: 1;
  --z-raised: 10;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;

  /* ---- Colour · daylight ---------------------------------------------- */
  --color-paper: oklch(96.5% 0.006 250);
  --color-paper-2: oklch(93.5% 0.008 250);
  --color-paper-3: oklch(89.5% 0.009 250);
  --color-ink: oklch(20% 0.014 258);
  --color-ink-2: oklch(43% 0.012 258);
  --color-muted: oklch(46% 0.011 255);
  --color-neutral: oklch(38% 0.011 255);
  --color-rule: oklch(80% 0.009 250);
  --color-rule-2: oklch(87.5% 0.007 250);

  --color-accent: oklch(48% 0.145 52);
  --color-accent-ink: oklch(97% 0.008 60);
  --color-accent-soft: oklch(93% 0.038 62);
  --color-focus: oklch(46% 0.170 50);

  --shadow-whisper: 0 1px 2px oklch(20% 0.014 258 / 0.06);
}

/* ---- Colour · winter (dark) ------------------------------------------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-paper: oklch(15% 0.012 258);
    --color-paper-2: oklch(19% 0.013 258);
    --color-paper-3: oklch(23.5% 0.014 258);
    --color-ink: oklch(93% 0.008 250);
    --color-ink-2: oklch(72% 0.010 252);
    --color-muted: oklch(64% 0.011 255);
    --color-neutral: oklch(55% 0.011 255);
    --color-rule: oklch(31% 0.012 255);
    --color-rule-2: oklch(25% 0.011 255);

    --color-accent: oklch(74% 0.128 58);
    --color-accent-ink: oklch(17% 0.030 50);
    --color-accent-soft: oklch(24% 0.040 55);
    --color-focus: oklch(78% 0.165 55);

    --shadow-whisper: 0 1px 2px oklch(8% 0.01 258 / 0.5);
  }
}

:root[data-theme="dark"] {
  --color-paper: oklch(15% 0.012 258);
  --color-paper-2: oklch(19% 0.013 258);
  --color-paper-3: oklch(23.5% 0.014 258);
  --color-ink: oklch(93% 0.008 250);
  --color-ink-2: oklch(72% 0.010 252);
  --color-muted: oklch(64% 0.011 255);
  --color-neutral: oklch(55% 0.011 255);
  --color-rule: oklch(31% 0.012 255);
  --color-rule-2: oklch(25% 0.011 255);

  --color-accent: oklch(74% 0.128 58);
  --color-accent-ink: oklch(17% 0.030 50);
  --color-accent-soft: oklch(24% 0.040 55);
  --color-focus: oklch(78% 0.165 55);

  --shadow-whisper: 0 1px 2px oklch(8% 0.01 258 / 0.5);
}
