/* Rod Riggs — the holding page. GENERATED by tools/build-holding.mjs from data/site.json.
   Colour comes from that file's `palette`; nothing here is hand-edited. */

:root {
  --hd-ink: #1d2b31;
  --hd-ground: #f6f2e8;
  --hd-deep: #20404c;
  --hd-accent: #c2763a;
  --hd-rule: #cbbb98;
  --hd-display: "Fraunces", Georgia, "Times New Roman", serif;
  --hd-body: "Inter", -apple-system, system-ui, sans-serif;
}

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

/* The engine's blocks.css sets body{padding:2rem}, which is right for a demo gallery and wrong for
   a site — it draws a border round the whole page and costs 4rem of a phone screen. Zero it. */
body { margin: 0; padding: 0; background: var(--hd-ground); color: var(--hd-ink);
  font-family: var(--hd-body); line-height: 1.6; }

.qx-container.hd-page { display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 100vh; min-height: 100svh; gap: 1.1rem; text-align: center;
  width: min(44rem, 100% - 2.4rem); margin-inline: auto; padding-block: 3rem; }

.qx-html-content.hd-mark { display: block; line-height: 0; }
.hd-mark-svg { display: block; width: clamp(78px, 16vw, 104px); height: auto; }

.hd-name { font-family: var(--hd-display); font-weight: 700; line-height: 1.05;
  font-size: clamp(2.3rem, 9vw, 4rem); letter-spacing: -.01em; margin: 0; }
.hd-strap { margin: 0; max-width: 38ch; text-wrap: balance; font-size: clamp(1rem, 2.6vw, 1.18rem); color: var(--hd-deep); }

.qx-html-content.hd-rule-host { display: block; line-height: 0; }
.hd-rule { width: 4.5rem; height: 2px; background: var(--hd-rule); border-radius: 2px; }

.hd-line { margin: 0; font-size: .95rem; color: var(--hd-deep); opacity: .85; }
.qx-link.hd-contact { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.3rem;
  border-radius: 999px; background: var(--hd-deep); color: var(--hd-ground); text-decoration: none;
  font-weight: 600; font-size: .95rem; }
@media (hover: hover) { .qx-link.hd-contact:hover { background: var(--hd-accent); } }
.hd-owner { margin: 0; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--hd-rule); }

/* ── THE CATALOGUE GRID ─────────────────────────────────────────────────────────────────────────
   A DATA PROOF, not a shop: the cards show what each record contains, gaps included. */
.rr-band { padding-block: clamp(1.6rem, 4vw, 2.6rem); }
.rr-band-dark { background: var(--hd-deep); color: var(--hd-ground); }
.rr-wrap { width: min(1180px, 100% - 2.4rem); margin-inline: auto; display: flex; flex-direction: column; gap: .9rem; }
.rr-h { font-family: var(--hd-display); font-size: clamp(1.8rem, 5vw, 2.8rem); margin: 0; }
.rr-lead { margin: 0; max-width: 70ch; color: var(--hd-deep); }
.rr-kicker { font-size: .68rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--hd-rule); }

.qx-container.rr-stats { display: grid; gap: .7rem;
  grid-template-columns: repeat(auto-fit, minmax(min(8rem, 100%), 1fr)); }
.qx-container.rr-stat { display: flex; flex-direction: column; gap: .1rem; padding: .7rem .8rem;
  border-radius: 10px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); }
.rr-stat-v { font-family: var(--hd-display); font-size: 1.4rem; font-weight: 700; line-height: 1.1; }
.rr-stat-k { font-size: .64rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }

/* The note is loud on purpose: a missing feature that looks like an empty result is a bug report. */
.rr-note { margin: 0; padding: .75rem .9rem; border-radius: 10px; max-width: 78ch;
  background: var(--hd-ground); border: 1px solid var(--hd-accent);
  font-size: .85rem; color: var(--hd-ink); }

.qx-container.rr-facet { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .4rem; }
.rr-facet-label { flex: 0 0 7rem; font-size: .68rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--hd-deep); }
.qx-link.rr-chip { display: inline-flex; align-items: center; min-height: 34px; padding: 0 .7rem;
  border-radius: 999px; background: var(--hd-ground); border: 1px solid var(--hd-rule);
  color: var(--hd-ink); text-decoration: none; font-size: .8rem; }
@media (hover: hover) { .qx-link.rr-chip:hover { border-color: var(--hd-accent); color: var(--hd-accent); } }

.rr-count { margin: 0; font-size: .85rem; color: var(--hd-deep); font-variant-numeric: tabular-nums; }
.qx-container.rr-grid { display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); }
.qx-container.rr-card { display: flex; flex-direction: column; gap: .2rem; padding: .85rem;
  border-radius: 12px; background: var(--hd-ground); border: 1px solid var(--hd-rule); }
.rr-card-brand { font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--hd-accent); }
.rr-card-title { font-family: var(--hd-display); font-size: .95rem; font-weight: 700; line-height: 1.3; }
.rr-card-cat { font-size: .76rem; color: var(--hd-deep); }
.rr-card-meta { font-size: .72rem; color: var(--hd-deep); opacity: .8; font-variant-numeric: tabular-nums; }
.rr-card-ref { font-size: .64rem; color: var(--hd-rule); word-break: break-all; }
