/* ══════════════════════════════════════════════════════════════════════════════════════════════
   design.css — the Argo instrument token layer (design pass 02, WO DP2).

   Source of truth: program/design/design-pass-02/"Argo Site.dc.html", Turns 02 + 03.
   The canvas's own law, quoted: "Every artboard is self-contained: system type stack, no runtime
   fonts or CDNs." That is not a style preference here — it is what lets us drop
   fonts.googleapis.com / fonts.gstatic.com out of the CSP entirely, and it is why every value
   below is a literal from the canvas rather than a re-interpretation of it.

   Nothing in this file is page-specific. Pages import it once
   (`<link rel="stylesheet" href="/design.css">`) and then carry only their own layout CSS.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

:root {
  /* ── ground ──────────────────────────────────────────────────────────────────────────────── */
  --bg:          #07080c;   /* the page itself */
  --bg-chrome:   #07080f;   /* header bands, star fields, the strip behind the wheel */
  --surface:     #0a0b11;   /* a panel on the page */
  --surface-2:   #0b0d14;   /* a card inside a panel (the reading, the composer) */
  --surface-3:   #090b12;   /* a footer bar inside a card */
  --rail:        #080910;   /* the right-hand rail on the dashboard */

  /* ── ink ─────────────────────────────────────────────────────────────────────────────────── */
  --ink:         #ece9e3;   /* headings, the wordmark */
  --ink-body:    #d5d7dc;   /* long-form reading body */
  --ink-2:       #cfd2d8;   /* secondary body */
  --ink-3:       #b9bcc4;   /* tertiary body, quiet chips */
  --dim:         #8e94a1;   /* labels */
  --faint:       #7d838f;   /* meta, captions */
  --ghost:       #5d636f;   /* placeholders in fields */
  --deep:        #4c525e;   /* separators in a mono run */

  /* ── brass — the one accent ──────────────────────────────────────────────────────────────── */
  --brass:       #d8b26a;
  --brass-lit:   #e6c07f;   /* hovered / active text on brass */
  --brass-hi:    #f4e6c8;   /* the hovered body in the wheel */
  --brass-warm:  #f0d9a6;   /* a hovered house label */
  --brass-60:    rgba(216, 178, 106, 0.6);
  --brass-55:    rgba(216, 178, 106, 0.55);
  --brass-40:    rgba(216, 178, 106, 0.4);
  --brass-32:    rgba(216, 178, 106, 0.32);
  --brass-30:    rgba(216, 178, 106, 0.3);
  --brass-12:    rgba(216, 178, 106, 0.12);
  --brass-10:    rgba(216, 178, 106, 0.1);
  --brass-05:    rgba(216, 178, 106, 0.05);
  --brass-04:    rgba(216, 178, 106, 0.04);

  /* ── cool — the second voice: an offer, never a warning ──────────────────────────────────── */
  /* Used for the birth-time invitation and the standing directive. The canvas is explicit
     (artboard 1f): "No warning colour, no missing-data icon… so it reads as 'more', not 'wrong'." */
  --cool:        #8cb0c8;
  --cool-lit:    #a8c6da;
  --cool-50:     rgba(140, 176, 200, 0.5);
  --cool-35:     rgba(140, 176, 200, 0.35);
  --cool-30:     rgba(140, 176, 200, 0.3);
  --cool-05:     rgba(140, 176, 200, 0.05);

  /* ── rules ───────────────────────────────────────────────────────────────────────────────── */
  --line:        rgba(236, 233, 227, 0.10);  /* a panel border */
  --line-2:      rgba(236, 233, 227, 0.07);  /* a band inside a panel */
  --line-3:      rgba(236, 233, 227, 0.05);  /* a row separator in a list */
  --line-field:  rgba(236, 233, 227, 0.22);  /* the underline of an input */
  --line-chip:   rgba(236, 233, 227, 0.16);  /* an inactive chip */

  /* ── type ────────────────────────────────────────────────────────────────────────────────── */
  --serif: 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif;
  --mono:  ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --sans:  -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

  /* ── geometry ────────────────────────────────────────────────────────────────────────────── */
  --r-btn:   6px;
  --r-card:  12px;
  --r-card2: 14px;
  --r-chip:  20px;
  --r-frame: 24px;

  --shadow-pop: 0 18px 44px rgba(0, 0, 0, 0.55);
}

/* ══ reset ═══════════════════════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: var(--brass); text-decoration: none; }
a:hover { color: #eccf96; }

::selection { background: var(--brass); color: #0a0b11; }

/* ══ the shared vocabulary ═══════════════════════════════════════════════════════════════════
   Nine classes carry nearly every surface in the canvas. Anything a page needs beyond these is
   page-local layout, and lives in that page's own <style>.                                     */

/* — labels: the small uppercase mono line that names a block — */
.k {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dim);
}
.k-brass { color: var(--brass); }

/* — meta: the quiet mono run (positions, timestamps, counts) — */
.m {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--faint);
}

/* — display type — */
.d1 { font-family: var(--serif); font-size: 56px;   line-height: 1.2;  letter-spacing: -0.015em; }
.d2 { font-family: var(--serif); font-size: 38px;   line-height: 1.14; }
.d3 { font-family: var(--serif); font-size: 26px;   line-height: 1.25; }
.d4 { font-family: var(--serif); font-size: 20px;   line-height: 1.3; }

