/* fonts served from this site, so no visitor address goes to a font host */
@font-face { font-family: "Instrument Serif"; src: url("fonts/instrument-serif.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Geist"; src: url("fonts/geist.woff2") format("woff2"); font-weight: 400 500; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("fonts/geist-mono-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }

:root {
  color-scheme: dark;
  --space-3xs: 2px; --space-2xs: 4px; --space-xs: 8px; --space-sm: 12px; --space-md: 16px; --space-lg: 24px; --space-xl: 40px; --space-2xl: 64px; --space-3xl: 96px; --space-4xl: 144px;
  --text-xs: 0.8125rem; --text-sm: 0.875rem; --text-md: 1rem; --text-lg: 1.25rem; --text-xl: 1.5625rem; --text-2xl: 1.953rem; --text-3xl: 2.441rem;
  --text-display-s: clamp(2.25rem, 4vw + 0.5rem, 3.75rem); --text-display: clamp(2.75rem, 5vw + 1rem, 5.25rem);
  --text-section: clamp(2rem, 2.5vw + 1rem, 3.5rem); --text-title: clamp(1.25rem, 0.75vw + 0.875rem, 1.625rem); --text-lead: clamp(1.125rem, 0.35vw + 1rem, 1.375rem);
  --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;
  --color-error: oklch(72% 0.15 27); --color-success: oklch(76% 0.13 150);
  --container: 1440px; --gutter: 64px; --gap-columns: 32px; --section-gap-s: 120px; --section-gap: 144px; --section-gap-l: 176px;
  --z-base: 1; --z-raised: 10; --z-dropdown: 100; --z-sticky: 200; --z-sticky-nav: 300; --z-modal: 400; --z-toast: 500; --z-tooltip: 600;
  --rule-blueprint: oklch(96% 0.01 300 / 0.05);
  --color-accent: oklch(80% 0.15 62); --color-accent-2: oklch(72% 0.15 12); --color-accent-text: var(--color-accent);
  --color-live: oklch(80% 0.13 155); --color-focus: oklch(80% 0.15 62);
  /* night: dark blue sky, stars as dots, moonlit snow */
  --color-paper: oklch(14% 0.03 262); --color-paper-2: oklch(18% 0.034 262); --color-paper-3: oklch(22% 0.036 262);
  --color-ink: oklch(96% 0.01 250); --color-ink-2: oklch(85% 0.02 250); --color-muted: oklch(70% 0.03 255);
  --color-rule: oklch(28% 0.035 262); --color-rule-2: oklch(38% 0.04 262);
  --color-accent-ink: oklch(14% 0.03 262);
  --color-accent-hover: oklch(86% 0.13 64);
  --color-flag-blue: oklch(63% 0.13 252); --color-flag-white: oklch(91% 0.012 250); --color-flag-red: oklch(60% 0.165 27);
  --color-flag-green: oklch(65% 0.12 152); --color-flag-yellow: oklch(83% 0.135 92);
  --sky-top: oklch(12% 0.03 265); --sky-low: oklch(24% 0.05 258); --mist: oklch(27% 0.045 255);
  --far: oklch(34% 0.06 250); --far-shade: oklch(26% 0.05 255); --far-snow: oklch(82% 0.04 245); --far-snow-shade: oklch(60% 0.05 250);
  --mid: oklch(22% 0.045 258); --mid-shade: oklch(18% 0.04 260); --mid-snow: oklch(66% 0.04 248);
  --hill: oklch(16.5% 0.038 259); --hill-shade: oklch(14% 0.034 261);
  --near: oklch(11% 0.028 262); --rim: oklch(24% 0.04 260);
  --star: oklch(95% 0.03 90); --cloud: oklch(30% 0.04 258); --cloud-shade: oklch(24% 0.04 260);
  --string: oklch(55% 0.03 255); --pole: oklch(52% 0.045 60); --finial: oklch(80% 0.12 85); --stone: oklch(30% 0.02 255);
  --wind: oklch(90% 0.02 250); --wind-dust: oklch(52% 0.03 255);
  --print: oklch(16% 0.03 262); --flash: oklch(98% 0.02 90);
  --panel: color-mix(in oklab, var(--color-paper) 84%, transparent);
  --font-display: "Instrument Serif", ui-serif, Georgia, serif; --font-body: "Geist", ui-sans-serif, system-ui, sans-serif;
  --font-outlier: "Geist Mono", ui-monospace, monospace;
  --radius-card: 10px; --radius-pill: 999px; --rule-hair: 1px;
  --shadow-card: 0 28px 64px -30px oklch(4% 0.02 290 / 0.8);
  --tracking-display: -0.015em; --display-weight: 400;
}
/* day: pale sky, white snow on blue rock, pixel clouds */
:root[data-theme="light"] {
  color-scheme: light;
  --color-accent-text: oklch(50% 0.15 48);
  --color-paper: oklch(97.5% 0.008 240); --color-paper-2: oklch(94% 0.012 240); --color-paper-3: oklch(90% 0.016 240);
  --color-ink: oklch(22% 0.04 262); --color-ink-2: oklch(36% 0.04 260); --color-muted: oklch(48% 0.035 258);
  --color-rule: oklch(86% 0.02 245); --color-rule-2: oklch(74% 0.03 248);
  --color-accent: oklch(70% 0.16 55); --color-accent-hover: oklch(75% 0.15 58); --color-accent-2: oklch(56% 0.19 18);
  --color-accent-ink: oklch(18% 0.03 262); --color-focus: oklch(55% 0.17 50);
  --sky-top: oklch(70% 0.1 242); --sky-low: oklch(93% 0.03 225); --mist: oklch(94% 0.02 230);
  --far: oklch(72% 0.06 248); --far-shade: oklch(62% 0.07 252); --far-snow: oklch(99% 0.005 240); --far-snow-shade: oklch(86% 0.035 245);
  --mid: oklch(55% 0.08 252); --mid-shade: oklch(47% 0.08 256); --mid-snow: oklch(94% 0.015 240);
  --hill: oklch(43% 0.075 254); --hill-shade: oklch(38% 0.075 257);
  --near: oklch(32% 0.06 258); --rim: oklch(45% 0.07 255);
  --star: oklch(99% 0.01 90); --cloud: oklch(99.5% 0.003 240); --cloud-shade: oklch(88% 0.03 235);
  --string: oklch(30% 0.03 260); --pole: oklch(36% 0.05 55); --finial: oklch(72% 0.13 80); --stone: oklch(58% 0.025 250);
  --wind: oklch(24% 0.05 262); --wind-dust: oklch(58% 0.05 250);
  --print: oklch(20% 0.03 262); --flash: oklch(99% 0.01 90);
  --panel: color-mix(in oklab, var(--color-paper) 88%, transparent);
}
