/* ═════════════════════════════════════════════════════════════════════════
   moments.css — THE MOMENT SHEETS (2026-09-23 design pass)

   The morning re-read (js/59), the rule at commit and its hold (js/60) and the
   price under the confidence dial (js/58). Each is one question at one moment,
   so each is built as the Intercept is built: ONE GLASS CARD FLOATING ON THE
   LIT SCRIM, sized to what it holds. Not the 920px reading frame the Deep Read
   needs; a one-question card in that frame is a window with a sentence lost in it.

   Every value is the Intercept's own (DESIGN-CONSTITUTION §2–§10, css/sheet.css
   header, arete-system.css .int-*):
     card      the one glass, 640 wide, radius 24, padding 56/64/40, centred
     label     Manrope 400 13px ink3, sentence case, no tracking       (.int-stamp)
     sentence  Syne 500 28px/1.1, −.022em, ≤22ch, balanced             (.int-verdict)
     the turn  Cormorant Garamond italic 500 1.08em #dff4ff, once      (.int-verdict em)
     number    Manrope 300 64px, −.05em, tabular                       (.int-num)
     body      Manrope 400 15px/1.5 ink2, ≤46ch
     pill      the primary, 52px, min-width 200                        (§9)
     exit      Manrope 500 14px ink2 → ink, no underline               (.int-quiet)
     scale     44px discs, 8px apart: a selection is a brighter hairline, never
               a fill, never a glow (§3, §5)
   Rhythm 2 · 6 · 18 · 30 · 36. Reveal: opacity and a 12px rise, 80ms apart,
   once; reduced motion keeps the final frame (§10).
   ═════════════════════════════════════════════════════════════════════════ */

/* ── the card: sized to the moment, centred on the scrim ─────────────────── */
.is-sheet.am{
  top:0 !important; bottom:0 !important; margin:auto !important;
  width:min(640px, calc(100vw - 32px)) !important;
  height:fit-content !important; max-height:calc(100vh - 48px) !important;
  padding:0 0 40px !important; }
.am{ display:block; text-align:center; }
.am.hidden{ display:none; }
/* the sheet's own bar rides on top, flush; the moment starts below it */
.is-sheet.am .sheet__bar{ min-height:52px; }
.am__body{ padding:30px 56px 0; display:flex; flex-direction:column; align-items:center; }

/* ── type ─────────────────────────────────────────────────────────────── */
.am__label{ margin:0; font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); letter-spacing:0; text-transform:none; }
.am__say{ margin:6px auto 0; max-width:22ch; font:500 28px/1.1 var(--f-disp); letter-spacing:-.022em;
  color:rgb(var(--ink)); text-wrap:balance; }
.am__say em{ font:italic 500 1.08em var(--f-em); color:#dff4ff; letter-spacing:0; }
.am__body-t{ margin:18px auto 0; max-width:46ch; font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); text-wrap:pretty; }
.am__fine{ margin:12px auto 0; max-width:46ch; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink3)); }

/* ── the scale: ten discs, the constitution's 44px disc ──────────────────── */
.am__scale{ margin:30px auto 0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; width:100%; max-width:512px; }   /* ten 44px discs, 8px apart: exactly 512 */
.am__n{ box-sizing:border-box; width:44px; height:44px; border-radius:50%; padding:0; display:grid; place-items:center; cursor:pointer;
  background:transparent; border:1px solid rgba(160,225,255,.16); color:rgb(var(--ink2));
  font:400 16px/1 var(--f-body); font-variant-numeric:tabular-nums; letter-spacing:0;
  transition:border-color var(--dur-1,180ms) ease, color var(--dur-1,180ms) ease, transform var(--dur-1,180ms) ease; }
