/*
 * NYCEats tokens — the single source of color, type and structure for the theme.
 * Mirrors the prototype's src/styles.css 1:1 (docs/DESIGN-SYSTEM.md).
 *
 * Narrow palette on purpose: paper, ink, one tomato signal, one neutral.
 * Tomato means SOMETHING IS HAPPENING. Never decoration, never a gradient.
 */

:root {
	/* paper / ink */
	--nyce-paper: oklch(0.968 0.008 85);
	--nyce-paper-2: oklch(0.935 0.011 84);
	--nyce-ink: oklch(0.155 0.008 60);

	/* the signal */
	--nyce-tomato: oklch(0.645 0.183 45); /* NYCEats signal orange — PAY ATTENTION */
	--nyce-tomato-fg: oklch(0.155 0.008 60);

	/* neutrals + hairlines */
	--nyce-muted: oklch(0.475 0.009 68);
	--nyce-rule: oklch(0.815 0.011 82);
	--nyce-rule-ink: color-mix(in oklab, var(--nyce-paper) 26%, transparent);

	/* type registers */
	--nyce-font-display: "Instrument Serif", ui-serif, Georgia, serif;
	--nyce-font-ui: "Work Sans", ui-sans-serif, system-ui, sans-serif;
	--nyce-font-signal: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

	/* scale */
	--nyce-hero: clamp(3.6rem, 11vw, 7.6rem);
	--nyce-plate: clamp(2.4rem, 6vw, 4.6rem);
	--nyce-name: clamp(2rem, 4.4vw, 3.4rem);
	--nyce-verdict: clamp(1.25rem, 2vw, 2rem);

	/* rhythm */
	--nyce-gutter: clamp(1.25rem, 4vw, 4rem);
	--nyce-section: clamp(4.5rem, 9vw, 8rem);
	--nyce-measure: 68ch;

	/* square by default — radius is an exception, not a style */
	--nyce-radius: 0px;
}

/* Type register utilities — the theme's only typographic vocabulary. */
.display {
	font-family: var(--nyce-font-display);
	font-weight: 400;
	letter-spacing: -0.015em;
}

.headline {
	font-family: var(--nyce-font-display);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: -0.02em;
	line-height: 0.86;
}

.eyebrow {
	font-family: var(--nyce-font-ui);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nyce-muted);
}

.label-tag {
	font-family: var(--nyce-font-ui);
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.signal {
	font-family: var(--nyce-font-signal);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.signal-sm {
	font-family: var(--nyce-font-signal);
	font-size: 0.5625rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Structure */
.rule-t { border-top: 1px solid var(--nyce-rule); }
.rule-b { border-bottom: 1px solid var(--nyce-rule); }
.plate-t { border-top: 2px solid var(--nyce-ink); }

/* Interface register — Work Sans, tight, uppercase. Section plates, hero, board
   names. The editorial serif (.display) is reserved for restaurant names and
   verdicts, so the site reads intelligent rather than editorial-everywhere. */
.plate {
	font-family: var(--nyce-font-ui);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: -0.015em;
	line-height: 0.92;
}

/* Field-note annotation — a hand in the margin. */
.annot {
	font-family: var(--nyce-font-signal);
	font-size: 0.6875rem;
	letter-spacing: 0.02em;
	line-height: 1.5;
	text-transform: none;
	color: var(--nyce-muted);
}

/* Dispatch numeral. */
.num {
	font-family: var(--nyce-font-signal);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.18em;
}
