/* ═══════════════════════════════════════════════════════════════════════
   NOVAPA brand.css — generated from the Branding Brain (locked Aug 8).
   Loaded on every public page AFTER page styles: it IMPOSES the system.
   Edit brand.html first, then mirror here. Never edit per-page fonts again.
   ═══════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Protest+Strike&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&display=swap');

:root {
  --navy-0:#08111F; --navy-1:#0F1E36; --navy-2:#162B52;
  --card:rgba(22,43,82,0.45); --line:rgba(255,255,255,0.14);
  --cream:#F5F2EC;
  /* gold law v3 (Jason, Aug 9): gold-2 solo, gradients gold-1<->gold-2.
     gold-3 is RETIRED — token kept only so stragglers resolve rich, not soft */
  --gold-1:#C8892A; --gold-2:#E8B84B; --gold-3:#E8B84B;
  --gold-grad:linear-gradient(135deg,#C8892A,#E8B84B);
  --gold-grad-deep:linear-gradient(180deg,#E8B84B,#C8892A);
  --ink:rgba(255,255,255,0.88); --ink-dim:rgba(255,255,255,0.62); --ink-faint:rgba(255,255,255,0.44);
  --ink-navy:#0F1E36; --ink-slate:#414b5c;
  --ok:#5BC98C; --danger:#E8654B;
  --r-card:16px; --r-input:12px; --r-pill:12px; /* r-pill retired Aug 9 — resolves to rect so stragglers conform */
}

/* ── THE FONT LAW: two fonts, imposed. DM Sans everywhere… */
*, *::before, *::after { font-family:'DM Sans',sans-serif !important; }

/* …except display text, which is Protest Strike (single weight, no italic).
   Rule (Jason, Aug 8): anything that is not a subheader/body/button speaks
   Protest Strike — page headers AND card/option titles alike. */
h1, h2, h3, .sc-h1, .pb-h, .t-hero, .t-header, .audition-banner-title,
h1 *, h2 *, h3 *, .sc-h1 *, .pb-h *, .t-hero *, .t-header *, .audition-banner-title * {
  font-family:'Protest Strike',sans-serif !important;
  font-weight:400 !important;
  letter-spacing:0.01em;
}
/* mid-level titles: same voice, one step quieter than pure white.
   .t-title is the go-forward utility; the rest are legacy title classes
   (register flow card/show/coach titles) swept under the same law. */
h4, h5, .t-title, .c1, .show-card .t, .showb .t, .cc-nm,
h4 *, h5 *, .t-title *, .c1 * {
  font-family:'Protest Strike',sans-serif !important;
  font-weight:400 !important;
  letter-spacing:0.02em;
}
/* color on the element only (never descendants) so gold accents survive */
h4, h5, .t-title, .c1, .show-card .t, .showb .t, .cc-nm {
  color:rgba(255,255,255,0.92) !important;
}
h1 em, h2 em, h3 em, h4 em, .sc-h1 em, .pb-h em, .c1 em { font-style:normal !important; }

/* …and true code/number surfaces keep monospace */
code, pre, .tok { font-family:ui-monospace,Menlo,monospace !important; }

/* ── SHAPE LAW v3 (Jason, Aug 9): rounded rectangles everywhere — buttons,
   inputs, selects at 12px; cards at 16px. Pills are retired. */
button, [class*="btn"], [class*="cta"] { border-radius:var(--r-input) !important; }
input, select, textarea { border-radius:var(--r-input) !important; }

/* ── NO GLOW, NO PULSE (Jason, Aug 8): gold halos, pulsing shadows, and
   sheen sweeps are off-brand everywhere. Static gradients only. */
.u-nav a.u-nav-cta, .u-nav-cta { animation:none !important; box-shadow:none !important; }
.u-nav a.u-nav-cta::after, .u-nav-cta::after { animation:none !important; content:none !important; }
.audition-banner, .audition-banner::after,
.audition-banner-icon, .audition-banner-cta { animation:none !important; }
.audition-banner, .audition-banner-cta { box-shadow:none !important; }
.ab-pulse, .pulse, .cs-tag .pulse, .livepill .pulse { animation:none !important; box-shadow:none !important; }
.nv-bot-pulse { display:none !important; }
.audition-banner-title, .audition-banner-title span,
h1, h2, h3, .t-hero, .t-header { text-shadow:none !important; }