.am__n:hover{ color:rgb(var(--ink)); border-color:rgba(200,236,255,.42); }
.am__n:active{ transform:scale(.96); }
.am__n[aria-pressed="true"]{ color:rgb(var(--ink)); border-color:rgba(200,236,255,.7); }
.am__n:focus-visible{ outline:2px solid var(--ice2, #7FD3FF); outline-offset:3px; }
.am__ends{ display:flex; justify-content:space-between; width:min(100%, 512px); margin:6px auto 0;
  font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); }

/* ── the two numbers: last night and this morning ────────────────────────── */
.am__pair{ margin:30px auto 0; display:flex; justify-content:center; align-items:flex-end; gap:56px; }
.am__num{ display:flex; flex-direction:column; align-items:center; gap:6px; }
.am__num b{ font:300 64px/1 var(--f-body); letter-spacing:-.05em; font-variant-numeric:tabular-nums; color:rgb(var(--ink)); font-weight:300; }
.am__num--then b{ color:rgb(var(--ink3)); }
.am__num span{ font:400 14px var(--f-body); color:rgb(var(--ink3)); }

/* ── actions ──────────────────────────────────────────────────────────── */
.am__act{ margin:36px auto 0; display:flex; flex-direction:column; align-items:center; gap:6px; }
.am__act .ui-btn--primary{ min-height:52px; min-width:200px; padding:0 32px; }
.am__quiet{ min-height:44px; padding:0 12px; background:none; border:0; cursor:pointer;
  font:500 14px var(--f-body); color:rgb(var(--ink2)); transition:color var(--dur-1,180ms) ease; }
.am__quiet:hover{ color:rgb(var(--ink)); }
.am__quiet:focus-visible{ outline:2px solid var(--ice2, #7FD3FF); outline-offset:3px; border-radius:10px; }

/* ── the reveal: once, 80ms apart ────────────────────────────────────────── */
.am__body > *{ animation:am-rise var(--dur-3,600ms) cubic-bezier(.2,.8,.2,1) both; }
.am__body > *:nth-child(2){ animation-delay:80ms; } .am__body > *:nth-child(3){ animation-delay:160ms; }
.am__body > *:nth-child(4){ animation-delay:240ms; } .am__body > *:nth-child(5){ animation-delay:320ms; }
.am__body > *:nth-child(6){ animation-delay:400ms; }
@keyframes am-rise{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .am__body > *{ animation:none; } }

/* ── phone: its own composition ──────────────────────────────────────────── */
@media (max-width:640px){
  .am__body{ padding:24px 22px 0; }
  .am__say{ font-size:24px; }
  .am__scale{ max-width:252px; }                      /* two rows of five */
  .am__ends{ width:252px; }
  .am__pair{ gap:40px; }
  .am__num b{ font-size:56px; }
  .am__act{ width:100%; }
  .am__act .ui-btn--primary{ width:100%; }
}

/* ── light theme: the same structure, the ink rungs carry it ─────────────── */
html[data-theme="light"] .am__say em{ color:#0e4d78; }
html[data-theme="light"] .am__n{ border-color:rgba(15,40,70,.18); }
html[data-theme="light"] .am__n[aria-pressed="true"]{ border-color:rgba(15,40,70,.55); }

/* ── THE PRICE, under a confidence dial (js/58) ──────────────────────────── */
.xr{ margin:14px 0 18px; max-width:46ch; text-align:left; }
.xr[hidden]{ display:none; }
.xr__line{ margin:0; font:400 15px/1.45 var(--f-body); color:rgb(var(--ink2)); }
.xr__line b{ font-weight:500; color:rgb(var(--ink)); }
.xr__stamp{ margin:2px 0 0; font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); }
.am__pair + .am__say{ margin-top:18px; }

/* ═════════════════════════════════════════════════════════════════════════
   THE ADD SHEET (2026-09-23 design pass) — Record's "Add a decision".
   The frame was already the one glass; what sat inside it was the retired
   form language: boxed fields, filled button groups, a browser slider and a
   monospace uppercase note. Scoped to #rc-add-sheet so Decide's coach panel,
   which shares these classes, is untouched.
     the decision    the Intercept's input: Syne 500, no box, a wash on focus
     other fields    Manrope 16, no border, a resting wash (§9, "no lines")
     stake · undo    tappable words inside one pill; a choice is a brighter
                     hairline around the word, never a fill (§3, §9)
     confidence      the ten 44px discs of the morning re-read (js/61 drives
                     the original range, which stays the source of truth)
     the pill        the primary, 52px, full width in the sheet
     notes           Manrope 13 ink3, sentence case
   ═════════════════════════════════════════════════════════════════════════ */
#rc-add-sheet .rc-add__frame{ max-width:620px; }          /* ten 44px discs need 512 of measure, after padding and a scrollbar */
#rc-add-sheet .rc-add__body{ margin-top:30px; }
/* the form sits directly on the glass: the fold's panel was a box inside the frame (§4) */
#rc-add-sheet details.dc-fold{ background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
/* dictation is a quiet text exit under the sentence, not a full-width chip (§9) */
#rc-add-sheet .dict-chip{ display:block !important; margin:2px auto 0 !important; min-height:44px; padding:0 12px !important;
  border:0 !important; background:transparent !important; font:500 14px/1 var(--f-body) !important; letter-spacing:0 !important;
  text-transform:none !important; color:rgb(var(--ink2)) !important; cursor:pointer; }
#rc-add-sheet .dict-chip:hover{ color:rgb(var(--ink)) !important; }
#rc-add-sheet .dc-lab{ display:flex; justify-content:flex-start; gap:6px; align-items:baseline; margin:24px 0 6px !important;
  font:400 13px/1.4 var(--f-body) !important; color:rgb(var(--ink3)) !important; letter-spacing:0; text-transform:none; }
#rc-add-sheet .dc-lab:first-child{ margin-top:0 !important; justify-content:center; }
#rc-add-sheet .dc-lab .text-on-faint{ color:rgb(var(--ink3)) !important; opacity:1; }
#rc-add-sheet .dc-field{ width:100%; margin:0 !important; border:0 !important; border-radius:12px !important;
  background:rgba(0,191,255,.035) !important; box-shadow:none !important; padding:12px 14px !important;
  font:400 16px/1.4 var(--f-body) !important; color:rgb(var(--ink)) !important; outline:none;
  transition:background var(--dur-1,180ms) ease; }
