:root,
.rls-typography-scope {
  --rls-weight-display: var(--rls-font-display-weight, 540);
  --rls-weight-title: var(--rls-font-display-weight, 540);
  --rls-weight-body: var(--rls-font-body-weight, 400);
  --rls-weight-ui: var(--rls-font-ui-weight, 500);
  --rls-weight-label: var(--rls-font-labels-weight, var(--rls-font-ui-weight, 500));
  --rls-weight-button: var(--rls-font-buttons-weight, var(--rls-font-ui-weight, 500));
  --rls-weight-data: var(--rls-font-numbers-weight, var(--rls-font-mono-weight, 500));
  --rls-weight-mono: var(--rls-font-mono-weight, 400);
}

.rls-type-display,
.rls-type-title,
.rls-type-body,
.rls-type-ui,
.rls-type-label,
.rls-type-button,
.rls-type-data,
.rls-type-mono {
  font-synthesis: none;
  font-synthesis-weight: none;
  font-synthesis-style: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.rls-type-display {
  font-family: var(--rls-font-display);
  font-weight: var(--rls-weight-display);
  font-style: var(--rls-font-display-style, normal);
  letter-spacing: var(--rls-font-display-tracking, 0em);
  line-height: var(--rls-font-display-line-height, 1.06);
  text-transform: var(--rls-font-display-transform, none);
}

.rls-type-title {
  font-family: var(--rls-font-display);
  font-weight: var(--rls-weight-title);
  font-style: var(--rls-font-display-style, normal);
  letter-spacing: var(--rls-font-display-tracking, 0em);
  line-height: var(--rls-font-display-line-height, 1.06);
  text-transform: none;
}

.rls-type-body {
  font-family: var(--rls-font-body);
  font-weight: var(--rls-weight-body);
  font-style: var(--rls-font-body-style, normal);
  letter-spacing: var(--rls-font-body-tracking, 0em);
  line-height: var(--rls-font-body-line-height, 1.55);
  text-transform: var(--rls-font-body-transform, none);
}

.rls-type-ui {
  font-family: var(--rls-font-ui);
  font-weight: var(--rls-weight-ui);
  font-style: var(--rls-font-ui-style, normal);
  letter-spacing: var(--rls-font-ui-tracking, 0em);
  line-height: var(--rls-font-ui-line-height, 1.2);
  text-transform: var(--rls-font-ui-transform, none);
}

.rls-type-label {
  font-family: var(--rls-font-labels, var(--rls-font-ui));
  font-weight: var(--rls-weight-label);
  font-style: var(--rls-font-labels-style, var(--rls-font-ui-style, normal));
  letter-spacing: var(--rls-font-labels-tracking, var(--rls-font-ui-tracking, 0.08em));
  line-height: var(--rls-font-labels-line-height, var(--rls-font-ui-line-height, 1.2));
  text-transform: var(--rls-font-labels-transform, uppercase);
}

.rls-type-button {
  font-family: var(--rls-font-buttons, var(--rls-font-ui));
  font-weight: var(--rls-weight-button);
  font-style: var(--rls-font-buttons-style, var(--rls-font-ui-style, normal));
  letter-spacing: var(--rls-font-buttons-tracking, var(--rls-font-ui-tracking, 0.08em));
  line-height: var(--rls-font-buttons-line-height, var(--rls-font-ui-line-height, 1.2));
  text-transform: var(--rls-font-buttons-transform, uppercase);
}

.rls-type-data {
  font-family: var(--rls-font-numbers, var(--rls-font-mono));
  font-weight: var(--rls-weight-data);
  font-style: var(--rls-font-numbers-style, var(--rls-font-mono-style, normal));
  letter-spacing: var(--rls-font-numbers-tracking, var(--rls-font-mono-tracking, 0em));
  line-height: var(--rls-font-numbers-line-height, var(--rls-font-mono-line-height, 1.2));
  text-transform: var(--rls-font-numbers-transform, none);
  font-variant-numeric: tabular-nums;
}

.rls-type-mono {
  font-family: var(--rls-font-mono);
  font-weight: var(--rls-weight-mono);
  font-style: var(--rls-font-mono-style, normal);
  letter-spacing: var(--rls-font-mono-tracking, 0em);
  line-height: var(--rls-font-mono-line-height, 1.4);
  text-transform: var(--rls-font-mono-transform, none);
}

/* Shared viewer mappings for critical typography surfaces */
.viewer-header__room-select,
.viewer-header__selector-value,
.insp-context__room {
  font-family: var(--rls-font-display) !important;
  font-weight: var(--rls-weight-title) !important;
  font-style: var(--rls-font-display-style, normal) !important;
  letter-spacing: var(--rls-font-display-tracking, 0em) !important;
  line-height: var(--rls-font-display-line-height, 1.06) !important;
  text-transform: none !important;
}

.viewer-header__selector-label,
.viewer-header__status,
.scene-state,
.insp-tab,
.experience-intent-grid__label,
.insp-kv__label,
.panel__title,
.scene-row__intent,
.scene-row__approve,
.scene-row__locked {
  font-family: var(--rls-font-labels, var(--rls-font-ui)) !important;
  font-weight: var(--rls-weight-label) !important;
  font-style: var(--rls-font-labels-style, var(--rls-font-ui-style, normal)) !important;
  letter-spacing: var(--rls-font-labels-tracking, var(--rls-font-ui-tracking, 0.08em)) !important;
  line-height: var(--rls-font-labels-line-height, var(--rls-font-ui-line-height, 1.2)) !important;
  text-transform: var(--rls-font-labels-transform, uppercase) !important;
}

.scene-row__title,
.insp-context__scene {
  font-family: var(--rls-font-ui) !important;
  font-weight: var(--rls-weight-ui) !important;
  font-style: var(--rls-font-ui-style, normal) !important;
  letter-spacing: var(--rls-font-ui-tracking, 0.08em) !important;
  line-height: var(--rls-font-ui-line-height, 1.2) !important;
  text-transform: none !important;
}

.right-rail .muted,
.experience-copy,
.experience-intent-grid__col p,
.experience-notes li {
  font-family: var(--rls-font-body) !important;
  font-weight: var(--rls-weight-body) !important;
  font-style: var(--rls-font-body-style, normal) !important;
  letter-spacing: var(--rls-font-body-tracking, 0em) !important;
  line-height: var(--rls-font-body-line-height, 1.55) !important;
  text-transform: none !important;
}

.insp-device-hero__preview,
.scene-row__play,
.scene-row__play.small-btn,
.viewer-header__action,
.viewer-header__freeze-btn {
  font-family: var(--rls-font-buttons, var(--rls-font-ui)) !important;
  font-weight: var(--rls-weight-button) !important;
  font-style: var(--rls-font-buttons-style, var(--rls-font-ui-style, normal)) !important;
  letter-spacing: var(--rls-font-buttons-tracking, var(--rls-font-ui-tracking, 0.08em)) !important;
  line-height: var(--rls-font-buttons-line-height, var(--rls-font-ui-line-height, 1.2)) !important;
  text-transform: var(--rls-font-buttons-transform, uppercase) !important;
}

.insp-kv__value,
.experience-progress__name,
#previewNumber {
  font-family: var(--rls-font-numbers, var(--rls-font-mono)) !important;
  font-weight: var(--rls-weight-data) !important;
  font-style: var(--rls-font-numbers-style, var(--rls-font-mono-style, normal)) !important;
  letter-spacing: var(--rls-font-numbers-tracking, var(--rls-font-mono-tracking, 0em)) !important;
  line-height: var(--rls-font-numbers-line-height, var(--rls-font-mono-line-height, 1.2)) !important;
  text-transform: var(--rls-font-numbers-transform, none) !important;
  font-variant-numeric: tabular-nums;
}
