@layer tokens {
	/*
	 * One palette, and it is dark.
	 *
	 * The site carried a light theme too, and on a phone it was unreadable:
	 * every screen here stands on a full-bleed photograph, and a photograph
	 * does not turn pale when the palette does. Light ink on a dark frame
	 * works because the frame is already going that way; dark ink needed the
	 * frame washed towards paper first, and a wash heavy enough to carry the
	 * text buried the photograph underneath it. Two ways to be wrong: a veil
	 * light enough to keep the picture left the words illegible, and one
	 * heavy enough to carry the words left no picture worth showing.
	 *
	 * So there is no toggle and no OS query — nothing to redefine these.
	 */
	:root {
		color-scheme: dark;

		/* Planes */
		--bg: #0a0a09;
		--surface: #131312;
		--surface-2: #1c1c1a;
		--scrim: 0 0% 0%;

		/* Ink */
		--ink: #f6f5f2;
		--ink-2: #a9a79f;
		--ink-3: #74726b;

		/* Lines */
		--line: rgb(255 255 255 / 0.14);
		--line-strong: rgb(255 255 255 / 0.28);

		/* Accent — used sparingly; photographs carry the colour */
		--accent: #d8ac6d;
		--accent-ink: #12110f;

		--focus: #7fb2f0;

		/*
		 * Ink and scrim for anything standing on a photograph. The scrim is an
		 * HSL triplet rather than a colour so every wash on the site can set
		 * its own alpha against it.
		 */
		--over-ink: #ffffff;
		--over-scrim: 0 0% 0%;

		/*
		 * Kept, at zero. Several washes still read it, and a frame that is
		 * already being pushed towards night needs nothing extra on top.
		 */
		--over-veil: 0;

		/* Type */
		--font-display: "Instrument Serif", "Playfair Display", ui-serif, Georgia, "Times New Roman", serif;
		--font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
		--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;

		/* Fluid type scale, 360px → 1600px */
		--step--1: clamp(0.79rem, 0.77rem + 0.11vw, 0.85rem);
		--step-0: clamp(0.94rem, 0.90rem + 0.18vw, 1.05rem);
		--step-1: clamp(1.13rem, 1.06rem + 0.32vw, 1.31rem);
		--step-2: clamp(1.35rem, 1.24rem + 0.52vw, 1.64rem);
		--step-3: clamp(1.62rem, 1.44rem + 0.80vw, 2.05rem);
		--step-4: clamp(1.94rem, 1.67rem + 1.20vw, 2.56rem);
		--step-5: clamp(2.33rem, 1.93rem + 1.76vw, 3.20rem);
		--step-6: clamp(2.80rem, 2.23rem + 2.53vw, 4.00rem);
		--step-7: clamp(3.36rem, 2.55rem + 3.58vw, 5.00rem);

		/* Space scale */
		--space-3xs: 0.25rem;
		--space-2xs: 0.5rem;
		--space-xs: 0.75rem;
		--space-s: 1rem;
		--space-m: 1.5rem;
		--space-l: 2rem;
		--space-xl: 3rem;
		--space-2xl: 4.5rem;
		--space-3xl: 7rem;
		--space-4xl: 10rem;

		/* Measure & rails */
		--measure: 68ch;
		--gutter: clamp(1.25rem, 4vw, 3.5rem);
		--content-max: 78rem;
		--prose-max: 44rem;

		/* Motion */
		--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
		--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
		--dur-fast: 160ms;
		--dur: 320ms;
		--dur-slow: 640ms;

		/* Elevation — restrained; photography sites rarely want shadow */
		--shadow-1: 0 1px 2px rgb(0 0 0 / 0.4), 0 4px 16px rgb(0 0 0 / 0.4);
		--shadow-2: 0 2px 6px rgb(0 0 0 / 0.5), 0 18px 48px rgb(0 0 0 / 0.6);

		--radius: 2px;
		--radius-lg: 6px;

		/* Header height, read by layout and scroll offsets.
		   Sized around the signature mark, which is the tallest thing in it. */
		--header-h: 5.75rem;
	}

}