#rc-add-sheet .dc-field::placeholder{ color:rgb(var(--ink3)); opacity:.75; }
#rc-add-sheet .dc-field:focus, #rc-add-sheet .dc-field:focus-visible{ background:rgba(0,191,255,.07) !important; outline:none; }
/* the decision itself is the sentence of the sheet */
#rc-add-sheet #dl-title{ background:transparent !important; padding:6px 10px !important; text-align:center;
  font:500 26px/1.12 var(--f-disp) !important; letter-spacing:-.022em; }
#rc-add-sheet #dl-title::placeholder{ font-weight:400; }
#rc-add-sheet #dl-title:focus-visible, #rc-add-sheet #dl-title:focus{ background:rgba(0,191,255,.07) !important; }
/* stake · undo: words inside one pill */
#rc-add-sheet .dc-opts{ display:inline-flex !important; width:fit-content !important; flex-wrap:nowrap; gap:2px !important; padding:3px; max-width:100%;
  border:1px solid rgba(160,225,255,.16); border-radius:999px; background:transparent; }
#rc-add-sheet .dc-opt{ flex:0 0 auto !important; min-height:40px !important; padding:0 16px !important; border-radius:999px !important;
  border:1px solid transparent !important; background:transparent !important; box-shadow:none !important;
  font:500 14px/1 var(--f-body) !important; color:rgb(var(--ink2)) !important; letter-spacing:0; white-space:nowrap;
  transition:border-color var(--dur-1,180ms) ease, color var(--dur-1,180ms) ease; }