/* — panels — */
.panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  overflow: hidden;
}
.card {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-card2);
}

/* — buttons — */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  border-radius: var(--r-btn);
  padding: 14px 26px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 0.18s, border-color 0.18s, color 0.18s, opacity 0.18s;
  text-align: center;
}
.btn-primary { background: var(--brass); color: #0a0b11; border-color: var(--brass); }
.btn-primary:hover:not(:disabled) { background: var(--brass-lit); border-color: var(--brass-lit); color: #0a0b11; }
.btn-outline { background: transparent; color: var(--brass); border-color: var(--brass); }
.btn-outline:hover:not(:disabled) { background: var(--brass-10); color: var(--brass-lit); }
.btn-quiet { background: transparent; color: var(--ink-3); border-color: var(--line-chip); font-weight: 400; }
.btn-quiet:hover:not(:disabled) { border-color: var(--brass-40); color: var(--ink); }
.btn-cool { background: transparent; color: var(--cool-lit); border-color: var(--cool-50); }
.btn-cool:hover:not(:disabled) { background: var(--cool-05); }
.btn:disabled { opacity: 0.45; cursor: default; }

/* — chips — */
.chip {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  border: 1px solid var(--line-chip);
  border-radius: var(--r-chip);
  padding: 8px 15px;
  color: var(--ink-3);
  background: transparent;
  cursor: pointer;
  transition: border-color 0.18s, background-color 0.18s, color 0.18s;
}
.chip:hover { border-color: var(--brass-60); }
.chip[aria-pressed="true"] { background: var(--brass); border-color: var(--brass); color: #0a0b11; }

/* — fields: an underline, not a box (canvas 2a) — */
.field { display: flex; flex-direction: column; gap: 7px; }
/* Descendant, not child: a field may wrap its label with a hint beside it ("skip if unknown"),
   and the label must keep its voice either way. */
.field label,
.field .field-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--dim);
}
.field input,
.field select {
  appearance: none;
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line-field);
  border-radius: 0;
  padding: 0 0 9px;
  font-family: var(--sans);
  font-size: 17px;
  color: var(--ink);
  transition: border-color 0.18s;
}
.field input::placeholder { color: var(--ghost); }
.field input:focus,
.field select:focus { outline: none; border-bottom-color: var(--brass); }
.field input[type="date"],
.field input[type="time"] { color-scheme: dark; }

/* — a hairline rule between blocks — */
.rule { border: 0; border-top: 1px solid var(--line-2); margin: 0; }

/* — the star field. One gradient list, reused; the canvas paints it inline on every hero. — */
.stars {
  background-color: var(--bg-chrome);
  background-image:
    radial-gradient(1.6px 1.6px at 6% 18%,  rgba(255,255,255,.50), transparent),
    radial-gradient(1px   1px   at 14% 62%, rgba(255,255,255,.32), transparent),
    radial-gradient(1.2px 1.2px at 22% 30%, rgba(255,255,255,.40), transparent),
    radial-gradient(1px   1px   at 31% 78%, rgba(255,255,255,.28), transparent),
    radial-gradient(1.4px 1.4px at 40% 12%, rgba(255,255,255,.45), transparent),
    radial-gradient(1px   1px   at 48% 88%, rgba(255,255,255,.30), transparent),
    radial-gradient(1.1px 1.1px at 57% 40%, rgba(255,255,255,.24), transparent),
    radial-gradient(1.7px 1.7px at 66% 22%, rgba(255,255,255,.50), transparent),
    radial-gradient(1px   1px   at 74% 70%, rgba(255,255,255,.30), transparent),
    radial-gradient(1.3px 1.3px at 82% 34%, rgba(216,178,106,.40), transparent),
    radial-gradient(1px   1px   at 90% 58%, rgba(255,255,255,.34), transparent),
    radial-gradient(1.2px 1.2px at 96% 16%, rgba(255,255,255,.40), transparent),
    radial-gradient(1px   1px   at 10% 44%, rgba(255,255,255,.22), transparent),
    radial-gradient(1px   1px   at 36% 56%, rgba(216,178,106,.30), transparent),
    radial-gradient(1.5px 1.5px at 62% 82%, rgba(255,255,255,.36), transparent),
    radial-gradient(1px   1px   at 88% 88%, rgba(255,255,255,.26), transparent),
    radial-gradient(1px   1px   at 52% 24%, rgba(255,255,255,.28), transparent),
    radial-gradient(1.2px 1.2px at 70% 50%, rgba(255,255,255,.30), transparent);
}

/* — the wordmark, as the canvas sets it: serif, wide-tracked, letter-spacing compensated — */
.wordmark {
  font-family: var(--serif);
  font-size: 15px;
  letter-spacing: 0.38em;
  text-indent: 0.38em;
  color: var(--ink);
}

/* — the site header band (canvas 2a/3a) — */
.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  padding: 14px 40px;
  background: var(--bg-chrome);
  border-bottom: 1px solid var(--line-2);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: var(--faint);
}

/* — the design-note rail used for annotations we keep in the product (none by default) — */
.hidden { display: none !important; }

/* — accessibility: never remove the ring, only restyle it — */
:focus-visible { outline: 2px solid var(--brass-60); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

@media (max-width: 760px) {
  .d1 { font-size: 38px; line-height: 1.22; }
  .d2 { font-size: 30px; }
  .topbar { padding: 12px 18px; font-size: 9.5px; }
}
