/* ============================================================
   NIMBUS DESIGN 3.0.0 — BRIDGE FOR WARM-v3 CODE
   Code written for the July warm v3 (nimbus-platform, landing pages,
   nimbus-social) reads --nimbus-* variables and a few retired nb-*
   class names. Load this after css/nimbus.css and that code wears
   3.0.0 without a page-by-page rewrite. New code uses --nb-* and the
   classes in nimbus.css directly; delete this file once nothing
   reads the old names.
   ============================================================ */

.nb-root {
  /* Colour */
  --nimbus-bronze: var(--nb-color-accent-brand);
  --nimbus-bronze-strong: var(--nb-color-accent-text);
  --nimbus-bronze-tint: var(--nb-color-accent-subtle);
  --nimbus-bronze-ring: var(--nb-color-focus-ring);
  --nimbus-canvas: var(--nb-color-background-canvas);
  --nimbus-surface: var(--nb-color-background-surface);
  --nimbus-surface-soft: var(--nb-color-background-subtle);
  --nimbus-sunken: var(--nb-color-background-selected);
  --nimbus-panel: var(--nb-color-background-inverse);
  --nimbus-line: var(--nb-color-border-subtle);
  --nimbus-line-strong: var(--nb-color-border-control);
  --nimbus-ink: var(--nb-color-text-primary);
  --nimbus-ink-soft: var(--nb-color-text-body);
  --nimbus-muted: var(--nb-color-text-muted);
  --nimbus-faint: var(--nb-color-text-muted);
  --nimbus-on-panel: var(--nb-color-text-inverse);
  --nimbus-on-fill: var(--nb-color-action-on-primary);
  --nimbus-success: var(--nb-color-status-success);
  --nimbus-warning: var(--nb-color-status-warning);
  --nimbus-danger: var(--nb-color-status-danger);

  /* Type: the fluid warm-v3 scale lands on the 3.0.0 steps; bold becomes semibold. */
  --nimbus-font-sans: var(--nb-font-sans);
  --nimbus-font-mono: var(--nb-font-mono);
  --nimbus-text-display: clamp(var(--nb-type-size-display-small), 6vw, var(--nb-type-size-display));
  --nimbus-text-h1: clamp(var(--nb-type-size-page), 4.5vw, var(--nb-type-size-display-small));
  --nimbus-text-h2: clamp(var(--nb-type-size-page-small), 3.5vw, var(--nb-type-size-page));
  --nimbus-text-h3: var(--nb-type-size-section);
  --nimbus-text-lead: clamp(var(--nb-type-size-body), 1.5vw, var(--nb-type-size-section));
  --nimbus-text-body: var(--nb-type-size-body);
  --nimbus-text-sm: var(--nb-type-size-small);
  --nimbus-text-xs: var(--nb-type-size-caption);
  --nimbus-weight-regular: var(--nb-font-weight-regular);
  --nimbus-weight-medium: var(--nb-font-weight-medium);
  --nimbus-weight-semibold: var(--nb-font-weight-semibold);
  --nimbus-weight-bold: var(--nb-font-weight-semibold);
  --nimbus-weight-black: var(--nb-font-weight-semibold);
  --nimbus-tracking-display: -0.03em;
  --nimbus-tracking-heading: -0.02em;
  --nimbus-tracking-normal: 0;
  --nimbus-tracking-label: 0;
  --nimbus-leading-tight: var(--nb-type-leading-display);
  --nimbus-leading-snug: var(--nb-type-leading-heading);
  --nimbus-leading-body: var(--nb-type-leading-body);

  /* Space, shape, elevation, motion, layout */
  --nimbus-space-1: var(--nb-space-4);
  --nimbus-space-2: var(--nb-space-8);
  --nimbus-space-3: var(--nb-space-12);
  --nimbus-space-4: var(--nb-space-16);
  --nimbus-space-5: var(--nb-space-24);
  --nimbus-space-6: var(--nb-space-32);
  --nimbus-space-7: var(--nb-space-48);
  --nimbus-space-8: var(--nb-space-64);
  --nimbus-space-9: var(--nb-space-96);
  --nimbus-space-10: calc(var(--nb-space-64) * 2);
  --nimbus-section: clamp(var(--nb-space-64), 9vw, var(--nb-space-96));
  --nimbus-radius-sm: var(--nb-radius-control);
  --nimbus-radius-md: var(--nb-radius-control);
  --nimbus-radius-lg: var(--nb-radius-panel);
  --nimbus-radius-pill: var(--nb-radius-pill);
  --nimbus-shadow-sm: var(--nb-shadow-raised);
  --nimbus-shadow-md: var(--nb-shadow-floating);
  --nimbus-shadow-lg: var(--nb-shadow-overlay);
  --nimbus-ease: var(--nb-motion-ease);
  --nimbus-ease-soft: var(--nb-motion-ease);
  --nimbus-dur-fast: var(--nb-motion-fast);
  --nimbus-dur: var(--nb-motion-panel);
  --nimbus-dur-slow: var(--nb-motion-panel);
  --nimbus-dur-reveal: calc(var(--nb-motion-panel) * 3);
  --nimbus-container: var(--nb-size-content);
  --nimbus-container-wide: var(--nb-size-content);
  --nimbus-container-narrow: var(--nb-size-reading);
  --nimbus-gutter: clamp(var(--nb-space-16), 4vw, var(--nb-space-40));
}

/* Retired warm-v3 class names, drawn as their 3.0.0 equivalents. */
.nb-container--wide { width: min(var(--nb-size-content), 100%); }
.nb-container--narrow { width: min(calc(var(--nb-size-reading) + 2 * var(--nb-space-40)), 100%); }
.nb-section--soft, .nb-section--sunken { background: var(--nb-color-background-subtle); }
.nb-card { padding: var(--nb-space-24); background: var(--nb-color-background-surface); border-radius: var(--nb-radius-panel); box-shadow: var(--nb-shadow-resting); }
.nb-card--interactive { transition: background-color var(--nb-motion-fast) var(--nb-motion-ease); }
.nb-card--interactive:hover { background: var(--nb-color-background-subtle); }
.nb-card__num { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--nb-radius-control); background: var(--nb-color-accent-subtle); color: var(--nb-color-accent-text); font-weight: var(--nb-font-weight-semibold); font-variant-numeric: tabular-nums; }
/* .nb-btn--ghost is a 3.0.0 name (a transparent button). Warm-v3 code that meant
   an outlined button must switch to .nb-btn--outline. */
.nb-btn--text { min-height: 0; padding: 0; background: none; border: 0; color: var(--nb-color-text-primary); text-decoration: underline; text-underline-offset: 3px; }
.nb-btn--text:hover { background: none; color: var(--nb-color-text-body); }
.nb-btn__arrow { transition: transform var(--nb-motion-panel) var(--nb-motion-ease); }
.nb-btn:hover .nb-btn__arrow { transform: translateX(3px); }
.nb-lead.nb-muted, .nb-section-head .nb-lead { color: var(--nb-color-text-muted); }
