/* Hallmark · macrostructure: Map / Diagram · tone: technical, field-survey · anchor hue: survey orange (42°) */
/* Theme: custom · vibe: "topographic survey sheet, field instrument" · paper light cool / dark slate
 * display: Archivo (width axis 62-125) · mono: IBM Plex Mono · axes: light+dark / grotesk-sans / warm
 * Shape rule: controls are full-pill, surfaces are --radius-surface, nothing else is rounded. */

@font-face {
  font-family: "Archivo";
  src: url("assets/fonts/archivo-100-900.woff2") format("woff2");
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("assets/fonts/ibm-plex-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("assets/fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}

:root {
  --font-display: "Archivo", "Arial Narrow", system-ui, sans-serif;
  --font-body: "Archivo", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1.0625rem;
  --text-lg: 1.25rem;
  --text-xl: 1.625rem;
  --text-2xl: clamp(1.75rem, 3.2vw, 2.5rem);
  --text-display: clamp(2.375rem, 4.4vw, 4rem);

  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 72px;
  --space-4xl: 112px;

  --radius-surface: 14px;
  --radius-pill: 999px;
  --rule-hair: 1px;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in: cubic-bezier(0.55, 0, 1, 0.45);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 140ms;
  --dur-base: 240ms;
  --dur-slow: 520ms;

  --color-paper: oklch(96.6% 0.005 230);
  --color-paper-2: oklch(93.2% 0.007 230);
  --color-ink: oklch(23% 0.02 250);
  --color-ink-2: oklch(43% 0.018 250);
  --color-rule: oklch(85% 0.008 240);
  --color-contour: oklch(72% 0.018 230);
  --color-contour-strong: oklch(58% 0.022 235);
  --color-accent: oklch(64% 0.19 42);
  --color-accent-ink: oklch(51% 0.17 40);
  --color-on-accent: oklch(19% 0.03 40);
  --color-off: oklch(80% 0.01 240);
  --color-glass: oklch(98% 0.004 230 / 0.62);
  --color-glass-edge: oklch(100% 0 0 / 0.75);
  --color-lens: oklch(98% 0.004 230 / 0.16);
  --color-glass-shade: oklch(40% 0.03 250 / 0.14);
  --color-focus: oklch(51% 0.17 40);
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-paper: oklch(19% 0.012 245);
    --color-paper-2: oklch(23% 0.014 245);
    --color-ink: oklch(94% 0.006 230);
    --color-ink-2: oklch(75% 0.014 235);
    --color-rule: oklch(33% 0.015 245);
    --color-contour: oklch(40% 0.022 235);
    --color-contour-strong: oklch(55% 0.03 235);
    --color-accent: oklch(72% 0.17 48);
    --color-accent-ink: oklch(76% 0.15 50);
    --color-on-accent: oklch(19% 0.03 40);
    --color-off: oklch(36% 0.015 245);
    --color-glass: oklch(26% 0.014 245 / 0.58);
    --color-glass-edge: oklch(100% 0 0 / 0.16);
    --color-lens: oklch(32% 0.014 245 / 0.2);
    --color-glass-shade: oklch(5% 0.01 250 / 0.45);
    --color-focus: oklch(76% 0.15 50);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --color-paper: oklch(19% 0.012 245);
  --color-paper-2: oklch(23% 0.014 245);
  --color-ink: oklch(94% 0.006 230);
  --color-ink-2: oklch(75% 0.014 235);
  --color-rule: oklch(33% 0.015 245);
  --color-contour: oklch(40% 0.022 235);
  --color-contour-strong: oklch(55% 0.03 235);
  --color-accent: oklch(72% 0.17 48);
  --color-accent-ink: oklch(76% 0.15 50);
  --color-on-accent: oklch(19% 0.03 40);
  --color-off: oklch(36% 0.015 245);
  --color-glass: oklch(26% 0.014 245 / 0.58);
  --color-glass-edge: oklch(100% 0 0 / 0.16);
  --color-lens: oklch(32% 0.014 245 / 0.2);
  --color-glass-shade: oklch(5% 0.01 250 / 0.45);
  --color-focus: oklch(76% 0.15 50);
  color-scheme: dark;
}
