/* Reverie's family kit: the shared parts every web piece uses by name, so the same thing looks and behaves the same on
   every screen (her yes, 30 Oct 2026: "everything's using the same class, everything's looking the same from screen to
   screen"). What a person can press (its signifier) is the same everywhere; what tells screens apart is each one's
   signature and its content (design-world/README.md, "The family kit").

   Rules for this file:
   - Only parts she has decided live here. A part still waiting for her pick (one Find, the bar as the way to add, the day
     header, the glass pane and rim) is designed for her pick first, then added. Her order is in docs/PINNED.md.
   - Values come only from tokens.css (link it first). Nothing here types a colour.
   - Names start with rv-. A piece never redefines an rv- class; the design world's check reports it if one does.
   - Pieces outside Reverie get a synced copy (node ~/reverie/design-world/sync.mjs), never an edited one. */

/* Her words: the brightest thing on every screen, in light weight, never glowing (her picks, 27 Oct). */
.rv-words  { color: var(--words); font-weight: var(--words-weight); }
/* Words still being heard while she speaks. */
.rv-heard  { color: var(--heard); font-weight: var(--words-weight); }
/* Reverie's own words: times, places, where a thing came from (VOICE.md section 3). */
.rv-quiet  { color: var(--quiet); }
/* A playing recording's words not yet reached: still readable at 4.5:1. */
.rv-unsaid { color: var(--unsaid); }

/* A small heading: sentence case in Reverie's quiet white, never spaced capitals (VOICE.md section 6). */
.rv-label  { color: var(--quiet); text-transform: none; letter-spacing: normal; font-variant-caps: normal; }

/* A pane or card she can press (a capture, a card, a row): the pane's glass, brightening under the pointer and answering a
   press within a tenth of a second (her mist glass, 29 Oct). No edge, outline or hairline, ever (her rule, 27 Oct): light
   separates it from the sky. In Day it's a sheet of paper with a soft violet shadow (her pick, 31 Oct). A button or field
   is rv-control below, on the control's own glass (violet in Day). */
.rv-press         { background: var(--plate); box-shadow: var(--sheet-shadow, none); border: 0; outline: 0; transition: background-color var(--fast) ease, box-shadow var(--fast) ease; }
.rv-press:hover   { background: var(--plate-hi); box-shadow: var(--sheet-shadow-hi, none); }
.rv-press:active  { background: var(--plate-press); transition-duration: var(--press); }

/* A control she can press (a button, a tab, a chip, a field): the control's own glass, a step brighter than a pane, so a
   button never dims into the pane it sits on (31 Oct, the Timeline's catch: its buttons sit on --fill, 8 %, not --plate). */
.rv-control        { background: var(--fill); border: 0; outline: 0; transition: background-color var(--fast) ease; }
.rv-control:hover,
.rv-control:active { background: var(--fill-hi); }
.rv-control:active { transition-duration: var(--press); }

/* The chosen control: solid mist with the sky's violet on it, clearly apart from one at rest (her yes, 29 Oct). In Day the
   two trade places through tokens.css. */
.rv-chosen,
.rv-press[aria-pressed="true"],
.rv-press[aria-selected="true"],
.rv-press[aria-current],
.rv-control[aria-pressed="true"],
.rv-control[aria-selected="true"],
.rv-control[aria-current] { background: var(--fill-chosen); color: var(--on-chosen); }

/* Keyboard focus: the thing lights evenly and rises a point toward her, so the brightest step is never a line at the edge
   (her yes, 29 Oct). */
.rv-press:focus-visible,
.rv-control:focus-visible,
.rv-focus:focus-visible { outline: 0; box-shadow: var(--focus-glow); transform: var(--focus-lift); }

@media (prefers-reduced-motion: reduce) {
  .rv-press, .rv-control { transition: none; }
  .rv-press:focus-visible, .rv-control:focus-visible, .rv-focus:focus-visible { transform: none; }
}
