/* ═══════════════════════════════════════════════════════════════════════════
   pilot.css — THE TRUTH PASS, 2026-09-13.

   Her ruling after the product audit: stop building, make the interface express
   exactly what the system can genuinely do. Nothing below is deleted. Every
   surface hidden here is hidden because the implementation behind it cannot
   support what it shows, and each one is one line away from returning when it
   can.

   WHAT IS HIDDEN, AND THE REASON IN EACH CASE

   1. The eight-function radar (#sig-fns and its fold).
      Without a calibration on this device the eight values are the constant
      vector [92,80,58,44,36,30,25,20] shrunk toward 50 by a confidence factor
      (js/02-viz-signature.js scoresFor). The repo's own VAL-002 records
      dominant-function top-1 at 48.9% under PERFECT consistency and a
      full-stack Spearman rho of -0.508. A radar cannot show that honestly.

   2. The exposure field and the seven decision domains (.yo-obj, .yo-doms).
      js/03-state-views.js bsExposureField derives all seven values from the
      lead function alone through a five-value ladder (0.94/0.68/0.22/0.34/0.48).
      Two operators of the same type receive an identical figure, permanently.

   3. The blind-spot library and bias surfaces keyed to type.
      Same mechanism: a lookup, rendered in the grammar of a measurement.

   4. The eye and blink channel (Inputs).
      js/04-sensing.js reads an 80x60 canvas at 2fps. A human blink lasts
      100-400ms, so blink rate cannot be observed at that sampling rate, and
      "face presence" is a luminance-variance test. The channel stays in the
      code; it stops making claims on screen.

   WHAT REMAINS VISIBLE is the loop the audit found defensible:
   read, intercept, decide, commit, veto, record, outcome, calibration.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1 · the eight functions ─────────────────────────────────────────────── */
#view-signature #sig-fns,
#view-signature .yo-cont,
#view-signature details:has(#sig-fns){ display:none !important; }

/* ── 2 · the exposure field and the seven domains ────────────────────────── */
#view-signature .yo-obj,
#view-signature #yo-field,
#view-signature #yo-doms,
#view-signature .yo-evidence{ display:none !important; }
/* the room keeps its words and its one bend, one half each; only the field and
   the seven domains go. The two halves stand either way (2026-09-14). */
#view-signature .yo-btm{ display:none !important; }

/* ── 3 · type-keyed bias surfaces ────────────────────────────────────────── */
#view-brief .tb, #view-brief .tdb-wrap .tb,
#view-deep .dr-bends, #view-deep .dr-poly{ display:none !important; }

/* ── 4 · the eye channel's claims ────────────────────────────────────────── */
#view-sensors .sn-row[data-ch="visual"]{ display:none !important; }

/* ── the provenance stamp, used wherever a value is not a measurement ────── */
.prov{ display:inline-flex; align-items:center; gap:7px; min-height:24px;
  padding:3px 10px; border:1px solid var(--hair); border-radius:999px;
  font:400 12px/1.3 var(--f-body); color:rgb(var(--ink3)); white-space:nowrap; }
.prov::before{ content:""; width:5px; height:5px; border-radius:50%;
  background:rgb(var(--ink3)); flex:0 0 auto; }
.prov--measured{ color:rgb(var(--ink2)); border-color:rgba(127,211,255,.30); }
.prov--measured::before{ background:#7FD3FF; }
.prov--template::before{ background:none; box-shadow:inset 0 0 0 1px rgb(var(--ink3)); }
.prov--none{ opacity:.8; }
.prov-line{ display:block; margin:10px 0 0; font:400 13px/1.5 var(--f-body); color:rgb(var(--ink3)); }

/* ── RECORD, THE LEARNING CENTRE (js/48-record-learning.js) ───────────────── */
#view-record .rl{ max-width:var(--room-max,1180px); margin:34px auto 0; padding:26px 0 0;
  border-top:1px solid var(--hair); text-align:left; }
#view-record .rl__l{ display:block; margin:0 0 12px; }
#view-record .rl__h{ font-family:var(--f-disp); font-weight:500; font-size:clamp(22px,1.9vw,28px);
  line-height:1.1; letter-spacing:-.022em; color:rgb(var(--ink)); margin:0; text-wrap:balance; }
