/* Hallmark · genre: atmospheric · macrostructure: Photographic · theme: custom
 * vibe: "screening room, tungsten, red tally light"
 * paper: oklch(13% 0.008 40) · accent: oklch(66% 0.19 29) · display: Bricolage Grotesque · body: Geist
 * axes: dark / display-condensed / warm
 */
:root {
  /* colour */
  --color-paper:   oklch(13% 0.008 40);
  --color-paper-2: oklch(17% 0.010 40);
  --color-paper-3: oklch(21% 0.010 40);
  --color-rule:    oklch(32% 0.010 40);
  --color-edge:    oklch(52% 0.010 45);
  --color-neutral: oklch(64% 0.010 50);
  --color-muted:   oklch(80% 0.008 60);
  --color-ink:     oklch(95% 0.006 80);
  --color-accent:  oklch(66% 0.19 29);
  --color-focus:   oklch(78% 0.14 55);
  --color-scrim:      oklch(13% 0.008 40 / 0.92);
  --color-scrim-soft: oklch(13% 0.008 40 / 0.6);
  --color-clear:      oklch(13% 0.008 40 / 0);

  /* type */
  --font-display: "Bricolage Grotesque", "Arial Narrow", sans-serif;
  --font-body:    "Geist", ui-sans-serif, sans-serif;

  --text-sm:      0.875rem;
  --text-base:    1.0625rem;
  --text-md:      clamp(1.125rem, 0.6vw + 1rem, 1.375rem);
  --text-xl:      clamp(1.75rem, 2.5vw + 1rem, 2.75rem);
  --text-display: clamp(2.75rem, 5vw + 1rem, 5.5rem);

  /* space (4pt) */
  --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;
  --gutter:    clamp(1rem, 4vw, 4rem);
  --space-section: clamp(var(--space-2xl), 12vw, var(--space-4xl));

  /* 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;
  --dur-scene: 1100ms; /* hero fade up from black */
  --dur-push:  1800ms; /* slow push-in as a reel comes into view */
  --dur-focus: 700ms;  /* rack focus on the same reel */

  /* layers */
  --z-base:   1;
  --z-raised: 10;
  --z-sticky: 200;
  --z-grain:  300;

  --radius-dot: 50%;

  /* static film grain, desaturated fractal noise */
  --texture-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
