@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..700&family=Hanken+Grotesk:ital,wght@0,300..800;1,300..700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

:root {
	--green-950: #07261c;
	--green-900: #0b3d2e;
	--green-800: #0f4a38;
	--green-700: #145a32;
	--green-600: #195d46;
	--green-500: #237a52;
	--green-400: #3e9a6e;
	--green-300: #7bbe9c;
	--green-200: #b9dcc9;
	--green-100: #e3f0e8;
	--green-50: #f1f7f3;

	--gold-800: #8a6320;
	--gold-700: #a87a2e;
	--gold-600: #c89646;
	--gold-500: #d4a659;
	--gold-400: #e0bc7e;
	--gold-300: #ebd2a4;
	--gold-200: #f3e5c8;
	--gold-100: #f9f1df;

	--cream-300: #e6e1ce;
	--cream-200: #efebdd;
	--cream-100: #f5f2e8;
	--cream-50: #faf8f1;

	--ink: #10231a;
	--gray-900: #141815;
	--gray-800: #262b27;
	--gray-700: #3a403b;
	--gray-600: #515852;
	--gray-500: #6e756f;
	--gray-400: #9ca39e;
	--gray-300: #cbd0cc;
	--gray-200: #e2e5e1;
	--gray-100: #eff1ee;
	--gray-50: #f7f8f6;
	--white: #ffffff;

	--success-600: #1e7a4d;
	--success-100: #e1f1e8;
	--warning-600: #c8861e;
	--warning-100: #fbefd6;
	--danger-600: #c0392b;
	--danger-100: #f8e3e0;
	--info-600: #2f6db0;
	--info-100: #e2ecf7;

	--brand: var(--green-700);
	--brand-strong: var(--green-900);
	--brand-deep: var(--green-950);
	--accent: var(--gold-600);
	--accent-strong: var(--gold-700);

	--text-strong: var(--ink);
	--text-body: var(--gray-700);
	--text-muted: var(--gray-500);
	--text-subtle: var(--gray-400);
	--text-on-brand: var(--cream-100);
	--text-on-accent: var(--green-950);
	--text-link: var(--green-700);

	--surface-canvas: var(--cream-100);
	--surface-card: var(--white);
	--surface-sunken: var(--gray-50);
	--surface-brand: var(--green-900);
	--surface-brand-soft: var(--green-50);
	--surface-accent-soft: var(--gold-100);

	--border: var(--gray-200);
	--border-strong: var(--gray-300);
	--border-brand: var(--green-200);
	--hairline: rgba(16, 35, 26, 0.08);
	--rule-gold: var(--gold-500);
	--ring: color-mix(in srgb, var(--green-700) 45%, transparent);
	--ring-accent: color-mix(in srgb, var(--gold-600) 55%, transparent);

	--font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
	--font-sans: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

	--text-2xs: 11px;
	--text-xs: 12px;
	--text-sm: 13px;
	--text-base: 15px;
	--text-md: 17px;
	--text-lg: 20px;
	--text-xl: 24px;
	--text-2xl: 30px;
	--text-3xl: 38px;
	--text-4xl: 48px;

	--weight-regular: 400;
	--weight-medium: 500;
	--weight-semibold: 600;
	--weight-bold: 700;
	--leading-tight: 1.08;
	--leading-snug: 1.25;
	--leading-normal: 1.5;
	--leading-relaxed: 1.65;
	--tracking-normal: 0;
	--tracking-wide: 0.04em;
	--tracking-wider: 0.12em;

	--space-0: 0;
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 20px;
	--space-6: 24px;
	--space-8: 32px;
	--space-10: 40px;
	--space-12: 48px;
	--space-16: 64px;
	--space-20: 80px;

	--radius-xs: 4px;
	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-lg: 14px;
	--radius-xl: 20px;
	--radius-2xl: 28px;
	--radius-pill: 999px;
	--radius-card: var(--radius-lg);

	--container-sm: 640px;
	--container-md: 840px;
	--container-lg: 1100px;
	--container-xl: 1320px;

	--shadow-xs: 0 1px 2px rgba(16, 35, 26, 0.06);
	--shadow-sm: 0 1px 2px rgba(16, 35, 26, 0.06), 0 2px 6px rgba(16, 35, 26, 0.05);
	--shadow-md: 0 2px 4px rgba(16, 35, 26, 0.05), 0 6px 16px rgba(16, 35, 26, 0.08);
	--shadow-lg: 0 4px 8px rgba(16, 35, 26, 0.05), 0 16px 36px rgba(16, 35, 26, 0.10);
	--shadow-xl: 0 8px 16px rgba(16, 35, 26, 0.06), 0 28px 60px rgba(16, 35, 26, 0.14);
	--shadow-focus: 0 0 0 3px var(--ring);
	--shadow-focus-accent: 0 0 0 3px var(--ring-accent);

	--ease-standard: cubic-bezier(0.2, 0.6, 0.2, 1);
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--duration-fast: 120ms;
	--duration-base: 200ms;
	--duration-slow: 360ms;

	--dot-texture: radial-gradient(rgba(20, 90, 50, 0.05) 1.2px, transparent 1.4px);
	--dot-texture-size: 18px 18px;
}