#view-record .rl__p{ font:400 16px/1.6 var(--f-body); color:rgb(var(--ink2)); margin:12px 0 0; max-width:52ch; }
#view-record .rl-g, #rc-all .rl-g{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; margin:22px 0 0; }
#view-record .rl-c, #rc-all .rl-c{ min-width:0; padding-left:24px; border-left:1px solid var(--hair); }
#view-record .rl-c:first-child, #rc-all .rl-c:first-child{ padding-left:0; border-left:0; }
#view-record .rl-c__l, #rc-all .rl-c__l{ font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); margin:0; }
#view-record .rl-c__v, #rc-all .rl-c__v{ font-family:var(--f-disp); font-weight:500; font-size:clamp(26px,2.2vw,34px);
  line-height:1.05; letter-spacing:-.022em; color:rgb(var(--ink)); margin:6px 0 0; }
#view-record .rl-c__s, #rc-all .rl-c__s{ font:400 13.5px/1.45 var(--f-body); color:rgb(var(--ink3)); margin:6px 0 0; }
#view-record .rl-rows, #rc-all .rl-rows{ margin:24px 0 0; }
#view-record .rl-row, #rc-all .rl-row{ display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  min-height:44px; padding:10px 0; border-top:1px solid var(--hair); }
#view-record .rl-row__l, #rc-all .rl-row__l{ font:400 14.5px/1.5 var(--f-body); color:rgb(var(--ink3)); }
#view-record .rl-row__v, #rc-all .rl-row__v{ font:400 14.5px/1.5 var(--f-body); color:rgb(var(--ink)); text-align:right;
  font-variant-numeric:tabular-nums; }
#view-record .rl__fine, #rc-all .rl__fine{ font:400 13.5px/1.6 var(--f-body); color:rgb(var(--ink3)); margin:22px 0 0; max-width:62ch; }
#view-record .rl__fine em, #rc-all .rl__fine em{ font-family:var(--f-em); font-style:italic; font-size:1.08em; color:rgb(var(--ink2)); }
@media (max-width:767px){
  #view-record .rl-g, #rc-all .rl-g{ grid-template-columns:minmax(0,1fr); row-gap:20px; }
  #view-record .rl-c, #rc-all .rl-c{ padding-left:0; border-left:0; }
}

/* ── ONBOARDING: the one promise, stated as the loop ──────────────────────── */
#ob-loop{ list-style:none; margin:0 0 22px; padding:0; text-align:left; counter-reset:obl; }
#ob-loop li{ position:relative; padding:10px 0 10px 26px; border-top:1px solid var(--hair);
  font:400 13px/1.5 var(--f-body); color:rgb(var(--ink2)); counter-increment:obl; }
#ob-loop li::before{ content:counter(obl); position:absolute; left:0; top:10px;
  font:400 12px/1.5 var(--f-body); color:rgb(var(--ink3)); }
#ob-loop li b{ color:rgb(var(--ink)); font-weight:500; }

/* the Record stage fills the room, so the learning panel needs air under it and the
   room needs to admit that it scrolls */
#view-record{ overflow-y:auto !important; }
#view-record .rl{ margin:0 auto 30px; padding:0 0 28px; border-top:0; border-bottom:1px solid var(--hair); }

/* ── THE RECORD, SIDE BY SIDE (her 09-14 ruling) ───────────────────────────
   The orbit of cards is the visual anchor of the room; the reading stands next
   to it, not above it. One row: the reading left, the moving cards right. ── */
#view-record .rc-split{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,0.95fr);
  align-items:start; gap:0 44px; width:100%; box-sizing:border-box; padding-right:28px; }
/* the reading starts level with the card and grows downward (2026-09-26): centred, it
   re-centred every time a row arrived and left the top right empty */
#view-record .rc-split > .rl{ margin:0; padding:88px 0 0; border-bottom:0; max-width:none; align-self:start; }
#view-record .rc-split > #rc-host{ min-width:0; padding:0 44px; box-sizing:border-box;
  overflow:hidden;                       /* the orbit stays inside its own column */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%); }
#view-record .rc-split .rl__h{ font-size:clamp(20px,1.6vw,26px); }
#view-record .rc-split .rl-row{ min-height:40px; padding:8px 0; }
#view-record .rc-split .rl__fine{ max-width:46ch; }
/* THE CARDS ARE GLASS AGAIN (2026-09-26, her "more transparent so we could see the flying
   things"). The front sheet's foot was 78 to 92% solid; it is a light veil now, enough that
   the pad's rings do not cut the status line, thin enough that the fragments show through. */