#rc-add-sheet .dc-opt:hover{ color:rgb(var(--ink)) !important; }
#rc-add-sheet .dc-opt.sel{ border-color:rgba(200,236,255,.62) !important; background:transparent !important; color:rgb(var(--ink)) !important; }
#rc-add-sheet .dc-opt:focus-visible{ outline:2px solid var(--ice2,#7FD3FF); outline-offset:2px; }
/* confidence: the discs replace the browser slider, which stays in the DOM */
#rc-add-sheet #dl-conf.dl-conf--discs{ position:absolute !important; width:1px !important; height:1px !important; opacity:0; pointer-events:none; margin:0 !important; }
#rc-add-sheet #dl-conf-v{ font:300 15px/1 var(--f-body); letter-spacing:0; color:rgb(var(--ink2)); font-variant-numeric:tabular-nums; }
#rc-add-sheet .am__scale{ margin:6px 0 0; justify-content:flex-start; max-width:none; }
#rc-add-sheet .am__ends{ width:auto; max-width:512px; margin:6px 0 0; }
/* the pill and what sits under it */
#rc-add-sheet #dl-log{ width:100%; min-height:52px; margin-top:30px !important; font:600 16px/1 var(--f-body) !important; letter-spacing:0; }
#rc-add-sheet #dl-msg{ font:400 13px/1.45 var(--f-body) !important; color:rgb(var(--ink2)) !important; text-align:center; }
#rc-add-sheet .dl-veto{ margin:6px auto 0; max-width:46ch; text-align:center; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink3)); }
@media (max-width:640px){
  #rc-add-sheet #dl-title{ font-size:22px !important; }
  #rc-add-sheet .am__scale{ max-width:252px; }
  #rc-add-sheet .dc-opts{ display:flex !important; }
  #rc-add-sheet .dc-opt{ flex:1 1 auto !important; padding:0 10px !important; }
}
html[data-theme="light"] #rc-add-sheet .dc-field{ background:rgba(15,40,70,.04) !important; }
html[data-theme="light"] #rc-add-sheet .dc-opts{ border-color:rgba(15,40,70,.16); }
html[data-theme="light"] #rc-add-sheet .dc-opt.sel{ border-color:rgba(15,40,70,.5) !important; }
/* §4: the second light of a new frame is blue; the violet belongs to the Intercept's own frame only */
#rc-add-sheet .rc-add__frame::before{ background:radial-gradient(60% 50% at 20% 0%,rgba(47,123,255,.22),transparent 70%),radial-gradient(50% 50% at 90% 100%,rgba(31,126,219,.14),transparent 70%); }

/* ── HOW SURE, IN THE INTERCEPT (js/62, 2026-09-23) ──────────────────────
   The label is the Intercept's stamp (13px ink3, sentence case); the discs and
   their ends are the scale above, a little tighter so the card keeps its height.
   The price (js/58 .xr) sits under the ends, centred like the card. */
.int-conf{ display:flex; flex-direction:column; align-items:center; margin-top:18px; width:100%; }
.int-conf[hidden]{ display:none; }
.int-conf__q{ margin:0; font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); letter-spacing:0; text-transform:none; }
.int-conf .am__scale{ margin-top:6px; gap:6px; max-width:494px; }   /* ten discs, one row inside the card: 10x44 + 9x6 */
.int-conf .am__ends{ width:min(100%, 494px); }
.int-conf .xr{ margin:10px auto 0; text-align:center; }
@media (max-width:640px){
  .int-conf .am__scale{ max-width:252px; gap:8px; }
  .int-conf .am__ends{ width:252px; }
}

/* ── THE LADDER, IN THE INTERCEPT (js/64, 2026-09-24) ────────────────────
   One habit under the discs. The label is the stamp (13 ink3), the habit is
   the card's one Cormorant turn, the line is a single hairline field, the
   count is fine print. Centred like the card; no box, no bar, no badge. */
.int-habit{ display:flex; flex-direction:column; align-items:center; text-align:center; margin-top:20px; width:100%; }
.int-habit[hidden]{ display:none; }
.int-habit__label{ margin:0; font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); }
/* §2 (2026-09-25): the verdict holds the Intercept's one Cormorant turn; the habit is plain Manrope */
.int-habit__say{ margin:2px 0 0; font:500 18px/1.35 var(--f-body); color:rgb(var(--ink)); }
.int-habit__proof{ margin:2px auto 14px; max-width:40ch; font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); }
.int-habit__field{ margin:12px auto 0; width:min(100%, 494px); padding:10px 2px; background:transparent; border:0;
  border-bottom:1px solid rgba(223,244,255,.22); border-radius:0; color:rgb(var(--ink));
  font:400 16px/1.4 var(--f-body); text-align:center; outline:none; transition:border-color .2s; }
.int-habit__field::placeholder{ color:rgb(var(--ink3)); }
.int-habit__field:focus-visible{ border-bottom-color:rgba(223,244,255,.6); }
.int-habit__fine{ margin:10px auto 0; max-width:46ch; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink3)); }
@media (max-width:640px){ .int-habit__say{ font-size:17px; } .int-habit__field{ width:100%; } }

/* ── THE ADD SHEET, second pass (2026-09-24): two lines js/07 paints inline ──
   The outside view under the decision was cyan monospace at 10.5px, and the
   falsifier label turned the warm warning hue on a heavy call. §2 and §3:
   no mono, no warm colour, severity lives in the word. */
