/* Games section typography.
   Loaded after shared/viewer.css so it can repoint the engine's hardcoded
   families without forking the shared stylesheet. */

:root {
  --display: 'Russo One', 'Fira Sans', system-ui, sans-serif;
  /* Only one display weight ships — pin it so the browser never fakes a bolder cut. */
  --display-weight: 400;
  --text: 'Fira Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --mono: 'Fira Code', ui-monospace, SFMono-Regular, Menlo, monospace;
}

html, body { font-family: var(--text); }

/* Headline voice */
.sidebar-title,
.modal-title,
.modal-eyebrow,
.scene-help-title,
.toast-label,
.intro-label,
.scene-label-name .label-slot,
.action-btn.action-pill {
  font-family: var(--display);
  font-weight: var(--display-weight);
}

/* Technical voice */
.scene-label-meta .label-slot,
.scene-num,
.sidebar-meta,
.nav-tip kbd,
.shortcut-row kbd,
.toast-url {
  font-family: var(--mono);
}

/* Russo One runs wide and has no true lowercase rhythm at UI sizes:
   shave the tracking back and drop a notch of size on the long strings. */
.sidebar-title { font-size: 13px; letter-spacing: 0; }
.modal-title { font-size: 19px; letter-spacing: .01em; }
.modal-eyebrow { letter-spacing: .12em; }
.scene-label-name .label-slot { letter-spacing: .01em; }

/* Fira Code sits slightly larger than the JetBrains Mono it replaces. */
.scene-num,
.scene-label-meta .label-slot { font-size: 10px; }
