/* generated by tools/build-tokens.mjs from tokens/tokens.json; do not edit by hand (npm run tokens) */
/* The house tokens, portable: copy this file into a surface that is not this pack (the DSH face,
   the Ergon surface, the landing page) and use the custom properties. It carries the elevation
   token, which the pack's own compiled stylesheet does not (A20 keeps that one flat). */
:root {
  --c-base: #171717; /* background */
  --c-panel: #202020; /* panel surface */
  --c-line: #323232; /* rule */
  --c-seam: #181818; /* edge */
  --c-slab: #262626; /* floor */
  --c-slab-repaired: #303030; /* repaired floor slab */
  --c-floor-seam: #414141; /* floor seam */
  --c-wall-seam: #3B3B3B; /* wall seam */
  --c-apron: #393939; /* pad apron */
  --c-text-1: #DDDDDD; /* primary text */
  --c-text-2: #A4A4A4; /* secondary text and absence */
  --c-text-2-contrast: #CFCFCF; /* secondary text under prefers-contrast: more */
  --c-info-bar: #525252; /* info alert */
  --c-pad-live: #343434; /* real-money pad */
  --c-pad-shadow: #5C5C5C; /* shadow pad */
  --c-pad-manual: #535353; /* manual pad */
  --c-amber: #98763E; /* alive, or guard warn */
  --c-stale-light: #8A8A8A; /* stale (hatch light stripe) */
  --c-stale-dark: #3E3E3E; /* stale or dead (hatch dark stripe; whole dead body) */
  --c-red: #8E473A; /* crit, breach, fault, dark, outage, dead rule */
  --c-crit-text: #D59D97; /* crit word */
  --c-mustard: #9E8E3E; /* LIVE */
  --c-shadow-chip: #5B6C7E; /* SHADOW */
  --c-synthetic: #8A7A3A; /* SYNTHETIC or PREVIEW */
  --c-pulse: #AFAFAF; /* reduced-motion event flip */
  --c-sentinel-t0: #66717E; /* Sentinel top faces */
  --c-sentinel-t1: #545E69; /* Sentinel side faces */
  --c-sentinel-t2: #444C56; /* Sentinel front, back and underside faces */
  --c-sentry-t0: #7C776F; /* Parked Sentry top faces */
  --c-sentry-t1: #67635B; /* Parked Sentry side faces */
  --c-sentry-t2: #54504A; /* Parked Sentry front, back and underside faces */
  --c-assembler-t0: #8C5E3E; /* Assembler top faces */
  --c-assembler-t1: #74502F; /* Assembler side faces */
  --c-assembler-t2: #604027; /* Assembler front, back and underside faces */
  --c-orbiter-t0: #6A6E76; /* Orbiter top faces */
  --c-orbiter-t1: #5A5E66; /* Orbiter side faces; open slot plates */
  --c-orbiter-t2: #4A4E55; /* Orbiter front, back and underside faces; closed slot plates */
  --c-brute-t0: #5E6168; /* Pedestal Brute top faces */
  --c-brute-t1: #4F5258; /* Pedestal Brute side faces */
  --c-brute-t2: #42454B; /* Pedestal Brute front, back and underside faces */
  --c-brute-plates-t0: #6A5B4C; /* Brute olive-brown plates, top faces */
  --c-brute-plates-t1: #594C40; /* Brute olive-brown plates, side faces */
  --c-brute-plates-t2: #4A4036; /* Brute olive-brown plates, front, back and underside faces */
  --c-walker-t0: #666A4F; /* Low Walker top faces */
  --c-walker-t1: #555841; /* Low Walker side faces */
  --c-walker-t2: #454835; /* Low Walker front, back and underside faces */
  --c-focus: var(--c-text-1);
  --c-focus-pad-edge: var(--c-text-1);
  --c-hollow: var(--c-text-2);
  --c-no-data-outline: var(--c-text-2);
  --c-lock-bar: var(--c-text-2);
  --c-chip-manual: var(--c-text-2);
  --c-chip-live: var(--c-mustard);
  --c-chip-live-chain: var(--c-mustard);
  --c-chip-live-text: var(--c-base);
  --c-alert-crit: var(--c-red);
  --c-alert-warn: var(--c-amber);
  --c-alert-info: var(--c-info-bar);
  --c-glyph-alive: var(--c-amber);
  --c-glyph-dead: var(--c-red);
  --c-glyph-recorded: var(--c-text-2);
  --c-glyph-no-data: var(--c-text-2);
  --c-dead-body: var(--c-stale-dark);
  --c-wall-repaired: var(--c-slab);
  --c-eye-off: var(--c-seam);
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --font-sans: "Geist", "Geist Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fs-chip: 12px;
  --fs-small: 13px;
  --fs-label: 13px;
  --fs-meta: 14px;
  --fs-stat-compact: 24px;
  --fs-stat: 30px;
  --fw-regular: 500;
  --fw-label: 600;
  --fw-strong: 700;
  --lh: 1.35;
  --ls-label: 0.06em;
  --fs-min: 13px;
  --chip-h: 20px;
  --sp-unit: 4px;
  --sp-card-padding-y: 12px;
  --sp-card-padding-x: 12px;
  --sp-gap: 8px;
  --sp-gutter: 16px;
  --sp-header: 48px;
  --sp-row-min: 44px;
  --sp-target: 44px;
  --sp-focus-ring: 2px;
  --sp-focus-offset: 2px;
  --sp-border: 1px;
  --sp-border-contrast: 2px;
  --sp-alert-bar: 6px;
  --sp-mode-mark: 6px;
  --sp-guard-tile: 6px;
  --sp-state-glyph: 10px;
  --sp-glyph: 48px;
  --sp-hatch-band: 8px;
  --sp-dead-rule: 2px;
  --radius-base: 10px;
  --radius-control: 8px;
  --plate-front-min-width: 180px;
  --plate-shelf-min-width: 160px;
  --plate-shelf-pitch: 172px;
  --plate-shelf-max: 8;
  --plate-phone-width: 358px;
  --plate-body-cap: 6;
  --plate-stage-min: 240px;
  --plate-stage-vh: 44vh;
  --plate-stage-max: 520px;
  --plate-stage-front-row-top-max: 500px;
  --plate-stage-alerts-budget: 212px;
  --bp-phone-max: 759px; /* information only: custom properties cannot drive media queries */
  --bp-compact: 760px; /* information only: custom properties cannot drive media queries */
  --bp-desktop: 1264px; /* information only: custom properties cannot drive media queries */
  --m-pose: 400ms;
  --m-gesture: 600ms;
  --m-gesture-hold: 120ms;
  --m-step: 40ms;
  --m-tick: 1000ms;
  --m-freeze-after: 30000ms;
  --m-stream-retry: 3000ms;
  --m-import-idle-timeout: 500ms;
  --m-build-slice: 16ms;
  --m-build-slice-timeout: 100ms;
  --m-build-budget: 60ms;
  --m-reduced-motion: 0ms;
  --m-min-gesture-units: 0.2;
  --m-min-gesture-deg: 15;
  --m-min-posture-head-deg: 25;
  --m-min-posture-limb-deg: 15;
  --m-value: 280ms;
  --m-panel: 220ms;
  --m-morph: 180ms;
  --m-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --m-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --shadow-float: 0 6px 24px rgba(0, 0, 0, 0.45); /* floating layers only */
  --z-stage: 0;
  --z-plates: 1;
  --z-header: 2;
  --z-alerts: 3;
  --z-skip-link: 4;
}
@media (prefers-contrast: more) {
  :root { --c-text-2: var(--c-text-2-contrast); --sp-border: var(--sp-border-contrast); }
}
@media (prefers-reduced-motion: reduce) {
  :root { --m-pose: 0ms; --m-gesture: 0ms; --m-gesture-hold: 0ms; --m-value: 0ms; --m-panel: 0ms; --m-morph: 0ms; }
}