#rc-add-sheet #dl-outside{ margin:6px auto 0 !important; max-width:46ch; text-align:center; letter-spacing:0;
  font:400 13px/1.45 var(--f-body) !important; color:rgb(var(--ink2)) !important; }
#rc-add-sheet .dc-lab span[style]{ color:rgb(var(--ink2)) !important; }

/* ── THE CASE, IN THE INTERCEPT (js/68, 2026-09-24) ──────────────────────
   Same stamp label as How sure. The field is the Intercept's own input, quiet:
   no box, a wash on focus (her rule: no lines). Each belief is her words on the
   left and two tappable words on the right; the chosen word is underlined, the
   way Profile marks a chosen option. The mirror line is the one sentence at full
   ink, because it is the only thing here that comes from her record. */
.int-case{ display:flex; flex-direction:column; align-items:center; margin-top:18px; width:100%; }
.int-case[hidden]{ display:none; }
/* §9 (2026-09-25): the Intercept's own input, a Syne line with no box; a wash on focus only */
.int-case__in{ width:min(100%, 494px); margin-top:6px; min-height:44px; padding:6px 14px; border:0; border-radius:12px;
  background:transparent; text-align:center; font:500 20px/1.25 var(--f-disp); letter-spacing:-.018em; color:rgb(var(--ink)); outline:none; }
.int-case__in::placeholder{ font-weight:400; }
.int-case__in::placeholder{ color:rgb(var(--ink3)); }
.int-case__in:focus-visible{ background:rgba(0,191,255,.07); }
/* "Date it": a quiet text exit under the belief; the day and the number open only on it */
.ic-date{ display:inline-flex; align-items:center; min-height:44px; margin-top:-8px; padding:0; border:0; background:transparent; cursor:pointer;
  font:500 14px var(--f-body); color:rgb(var(--ink2)); flex:1 0 100%; justify-content:flex-start; }
