/* ==========================================================================
   InfraWeaver — design tokens
   World: cold-boot terminal. Near-black CRT ground, phosphor green, status
   colours that mean something (amber = warning, red = fault, cyan = link).
   ========================================================================== */

@font-face {
  font-family: "Departure Mono";
  src: url("../fonts/departure-mono.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Commit Mono";
  src: url("../fonts/commit-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Commit Mono";
  src: url("../fonts/commit-mono-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ---- ground ---- */
  --bg: #04060a;
  --bg-panel: #070b11;
  --bg-raised: #0b1119;
  --bg-inset: #020407;

  /* ---- rules and edges ---- */
  --rule: #16211d;
  --rule-bright: #22443a;
  --rule-hot: #2e6b53;

  /* ---- phosphor ---- */
  --phos: #29ff9b;
  --phos-mid: #18c076;
  --phos-dim: #0e6d45;
  --phos-ghost: rgba(41, 255, 155, 0.09);

  /* ---- text ---- */
  --txt: #cdf6e2;
  --txt-2: #8bb3a0;
  --txt-3: #6f9080;

  /* ---- status ---- */
  --amber: #ffb545;
  --amber-dim: #7a5416;
  --red: #ff5470;
  --red-dim: #7a2231;
  --cyan: #4fd8ff;
  --cyan-bright: #9be9ff;
  --cyan-dim: #1a5f78;
  --violet: #b98cff;

  /* ---- type ---- */
  --font-display: "Departure Mono", ui-monospace, monospace;
  --font-body: "Commit Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --t-xs: 0.6875rem;
  --t-sm: 0.8125rem;
  --t-base: 0.9375rem;
  --t-md: 1.0625rem;
  --t-lg: clamp(1.25rem, 2.2vw, 1.75rem);
  --t-xl: clamp(1.75rem, 4vw, 3rem);
  --t-2xl: clamp(2.5rem, 8vw, 5.5rem);

  --lh-tight: 1.15;
  --lh-snug: 1.4;
  --lh-body: 1.7;

  /* ---- rhythm ---- */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 144px;

  --gutter: clamp(20px, 5vw, 72px);
  --measure: 68ch;
  --shell: 1320px;

  /* ---- depth: offset + soft blur, never a zero-offset halo ---- */
  --lift-1: 0 2px 6px rgba(0, 0, 0, 0.55);
  --lift-2: 0 10px 34px rgba(0, 0, 0, 0.62);
  --lift-3: 0 24px 70px rgba(0, 0, 0, 0.7);

  /* ---- motion ---- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-crt: cubic-bezier(0.19, 1, 0.22, 1);
  --dur-fast: 140ms;
  --dur-mid: 320ms;
  --dur-slow: 720ms;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 1ms;
    --dur-mid: 1ms;
    --dur-slow: 1ms;
  }
}
