/* semantic-stage.phone.css — ODW-127 (rule-6 round-4 fix D, 2026-08-23; re-cut 2026-09-02 as a git landing)
   1) ON-DEVICE LAW: the @font-face block below is ODW-114's, byte-copied — ONE source of truth.
      The WOFF2 + OFL texts live in ./fonts/ — ODW-114's bytes, on the served disk since 08-23 and
      tracked in git by the sidecar branch claude/odw-127-fonts-sidecar-odw114-assets-20260902
      (nothing was downloaded). Where ./fonts/ is absent the faces fall back to the page's own
      system stack (font-display:swap) — still zero off-origin requests, never Google Fonts.
   2) 44 px law + 12.5 px text floor for the semantic stage, scoped to ≤767 px only —
      desktop (≥768) geometry is untouched (1440 rect differential = 0). */
  @font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('./fonts/SpaceGrotesk-wght.woff2') format('woff2')}
  @font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 500;font-display:swap;src:url('./fonts/InstrumentSans-Regular.woff2') format('woff2')}
  @font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600 700;font-display:swap;src:url('./fonts/InstrumentSans-Bold.woff2') format('woff2')}
  @font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url('./fonts/IBMPlexMono-Regular.woff2') format('woff2')}
  @font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600 700;font-display:swap;src:url('./fonts/IBMPlexMono-Bold.woff2') format('woff2')}

@media (max-width:767px){
  /* S6-b — 98 scene/expression/gesture chips: h34 → 44 (the seed's one token) */
  .galleryBar .gchip{min-height:44px;min-width:44px}   /* .galleryBar prefix: this sheet loads before the page <style>, so it must out-rank it */
  /* S6-c — 7 palette chips: 11 px → 12.5 px */
  .galleryBar .gchip.pal{font-size:12.5px}
  /* S6-d — the bare 13×13 checkbox becomes a thumb-sized 44×44 control; negative
     vertical margins keep the toggle row's line box where it was */
  .toggle input#autoPilot{width:44px;height:44px;margin:-14px 0 -14px -4px;flex:none}
  /* S6-d — the surface's only <a> (h15): padding + matching negative margin = 44 px
     hit box, zero paint reflow */
  header.bar a[href]{display:inline-block;padding:14.5px 0;margin:-14.5px 0}
  /* S6-e — the scene sentence (the wow line) wraps instead of clipping at phone widths */
  div#sceneTag{white-space:normal;overflow:visible;text-overflow:clip;max-width:62%;line-height:1.35;font-size:12.5px}
  /* text floor 12.5 px for the readable runs (telemetry badges #stateBadge/#semBadge/#fpsTag left as-is) */
  header.bar .zero,div#status,.galleryBar .glabel,.feed .asks h3{font-size:12.5px}
  header.bar .zero{white-space:normal}   /* the header .zero pill must wrap at 12.5 px — keeps scrollWidth == 375 */
  /* ODW-109's chip-triage search + category (landed after the 08-23 cut, h40 each): 44 px —
     the `body` prefix out-ranks the page's own min-height:40px at equal specificity */
  body #chipTriage input[type=search],body #chipTriage select{min-height:44px}
}