.ic-b__more .ic-date{ flex:0 0 auto; margin-top:0; }
.ic-date:hover{ color:rgb(var(--ink)); }
.ic-date:focus-visible{ outline:2px solid var(--ice2, #7FD3FF); outline-offset:2px; }
.int-case__list{ list-style:none; margin:8px 0 0; padding:0; width:min(100%, 494px); }
.int-case__list:empty{ display:none; }
.ic-b{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ic-b__t{ font:400 14px/1.45 var(--f-body); color:rgb(var(--ink2)); text-align:left; text-wrap:pretty; }
.ic-b__k{ color:rgb(var(--ink3)); }
.ic-b__ans{ display:inline-flex; flex:0 0 auto; }
.ic-w{ min-height:44px; padding:0 8px; border:0; background:transparent; font:500 13px var(--f-body); color:rgb(var(--ink3)); cursor:pointer; border-radius:8px; }
.ic-w:hover{ color:rgb(var(--ink2)); }
.ic-w[aria-pressed="true"]{ color:rgb(var(--ink)); text-decoration:underline; text-decoration-color:rgba(127,211,255,.6); text-underline-offset:6px; }
.ic-w:focus-visible{ outline:2px solid var(--ice2, #7FD3FF); outline-offset:2px; }
.int-case__mirror{ margin:10px auto 0; max-width:44ch; font:400 14px/1.5 var(--f-body); color:rgb(var(--ink)); text-align:center; text-wrap:pretty; }
.int-case__mirror[hidden]{ display:none; }
/* the foundation, field 1 (2026-09-25): when it will be known and how sure it
   holds, the same quiet words at 13px on their own line under the belief. The
   label is ink3 and plain; nothing pre-selected; the chosen word underlined. */
.ic-b{ flex-wrap:wrap; }
.ic-b + .ic-b{ margin-top:6px; padding-top:6px; border-top:1px solid var(--hair, rgba(0,191,255,.10)); }
.ic-b__more{ flex:1 0 100%; display:flex; flex-wrap:wrap; align-items:center; column-gap:18px; margin-top:-10px; }
.ic-b__set{ display:inline-flex; align-items:center; flex-wrap:wrap; }
.ic-b__set .ic-b__k{ font:400 13px/1.4 var(--f-body); margin-right:2px; }
.ic-w--s{ padding:0 6px; font-size:13px; }
@media (max-width:520px){
  .ic-b{ flex-direction:column; align-items:flex-start; gap:0; padding-top:4px; }
  .ic-b__more{ margin-top:-8px; row-gap:0; }
}

/* ── THE BLIND SPOT FOR THIS CALL (js/71, 2026-09-25) ──────────────────────
   One line under the case: the name at full ink, the line at ink2, and where it
   came from on its own line as a stamp (§2: Manrope 13px ink3, sentence case).
   No Cormorant here: the verdict below holds the room's one turn. */
/* a stamp-style line directly under the verdict (2026-09-25 audit): Manrope 14px ink2,
   the source in ink3 on the next line */
.int-bs{ margin:6px auto 0; max-width:46ch; font:400 14px/1.5 var(--f-body); color:rgb(var(--ink2)); text-align:center; text-wrap:pretty; }
.int-bs[hidden]{ display:none; }
.int-bs__n{ color:rgb(var(--ink2)); font-weight:500; }
.int-bs__src{ display:block; margin-top:2px; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink3)); }

/* ── WHAT BROKE, IN THE RECORD (js/23, 2026-09-24) ───────────────────────
   Her own sentences are too long for one pill, so the answers stand in a
   column of quiet words, centred like the sheet. */
.rc-br{ display:flex; flex-direction:column; align-items:center; margin-top:6px; }
.rc-br .rc-q{ white-space:normal; text-align:center; max-width:34ch; line-height:1.35; }

/* ── YOUR LAST IMPORTANT CALLS (js/72, 2026-09-25, build 6) ────────────────
   The app's own sheet (css/sheet.css) at the Intercept's width, because it
   holds one decision. Inside, the Intercept's stack: a stamp, the sentence
   with its one Cormorant turn, lines with no box (a wash on focus), the
   Record's tappable words in one pill, one primary pill, one quiet exit.
   The chosen word is underlined, the way the Intercept marks a choice. */
#rm-sheet.is-sheet{ width:min(640px, calc(100vw - 32px)) !important; }
.rm__in{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:30px clamp(20px,6vw,64px) 0; }
.rm__stamp{ margin:0; font:400 13px/1.4 var(--f-body); color:rgb(var(--ink3)); }
.rm__h{ margin:6px 0 0; max-width:22ch; font:500 clamp(26px,4.2vw,32px)/1.08 var(--f-disp); letter-spacing:-.022em; color:rgb(var(--ink)); text-wrap:balance; }
.rm__h em{ font-family:var(--f-em); font-style:italic; font-weight:500; font-size:1.08em; color:#dff4ff; }
.rm__p{ margin:18px 0 0; max-width:46ch; font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); text-wrap:pretty; }
.rm__line{ width:min(100%, 494px); margin-top:30px; min-height:48px; padding:6px 14px; border:0; border-radius:12px; outline:none;
  background:transparent; text-align:center; font:500 24px/1.2 var(--f-disp); letter-spacing:-.02em; color:rgb(var(--ink)); }
.rm__line--s{ margin-top:6px; min-height:44px; font-size:19px; letter-spacing:-.016em; }
.rm__line::placeholder{ font-weight:400; }
.rm__line::placeholder{ color:rgb(var(--ink3)); }
.rm__line:focus-visible{ background:rgba(0,191,255,.07); }
.rm__q{ margin:18px 0 0; font:400 14px/1.5 var(--f-body); color:rgb(var(--ink2)); }
.rm .rc-ans{ margin-top:6px; }
.rm__col{ display:flex; flex-direction:column; align-items:center; margin-top:4px; }
.rm__col .rc-q{ white-space:normal; max-width:40ch; text-align:center; line-height:1.35; }
.rm .rc-q[aria-pressed="true"]{ color:rgb(var(--ink)); text-decoration:underline; text-decoration-color:rgba(127,211,255,.6); text-underline-offset:6px; }
.rm__act{ display:flex; flex-direction:column; align-items:center; gap:6px; margin-top:36px; }
/* §5: the sheet sits on <body>, outside constitution.css's #content-wrap rule, so the
   primary pill's cast is restated here at the constitution's value */
.rm__act .ui-btn--primary, .rm__act .ui-btn--primary:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 14px 36px -14px rgba(47,123,255,.8); filter:none; font-family:var(--f-body); }
.rm__act .ui-btn--primary:disabled{ opacity:.35; cursor:default; transform:none; }
.rm__msg{ margin:6px 0 0; min-height:20px; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink2)); }
#rm-sheet.is-sheet{ scrollbar-width:none; }
#rm-sheet.is-sheet::-webkit-scrollbar{ display:none; }
/* §11: no blur under 760px, so the bar stands solid and nothing scrolled ghosts through it */
@media (max-width:760px){ #rm-sheet.is-sheet .sheet__bar{ background:linear-gradient(150deg,#0a2642,#081e38); backdrop-filter:none; -webkit-backdrop-filter:none; } }
@media (max-width:640px){
  .rm__in{ padding-top:18px; }
  .rm__act{ align-self:stretch; }
  .rm__act .ui-btn--primary{ width:100%; min-width:0; }
}

/* the one blind spot, said in the room with its source (js/73, 2026-09-25) */
#view-blindspots .bs-mine__n{ color:rgb(var(--ink)); font-weight:500; }
#view-blindspots .bs-mine__src{ display:block; margin-top:2px; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink3)); }

/* the day-of check on a Record sheet (js/23, 2026-09-25 audit): the one ask on the
   sheet, at full ink and a step larger so it reads on the glass over the ring */
.rc-fx--check{ max-width:30ch; border-top:0; padding-top:4px; }
.rc-fx--check .rc-fx__q{ font:500 15px/1.5 var(--f-body); color:rgb(var(--ink)); }
/* phone (2026-09-25 audit): the ring's neighbouring sheets overlap the front sheet's edges,
   so the asks and their answers keep to the clear middle of it */
@media (max-width:767px){ .rc-orbit .rc-sheet .rc-said, .rc-orbit .rc-sheet .rc-fx{ max-width:26ch; } }

/* the three Syne lines wrap to the whole sentence (2026-09-25): a textarea that grows
   with its text, no box, no handle, no scrollbar; the wash on focus stays */
textarea.int-case__in, textarea.rm__line{ display:block; margin-left:auto; margin-right:auto; resize:none; overflow:hidden;
  white-space:pre-wrap; overflow-wrap:anywhere; box-sizing:border-box; font-family:var(--f-disp); }

/* ── THE ONE ASK, ON THE GROUND (js/23, 2026-09-25, her "the writings overlap and are too
   small") ── Under the stage, in the flow, so nothing can sit on it and the count line
   always follows it. Plain ground, a hairline above (§4); the question is body text at
   16px in ink (§2, §11); the answer is one pill of tappable words at 44px (§9); a quiet
   Later. It rises 12px into place once, when what is asked changes (§10). */
.rc-act{ position:relative; z-index:2; margin:18px auto 0; max-width:46ch; padding:18px 16px 0; border-top:1px solid var(--hair,rgba(0,191,255,.10)); text-align:center; }
.rc-act:empty{ display:none; }
.rc-act.is-in{ animation:rc-act-in var(--dur-3,600ms) cubic-bezier(.2,.8,.2,1) both; }
@keyframes rc-act-in{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .rc-act.is-in{ animation:none; } }
.rc-act .rc-fx, .rc-act .rc-fx--check{ max-width:none; margin:0; padding:0; border-top:0; opacity:1; }
.rc-act .rc-fx__q, .rc-act .rc-fx--check .rc-fx__q{ margin:0; font:400 16px/1.5 var(--f-body); color:rgb(var(--ink)); text-wrap:pretty; }
.rc-act .rc-ans{ margin-top:18px; }
.rc-act .rc-q{ min-height:44px; font-size:15px; }
.rc-act .rc-said, .rc-act .rc-said--fx{ max-width:none; margin:0 0 18px; padding:0; border-top:0; font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); }
.rc-act__said{ margin:0 0 18px; font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); }
.rc-act__quiet{ display:flex; justify-content:center; flex-wrap:wrap; gap:0 18px; margin-top:6px; }
.rc-act__more{ margin-top:6px; text-align:left; }
.rc-act__more p{ margin:0; padding:12px 2px; border-top:1px solid var(--hair,rgba(0,191,255,.10)); font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); }
.rc-act .rc-br{ margin-top:18px; }
.rc-act .rc-br .rc-q{ max-width:40ch; }
@media (max-width:767px){ .rc-act{ max-width:none; margin-top:6px; } }