#view-record .rc-sheet.is-cur::after{ background:linear-gradient(180deg,transparent 58%,rgba(0,31,63,.28) 82%,rgba(0,31,63,.42)); }
/* the reading rises a beat after the ring, on the ring's own curve (js/23 rc-rise) */
#view-record .rc-split > .rl.rl-rise{ animation:rc-rise .6s .18s cubic-bezier(.2,.8,.2,1) both; }
@media (prefers-reduced-motion:reduce){ #view-record .rc-split > .rl.rl-rise{ animation:none; } }
@media (max-width:1100px){
  #view-record .rc-split{ grid-template-columns:minmax(0,1fr); gap:28px 0; padding-right:0; }
  #view-record .rc-split > .rl{ padding-top:24px; border-top:1px solid var(--hair); }
}

/* ── ONBOARDING AT PHONE WIDTH (market pass 2026-09-13) ────────────────────
   Two defects measured at 390px, both from desktop assumptions:
   1. #ob-arbit-grid is four columns. After the gate and card padding that
      leaves cells of about 69px for eight irreversible choices. Two columns
      at phone width; the cells then clear the 44px floor with room to spare.
   2. #wc-card carries 34px of side padding with !important and has no small
      override, so the intro cards ran a 290px text column at 390px. ── */
@media (max-width:640px){
  #ob-arbit-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  #welcome #wc-card{ padding:28px 20px 24px !important; }
  #welcome #wc-title{ font-size:clamp(22px,6vw,28px) !important; }
}

/* ── B + D: THE FACE BESIDE THE RING, THE LIST BEHIND ITS DOOR (2026-09-30) ──
   js/48 + js/84. One sentence and two rows follow the sheet in front; they change
   with the constitution's quiet crossfade (§10: opacity only, --dur-1 out,
   --dur-2 in, never on reduced motion). The door that stood under the ring stands
   under the rows, in the column's left edge. The sheet carries every row in the
   same row design, grouped by the check ledger's own quiet heads. */
#view-record .rl-face{ opacity:1; transition:opacity var(--dur-2,320ms) cubic-bezier(.2,.8,.2,1); }
#view-record .rl-face.is-out{ opacity:0; transition-duration:var(--dur-1,180ms); }
@media (prefers-reduced-motion:reduce){ #view-record .rl-face{ transition:none; } }
#view-record .rl .rc-door{ margin:30px 0 0; padding-top:0; border-top:0; max-width:none; text-align:left; }
/* THE DOOR IS THE COLUMN'S ONE PILL (her 2026-09-30, "so people know it is there"): the
   Intercept's own primary pill, verbatim (.int-actions .int-primary > .int-action-btn) */
#view-record .rl .rc-door__btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:0 26px; min-width:200px; min-height:52px; border-radius:999px; white-space:nowrap;
  font:600 16px/1 var(--f-body); letter-spacing:0; text-transform:none; cursor:pointer; color:rgb(var(--ink));
  border:1px solid rgba(190,235,255,.35);
  background:linear-gradient(115deg,rgba(10,122,205,.62),rgba(0,191,255,.42) 50%,rgba(0,63,92,.62));
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 14px 36px -14px rgba(47,123,255,.8);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s,background .3s; }
#view-record .rl .rc-door__btn:hover{ color:rgb(var(--ink)); transform:translateY(-2px); border-color:rgba(220,244,255,.6); box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 18px 44px -14px rgba(47,123,255,1); }
#view-record .rl .rc-door__btn:active{ transform:translateY(0) scale(.985); }
#view-record .rl .rc-door__btn:focus-visible{ outline:2px solid var(--ice2); outline-offset:3px; border-radius:999px; }
@media (prefers-reduced-motion:reduce){ #view-record .rl .rc-door__btn{ transition:none; } #view-record .rl .rc-door__btn:hover{ transform:none; } }
@media (max-width:760px){ #view-record .rl .rc-door__btn{ -webkit-backdrop-filter:none; backdrop-filter:none; width:100%; } }

/* ── THE GROUP UNDER THE RING (her 2026-09-30, "better contained ... well spaced") ──
   One column centred on the ring, the same width for both units, hairlines and the
   constitution's small scale (6 · 18 · 30) only. Unit one: the ask, its answer pill, the
   quiet exit. Unit two, under its own hairline: the arrows level with the count, the two
   quiet actions on one row, the last calls under them. js/23's markup is unchanged; the
   middle of the foot lends its children to the grid (display:contents). */
#view-record #rc-host .rc-act{ max-width:480px; margin:0 auto; padding:18px 0 0; box-sizing:border-box; }
#view-record #rc-host .rc-act .rc-ans{ margin-top:18px; }
#view-record #rc-host .rc-act .rc-act__quiet{ margin-top:6px; }
#view-record #rc-host .rc-foot{ display:grid; grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) 44px;
  column-gap:12px; row-gap:0; align-items:center; justify-items:center;
  width:100%; max-width:480px; margin:6px auto 0; padding:18px 0 0; box-sizing:border-box;
  border-top:1px solid var(--hair); }
#view-record #rc-host .rc-act:empty + .rc-foot, #view-record #rc-host .rc-empty + .rc-foot{ margin-top:18px; }
/* beside the reading the first unit keeps one height whichever sheet is in front, so the
   count and its arrows do not rise and fall as the ring turns, and the one-screen fit
   (js/48) is measured once against a group that does not change size under it */
@media (min-width:1101px){ #view-record .rc-split #rc-host .rc-act:not(:empty){ min-height:156px; } }
/* the fit already keeps 12px off the floor; the room's own 24px under it was the scroll */
@media (min-width:1101px){ #view-record:has(.rc-split){ padding-bottom:0 !important; } }
#view-record #rc-host .rc-foot__mid{ display:contents; }
#view-record #rc-host #rc-prev{ grid-column:1; grid-row:1; }
#view-record #rc-host #rc-next{ grid-column:4; grid-row:1; }
#view-record #rc-host .rc-count{ grid-column:2 / 4; grid-row:1; }
#view-record #rc-host #rc-add{ grid-column:1 / 3; grid-row:2; justify-self:end; }
#view-record #rc-host #rc-brief{ grid-column:3 / 5; grid-row:2; justify-self:start; }
#view-record #rc-host .rc-foot__mid:not(:has(#rc-brief)) #rc-add{ grid-column:1 / 5; justify-self:center; }
#view-record #rc-host #rc-past{ grid-column:1 / 5; grid-row:3; }
#view-record #rc-host .rc-foot .rc-q{ white-space:nowrap; }
@media (max-width:767px){
  /* the ring's column keeps 44px each side for its sheets; the group under it takes that
     back, so the answer pill stands whole instead of running into the ring's side fade */
  #view-record .rc-split #rc-host .rc-act, #view-record .rc-split #rc-host .rc-foot{ margin-left:-44px; margin-right:-44px; width:auto; max-width:none; }
  #view-record #rc-host .rc-foot{ column-gap:6px; }
  #view-record #rc-host .rc-count{ font-size:18px; }
}
#rc-all{ width:100%; max-width:640px; margin:34px auto 0; box-sizing:border-box; }
#rc-all .rl-grp + .rl-grp{ margin-top:34px; }
#rc-all .rl-grp .ck-head{ text-align:center; }
#rc-all .rl-rows{ margin:0; }
#rc-all .rl-row:first-child{ border-top:0; }
#rc-all .rl-more{ margin:18px 0 0; text-align:center; }
#rc-all .rl-more .rl-rows{ text-align:left; }
#rc-all .rl__fine{ margin:26px auto 0; text-align:center; }
@media (max-width:640px){ #rc-all{ margin-top:26px; padding:0 16px; } }

/* founder 2026-09-30, "no lines please": the Record reads on space alone. No rule over the
   answer group, none over the count row, none between evidence rows or columns, on the
   face or in the full list. Rows keep their 44px rhythm, so the spacing still separates. */
#view-record #rc-host .rc-act, #view-record .rc-act,
#view-record #rc-host .rc-foot,
#view-record .rl-row, #rc-all .rl-row{ border-top:0 !important; }
#view-record .rl-c, #rc-all .rl-c{ border-left:0 !important; }
#view-record #rc-host .rc-foot{ margin-top:14px; }