/* ── BLIND SPOTS, THE ROOM (js/74, 2026-09-25) ─────────────────────────────
   §6: object left 5fr, words right 7fr, gap 40, centred at the room width; the
   object takes ~44% of the viewport height. §7: the Intercept's own cube, one
   fragment drawn out. §2: stamp, Syne sentence with one Cormorant turn, body.
   §9: one pill. Detail on the ground: 44px rows, hairlines, label left, value right. */
#view-blindspots{ padding:clamp(24px,4vh,48px) var(--room-pad,24px) 48px; }
.bsr{ max-width:var(--room-max,1180px); margin:0 auto; display:grid; grid-template-columns:5fr 7fr; column-gap:40px; align-items:center; min-height:calc(100vh - 160px); }
.bsr-obj{ display:flex; justify-content:center; align-items:center; min-height:44vh; }
.bsr-cube{ --ics:128px; width:min(100%,420px); height:44vh; min-height:300px; margin:0; }
.bsr-cube .bsr-out .ic-face{ border-color:rgba(230,246,255,.6); }
.bsr-words{ max-width:46ch; }
.bsr-stamp{ margin:0; font:400 13px/1.45 var(--f-body); color:rgb(var(--ink3)); }
.bsr-h{ margin:6px 0 0; max-width:22ch; font:500 clamp(28px,2.6vw,36px)/1.08 var(--f-disp); letter-spacing:-.022em; color:rgb(var(--ink)); text-wrap:balance; }
.bsr-h em{ font:italic 500 1.08em var(--f-em); color:#dff4ff; }
.bsr-p{ margin:18px 0 0; font:400 16px/1.5 var(--f-body); color:rgb(var(--ink2)); text-wrap:pretty; }
.bsr-act{ margin-top:30px; }
.bsr-act .ui-btn--primary{ min-width:200px; min-height:52px; font:600 16px var(--f-body); box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 14px 36px -14px rgba(47,123,255,.8); }
.bsr-detail{ margin-top:36px; }
.bsr-h3{ margin:0 0 6px; font:400 14px/1.5 var(--f-body); color:rgb(var(--ink3)); }
.bsr-rows{ border-top:1px solid var(--hair,rgba(0,191,255,.10)); }
.bsr-row{ display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:44px; border-bottom:1px solid var(--hair,rgba(0,191,255,.10)); font:400 15px/1.4 var(--f-body); }
.bsr-row__l{ color:rgb(var(--ink2)); } .bsr-row__r{ color:rgb(var(--ink)); text-align:right; }
.bsr-floor{ margin:0; padding-top:18px; border-top:1px solid var(--hair,rgba(0,191,255,.10)); font:400 15px/1.5 var(--f-body); color:rgb(var(--ink2)); max-width:46ch; }
/* §11: phone is its own composition: the object, then the sentence, then the pill full width, then rows */
@media (max-width:767px){
  #view-blindspots{ padding:12px 16px calc(var(--tab-h,60px) + 28px + env(safe-area-inset-bottom,0px)); }
  .bsr{ grid-template-columns:1fr; min-height:0; text-align:left; }
  .bsr-obj{ min-height:0; }
  .bsr-cube{ --ics:96px; --k:.5; width:100%; height:260px; min-height:0; }
  .bsr-obj{ padding-top:24px; }
  .bsr-cube .ic-cubie:nth-child(3), .bsr-cube .ic-cubie:nth-child(8){ display:none; }
  .bsr-h{ font-size:28px; }
  .bsr-act .ui-btn--primary{ width:100%; min-width:0; }
}
@media (prefers-reduced-motion:reduce){ .bsr-cube .ic-hero{ animation:none; } }
/* the count line follows the ask panel with the room's own gap, never tucked under it (2026-09-25) */
.rc-act + .rc-foot, .rc-act ~ .rc-foot{ margin-top:30px; }
/* the ask scrolls into view above the phone's tab bar, never under it */
#rc-act{ scroll-margin-bottom:24px; }
@media (max-width:767px){ #rc-act{ scroll-margin-bottom:calc(var(--tab-h,60px) + 24px + env(safe-area-inset-bottom,0px)); } }
